Cyrill Gorcunov [Tue, 13 Jul 2010 16:59:46 +0000 (20:59 +0400)]
Update changes.src
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 16:54:48 +0000 (20:54 +0400)]
BR3028880: Make nonexistent environment variable being fatal error
Frank suggested to just print out an error if environment
variable is not there. Agreed.
Suggested-by: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 16:16:50 +0000 (20:16 +0400)]
Check in test for BR3028880
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 15:08:15 +0000 (19:08 +0400)]
BR3028880: Fix NULL dereference on nonexistent environment variable
Frank reported we hit NULL dereference on nonexistent
environment variables. Fix it by leaving empty string
in text field of such token and yielding warning.
Reported-by: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 09:32:19 +0000 (13:32 +0400)]
tokenize: Fix wrong string index in indirect strings
At moment of calling the nasm_skip_string the string pointer
is already incremented which makes tokenize fail on correct
indirect strings.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 07:27:41 +0000 (11:27 +0400)]
preproc: Extract reading line from predefined macros from read_line
It makes read_line less complex
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 12 Jul 2010 19:15:01 +0000 (23:15 +0400)]
Documentation updates
Various small fixes.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 12 Jul 2010 11:19:17 +0000 (15:19 +0400)]
No need for \n at __OUTPUT_FORMAT__ macro end
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 17:16:05 +0000 (21:16 +0400)]
Merge branches 'master' and 'preproc-paste-fix'
Cyrill Gorcunov [Tue, 13 Jul 2010 16:23:34 +0000 (20:23 +0400)]
BR3026808: Assign to local preprocessor variable does not work in 2.09
The commits
20a94ad7fe41c82f77fb670abb68f0de40d2b3e5
29c96651de1c43e59b7db58a4f06ff21dc854125
13dbfad76b4d3dbf27ef41761873584c6bd9fd7f
6f5f7ef417c37c154d10c2b3813808ad3fa65fd7
ddd08c3cccb4b68ecdb24d7a92eab6b2b82e8c68
seems to do the tricks we need. Eventually
get rid of commented "case".
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Sat, 10 Jul 2010 02:04:59 +0000 (19:04 -0700)]
nasmdoc: remove obsolete Sourceforge references
Remove obsolete Sourceforge references, replace with nasm.us.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 10 Jul 2010 02:02:28 +0000 (19:02 -0700)]
NASM 2.09rc3
Cyrill Gorcunov [Fri, 9 Jul 2010 22:11:41 +0000 (02:11 +0400)]
preproc.c: Fix NULL deref on token pasting
In case if there is a whitespace before
'paste' token we may reach NULL dereference
in strlen since paste_head will point to
TOK_WHITESPACE. Fix it.
[test: paste.asm]
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 9 Jul 2010 22:05:32 +0000 (15:05 -0700)]
preproc: add another test case
Add another test case for preprocessor token pasting.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Thu, 8 Jul 2010 18:52:57 +0000 (11:52 -0700)]
preproc: don't paste TOK_PREPROC_ID
Trying to deal with bug reports 3005117 and 3026808: don't paste after
TOK_PREPROC_ID.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Thu, 8 Jul 2010 15:35:32 +0000 (08:35 -0700)]
Revert "BR3005117: Expland local single macro before pasting tokens"
This reverts commit
ec88c1beac003bd6660037da3cef3aebeee7af20.
Revert due to BR 3026808.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Thu, 8 Jul 2010 15:34:41 +0000 (08:34 -0700)]
Revert "expand_mmac_params: Don't forget to handle TOK_OTHER"
This reverts commit
51fd86e0fed8f5162f8c1e45e4ceaf237d6e5539.
Revert due to BR 3026808.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Thu, 8 Jul 2010 15:33:47 +0000 (08:33 -0700)]
Revert "expand_mmac_params: Expand local single macros unconditionally"
This reverts commit
1f6741fc78413236816c42d26b34134ab18ba4f1.
Revert due to BR 3026808.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Thu, 8 Jul 2010 15:33:14 +0000 (08:33 -0700)]
Revert "expand_mmac_params: Expand local single macros unconditionally"
This reverts commit
985d880c15a5b26e59cdcec4af2eba0748ecfe1f.
Revert due to BR 3026808.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Thu, 8 Jul 2010 15:30:23 +0000 (08:30 -0700)]
Check in test case from bug report br3005117
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Thu, 8 Jul 2010 14:31:45 +0000 (07:31 -0700)]
br3026808: add test case
Add test case for BR 3026808 (%assign %$local).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Thu, 8 Jul 2010 00:20:19 +0000 (17:20 -0700)]
insns: add FXSAVE64/FXRSTOR64, drop np prefix
Add FXSAVE64 and FXRSTOR64; drop the np prefix on 0F AE instructions:
none of the rest of the 0F AE instructions have them, and there are no
conflicts.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Thu, 8 Jul 2010 00:17:30 +0000 (17:17 -0700)]
Merge branch 'master' of ssh://repo.or.cz/srv/git/nasm
H. Peter Anvin [Wed, 7 Jul 2010 20:48:14 +0000 (13:48 -0700)]
insns.dat: add XSAVE/XRSTOR64, XSAVEOPT, VCVTPH2PS/VCVTPS2PH
Add XSAVE64/XRSTOR64 (previously missing), XSAVEOPT/XSAVEOPT64 (per
AVX 007 spec), and VCVTPH2PS/VCVTPS2PH (per AVX 007) spec.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Wed, 7 Jul 2010 02:38:35 +0000 (19:38 -0700)]
insns.dat: remove VCVTPH2PS/VCVTPS2PH as AMD instructions
Remove VCVTPH2PS/VCVTPS2PH as AMD instructions based on version 3.04
of the AMD spec.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 6 Jul 2010 22:06:51 +0000 (15:06 -0700)]
NASM 2.09rc2
Cyrill Gorcunov [Tue, 6 Jul 2010 21:48:33 +0000 (01:48 +0400)]
doc: Update changes.src
Before soon-coming 2.09rc2.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Tue, 6 Jul 2010 16:23:24 +0000 (09:23 -0700)]
insns.dat: fix CPU flags for new instructions
FUTURE is a CPU level flag, and cannot be combined with X64 (which is
shorthand for X86_64,LONG). Also, make sure we add LONG annotations
to everything that is 64-bit mode only.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 6 Jul 2010 16:15:48 +0000 (09:15 -0700)]
Add RD*SBASE, WR*SBASE, RDRAND from AVX v7
Add the RD*SBASE, WR*SBASE and RDRAND instructions from version 7 of
the AVX specification, Intel document 319433-007.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cyrill Gorcunov [Tue, 6 Jul 2010 15:40:02 +0000 (19:40 +0400)]
outbin: Cleanup bin_cleanup
No need for 'q' variable.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 6 Jul 2010 15:08:28 +0000 (19:08 +0400)]
outbin: Simplify reverse address computing
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 6 Jul 2010 14:33:29 +0000 (18:33 +0400)]
BR3025702: outbin -- Fix byte ordering
In commit
55ae12052cd1 we occasionally broke byte ordering. Fix it.
Note that current stable version 2.08.01 is not affected by this bug.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Fri, 25 Jun 2010 20:38:49 +0000 (13:38 -0700)]
doc: inslist.src is an intermediate file, move to "make clean"
inslist.src is an intermediate file, it should be in "make clean"
rather than "make spotless"; otherwise it ends up in the xdoc tarball.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Fri, 25 Jun 2010 11:45:19 +0000 (15:45 +0400)]
BR 3020760: insns.dat -- confirm push imm32 on x86-64 explicitly
PUSH imm64 confuses ones who is trying to find this instruction in
processor programming manuals.
Actually it was introduced in a sake of "push `size' imm" consistency.
In other words -- to allow users to state "PUSH qword imm32" in 64bit code,
though on byte level (ie generated) code it still has a correct and valid
sign-extended "PUSH imm32" instruction.
To get rid of this ambiguie bite we make explicit "PUSH imm32"
being valid in 64bit code. This also makes "PUSH dword imm32"
valid in 64bit code as well.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sat, 19 Jun 2010 21:52:19 +0000 (01:52 +0400)]
preproc.c: Get rid of signed/unsigned comparison warning
We need mac->nparam being explicictly int'fied otherwise
compiler issue a warning. Note that we might have been
using unsigned int but it would break an ability to pass
negative indices.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Fri, 18 Jun 2010 23:24:46 +0000 (16:24 -0700)]
BR 3018233: handle LFS, LGS and LSS with a 64-bit register
LFS, LGS and LSS are valid in 64-bit mode and have 64-bit (REX.W)
forms.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 15 Jun 2010 17:49:09 +0000 (10:49 -0700)]
openwcom.mak: drop /f from delete commands
Classic DOS doesn't have del /f, and we don't really need it.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 15 Jun 2010 17:47:16 +0000 (10:47 -0700)]
Rename filenames to 8.3 format
Apparently some people still care about compiling native on MS-DOS,
and we don't have a significant number of files which need adjustment.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Tue, 8 Jun 2010 14:45:06 +0000 (18:45 +0400)]
expand_mmac_params: Expand local single macros unconditionally
Peter proposed to expand local single macros unconditionally.
This should not hurt but give us more cleaner code in result.
Reported-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 8 Jun 2010 14:39:56 +0000 (18:39 +0400)]
expand_mmac_params: Expand local single macros unconditionally
Peter proposed to expand local single macros unconditionally.
This should not hurt but give us more cleaner code in result.
Reported-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Mon, 7 Jun 2010 18:34:28 +0000 (11:34 -0700)]
outobj: handle compilers without 64-bit switch() support
OpenWatcom, in particular, doesn't handle switch() statements with
64-bit expressions, sigh.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 7 Jun 2010 18:26:11 +0000 (11:26 -0700)]
outelf32: handle compilers without 64-bit switch() support
OpenWatcom, in particular, doesn't handle switch() statements with
64-bit expressions, sigh.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Sat, 5 Jun 2010 20:13:43 +0000 (00:13 +0400)]
NASM 2.09rc1
Cyrill Gorcunov [Sat, 5 Jun 2010 07:24:59 +0000 (11:24 +0400)]
nasmdoc: Document macro parameters range
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sat, 5 Jun 2010 06:47:10 +0000 (10:47 +0400)]
expand_mmac_params_range: Simplify condition
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 4 Jun 2010 21:58:10 +0000 (01:58 +0400)]
preproc.c: Fix argument indices checking in parameters range
Otherwise %{-1:-1} fails.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 4 Jun 2010 21:50:23 +0000 (01:50 +0400)]
preproc.c: Introduce macros parameters range expansion
Introduce an ability to expand multi-line macros parameters in
a range/sequence manner.
For this purpose a special form is introduced %{x:y} which means to
expand %{x:y} to %{x},%{x+1},%{x+2},...,%{y}.
Both arguments could be negative or positive but MUST NOT be zero.
The arguments take into account possible %rotate as well.
Note that unlike the approach implemented in yasm we refer :-1 as
_last_ argument passed to a macro call, this makes possible to refer
the last element from macro via record as %{-1:-1} which could be
a convenient trick.
Also you can refer the argument in reverse order, ie it's legitime
to write %{5:4}, or even to reverse the all arguments %{-1:1}.
An example
|
| %macro mpar 1-*
| db %{1:-2}
| %endmacro
|
| mpar 1,2,3,4,5,6
in result we'll get the sequence of 1,2,3,4,5
Reported-by: nasm64developer <nasm64developer@users.sf.net>
Inspired-by: Mathieu Monnier <mathieu.monnier@polytechnique.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 4 Jun 2010 05:22:12 +0000 (09:22 +0400)]
expand_mmac_params: Format condition
It's much easier to read aligned
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 3 Jun 2010 18:04:36 +0000 (22:04 +0400)]
nasmlib: Rename elements() macro to ARRAY_SIZE
ARRAY_SIZE is a well known name pointing out that
we're dealing with array in macro argument.
Also to be on a safe side prefix_name helper should
check the index been in bounds more precisely.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 2 Jun 2010 11:57:51 +0000 (15:57 +0400)]
preproc.c: Use list_ helpers
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 2 Jun 2010 07:57:05 +0000 (11:57 +0400)]
expand_mmac_params: Don't forget to handle TOK_OTHER
TOK_OTHER is legitime to follow TOK_PREPROC_ID so don't forget to handle it as well.
[ An addition to commit
ec88c1beac00 ]
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 1 Jun 2010 20:59:21 +0000 (00:59 +0400)]
BR3005117: Expland local single macro before pasting tokens
When we have switched to unified token pasting code we loose
backward compatibility. Restore it.
Note that new code MUST not expluatate this facility but rather
use paste macro %+ explicitly.
N.B. this patch is probably the candidate for revert, though
to give it a chance I commit it.
Reported-by: Alexey Dokuchaev
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Fri, 7 May 2010 20:42:09 +0000 (13:42 -0700)]
New %use package "fp"
New standard macro package with utility macros for floating-point
constants.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Fri, 7 May 2010 20:21:20 +0000 (13:21 -0700)]
nasmdoc: document octal/binary floating-point
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Fri, 7 May 2010 20:14:45 +0000 (13:14 -0700)]
nasmdoc: add missing comma
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Fri, 7 May 2010 20:12:12 +0000 (13:12 -0700)]
nasmdoc: update the full set of numeric prefix/suffix characters.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Fri, 7 May 2010 00:58:46 +0000 (17:58 -0700)]
outobj: update error message
The possible sizes we can encounter are 1, 2, 4, 8... make sure we get
a proper error message.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Fri, 7 May 2010 00:52:57 +0000 (17:52 -0700)]
outobj: properly error on unsupported relocations
Error out on any relocations not supported by the backend.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Fri, 7 May 2010 00:45:39 +0000 (17:45 -0700)]
outelf64: update copyright date
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Thu, 6 May 2010 23:14:00 +0000 (16:14 -0700)]
ELF support for 8-bit relocations
Support 8-bit relocations (OUT_ADDRESS and OUT_REL1ADR) in ELF.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Thu, 6 May 2010 22:32:20 +0000 (15:32 -0700)]
Permit short intersegment jumps
Allow an intersegment jump to be short (OUT_REL1ADR) if explicitly
specified so by the user.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Thu, 6 May 2010 22:25:43 +0000 (15:25 -0700)]
Add support for one-byte relocations
Add OUT_REL1ADR (one-byte relative address) and support for
OUT_ADDRESs with size == 1. Add support for it in
outbin and outdbg. *It still needs to be added to other backends*,
both the OUT_REL*ADR and OUT_ADDRESS codepaths need to be handled.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Wed, 28 Apr 2010 19:17:13 +0000 (23:17 +0400)]
MachO: Fix misprinted macho_sectalign
macho_sectalign was occasionally misprinted
with macho_setcalign, fix it. No change on functionality.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sun, 25 Apr 2010 18:00:15 +0000 (22:00 +0400)]
obj: Implement sectalign helper
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sun, 25 Apr 2010 17:35:09 +0000 (21:35 +0400)]
macho: Implement sectalign handler
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sun, 25 Apr 2010 13:55:52 +0000 (17:55 +0400)]
ieee: Fix section index match in sectalign handler
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sun, 25 Apr 2010 08:02:38 +0000 (12:02 +0400)]
headers: Update year
It's 2010 now
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sat, 24 Apr 2010 21:17:11 +0000 (01:17 +0400)]
outieee: Implement sectalign handler
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 18:32:17 +0000 (22:32 +0400)]
outbin: Drop current_section variable
There is no need for it anymore.
Reported-by: "H. Peter Anvin" <hpa@linux.intel.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 18:24:04 +0000 (22:24 +0400)]
outbin: Prune ancient format_mode variable
format_mode is always set to 1 so there is no need to
keep this variable. "Old chicken bit" (c) :)
Reported-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Thu, 22 Apr 2010 18:02:56 +0000 (11:02 -0700)]
ilog2: optimize use of bsr for x86-64
On x86-64 platforms, we can rely on BSR not changing the destination
operand when the input is zero.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Wed, 7 Apr 2010 05:40:47 +0000 (22:40 -0700)]
doc: use bouncer URLs for the ABI docs
MSDN can't seem to keep their URLs stable, so use bouncer links
that we can change if necessary.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 12:37:56 +0000 (16:37 +0400)]
bin: Implement sectalign handler
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 11:21:37 +0000 (15:21 +0400)]
coff: Use IMAGE_SCN_ALIGN_MASK macro
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 11:17:35 +0000 (15:17 +0400)]
coff: Allow alignment greater then 64 bytes on win
On win32/64 we have no 64 bytes limit so hit it on
"coff" target only.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 11:05:19 +0000 (15:05 +0400)]
coff: Fix section alignment computation
Section alignment is broken due to not being
direct "align -> power of two set" mapping but
rather including second addition operation.
Fix it by introducing coff_sectalign_flags helper.
This also allow us to use this helper for getting
rid of open coded computation as well.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 10:25:21 +0000 (14:25 +0400)]
coff: Use predefined macros instead of numbers and style fix
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 06:29:19 +0000 (10:29 +0400)]
ilog2: Use ROUND helper
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 06:06:13 +0000 (10:06 +0400)]
ilog2: Get rid of tabs
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 22 Apr 2010 05:32:22 +0000 (09:32 +0400)]
pecoff.h: Complete header
Put in all constants pecoff v8 states. Most probably we
will never need most of them but lets have them here for
completeness.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Wed, 21 Apr 2010 23:46:57 +0000 (16:46 -0700)]
Remove open-coded ilog2() implementations
When we need integer log2, use the new library routine.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Wed, 21 Apr 2010 23:43:20 +0000 (16:43 -0700)]
Add generic ilog2 functions
Add ilog2_{32,64}() and alignlog2_{32,64}() ... the latter is intended
for alignment statements and return -1 for non-power-of-2 other than 0
(which returns 0).
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Wed, 21 Apr 2010 23:40:38 +0000 (16:40 -0700)]
Makefile: clean up the lib directory on make clean
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 19:52:57 +0000 (23:52 +0400)]
standard.mac: Update section alignment on align call
Achieved via sectalign call. Note that not all output
targets (ie formats) may handle sectalign yet, most
of them just ignore this entity.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 18:40:11 +0000 (22:40 +0400)]
coff: Use predefined macro in common section flags
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 18:03:33 +0000 (22:03 +0400)]
coff: Use predefined macro and eliminate open coded constants
Not all are covered but process initiated.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 17:47:03 +0000 (21:47 +0400)]
pecoff.h: Add more constants
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 14:51:14 +0000 (18:51 +0400)]
make: Update pecoff.h related deps
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 14:46:27 +0000 (18:46 +0400)]
pecoff: Update machine types
Update up to pecoff v8
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 12:38:56 +0000 (16:38 +0400)]
output: Introduce pecoff.h
Better to have common constants grouped.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 11:45:09 +0000 (15:45 +0400)]
coff: Implement sectalign handler
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 21 Apr 2010 09:45:32 +0000 (13:45 +0400)]
Rename SEGALIGN to SECTALIGN
"sectalign" is preferred over "segalign"
since it operates over section attributes.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 21:22:31 +0000 (01:22 +0400)]
smartalign.mac: align macro should align a segment as well
This change may have backward compatibility issue but
most probably the sane program never used sections with
base address less then instruction alignment.
Note that alignment may only increase which means if a
section is aligned on 2^5 the align 2^4 will not affect
the section.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 21:15:28 +0000 (01:15 +0400)]
Elf64: Implement segalign handler
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 21:05:13 +0000 (01:05 +0400)]
Elf-32: Implement segalign handling
Via elf_segalign helper
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 20:51:22 +0000 (00:51 +0400)]
ofmt: Implement null_segalign stubs
Set stubs for all targets
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 11:33:45 +0000 (15:33 +0400)]
Introduce SEGALIGN directive
No real handling yet though. Definition only.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 11:26:08 +0000 (15:26 +0400)]
labels.c: lookup_label -- should return bool unconditionally
Better to not put return under condition. It was bad.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 11:06:44 +0000 (15:06 +0400)]
smartalign: Introduce nojmp mode
This allows to force nasm to generate multibyte
NOPs without jmp injected.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 20 Apr 2010 11:05:02 +0000 (15:05 +0400)]
Elf: Rename SEG_ALIGN to SEC_FILEALIGN
It's Elf specifics. To not mess with segment alignment.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>