aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Check in test case from bug report br3005117HEADmasterH. Peter Anvin2010-07-081-0/+24
| | | | Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* br3026808: add test caseH. Peter Anvin2010-07-081-0/+18
| | | | | | Add test case for BR 3026808 (%assign %$local). Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* insns: add FXSAVE64/FXRSTOR64, drop np prefixH. Peter Anvin2010-07-071-7/+9
| | | | | | | | 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>
* Merge branch 'master' of ssh://repo.or.cz/srv/git/nasmH. Peter Anvin2010-07-071-14/+26
|\
| * insns.dat: add XSAVE/XRSTOR64, XSAVEOPT, VCVTPH2PS/VCVTPS2PHH. Peter Anvin2010-07-071-14/+26
| | | | | | | | | | | | | | 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>
* | insns.dat: remove VCVTPH2PS/VCVTPS2PH as AMD instructionsH. Peter Anvin2010-07-061-10/+2
|/ | | | | | | Remove VCVTPH2PS/VCVTPS2PH as AMD instructions based on version 3.04 of the AMD spec. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* NASM 2.09rc2nasm-2.09rc2H. Peter Anvin2010-07-061-1/+1
|
* doc: Update changes.srcCyrill Gorcunov2010-07-071-0/+34
| | | | | | Before soon-coming 2.09rc2. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* insns.dat: fix CPU flags for new instructionsH. Peter Anvin2010-07-061-9/+9
| | | | | | | | 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>
* Add RD*SBASE, WR*SBASE, RDRAND from AVX v7H. Peter Anvin2010-07-062-0/+35
| | | | | | | 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>
* outbin: Cleanup bin_cleanupCyrill Gorcunov2010-07-061-5/+7
| | | | | | No need for 'q' variable. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* outbin: Simplify reverse address computingCyrill Gorcunov2010-07-061-2/+2
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* BR3025702: outbin -- Fix byte orderingCyrill Gorcunov2010-07-061-2/+2
| | | | | | | 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>
* doc: inslist.src is an intermediate file, move to "make clean"H. Peter Anvin2010-06-251-1/+2
| | | | | | | 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>
* BR 3020760: insns.dat -- confirm push imm32 on x86-64 explicitlyCyrill Gorcunov2010-06-251-0/+1
| | | | | | | | | | | | | | | | 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>
* preproc.c: Get rid of signed/unsigned comparison warningCyrill Gorcunov2010-06-201-2/+2
| | | | | | | | | 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>
* BR 3018233: handle LFS, LGS and LSS with a 64-bit registerH. Peter Anvin2010-06-181-1/+4
| | | | | | | 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>
* openwcom.mak: drop /f from delete commandsH. Peter Anvin2010-06-151-30/+30
| | | | | | Classic DOS doesn't have del /f, and we don't really need it. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* Rename filenames to 8.3 formatH. Peter Anvin2010-06-1511-324/+316
| | | | | | | 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>
* expand_mmac_params: Expand local single macros unconditionallyCyrill Gorcunov2010-06-081-8/+1
| | | | | | | | 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>
* expand_mmac_params: Expand local single macros unconditionallyCyrill Gorcunov2010-06-081-6/+1
| | | | | | | | 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>
* outobj: handle compilers without 64-bit switch() supportH. Peter Anvin2010-06-071-1/+5
| | | | | | | OpenWatcom, in particular, doesn't handle switch() statements with 64-bit expressions, sigh. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* outelf32: handle compilers without 64-bit switch() supportH. Peter Anvin2010-06-071-14/+22
| | | | | | | OpenWatcom, in particular, doesn't handle switch() statements with 64-bit expressions, sigh. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* NASM 2.09rc1nasm-2.09rc1Cyrill Gorcunov2010-06-061-1/+1
|
* nasmdoc: Document macro parameters rangeCyrill Gorcunov2010-06-051-1/+43
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* expand_mmac_params_range: Simplify conditionCyrill Gorcunov2010-06-051-4/+2
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* preproc.c: Fix argument indices checking in parameters rangeCyrill Gorcunov2010-06-051-2/+4
| | | | | | Otherwise %{-1:-1} fails. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* preproc.c: Introduce macros parameters range expansionCyrill Gorcunov2010-06-051-77/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* expand_mmac_params: Format conditionCyrill Gorcunov2010-06-041-3/+3
| | | | | | It's much easier to read aligned Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* nasmlib: Rename elements() macro to ARRAY_SIZECyrill Gorcunov2010-06-034-8/+7
| | | | | | | | | | 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>
* preproc.c: Use list_ helpersCyrill Gorcunov2010-06-021-33/+23
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* expand_mmac_params: Don't forget to handle TOK_OTHERCyrill Gorcunov2010-06-021-1/+2
| | | | | | | | 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>
* BR3005117: Expland local single macro before pasting tokensCyrill Gorcunov2010-06-021-0/+26
| | | | | | | | | | | | | | 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>
* New %use package "fp"H. Peter Anvin2010-05-071-0/+54
| | | | | | | New standard macro package with utility macros for floating-point constants. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* nasmdoc: document octal/binary floating-pointH. Peter Anvin2010-05-071-5/+9
| | | | Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* nasmdoc: add missing commaH. Peter Anvin2010-05-071-1/+1
| | | | Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* nasmdoc: update the full set of numeric prefix/suffix characters.H. Peter Anvin2010-05-071-7/+11
| | | | Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* outobj: update error messageH. Peter Anvin2010-05-061-2/+2
| | | | | | | 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>
* outobj: properly error on unsupported relocationsH. Peter Anvin2010-05-061-12/+38
| | | | | | Error out on any relocations not supported by the backend. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* outelf64: update copyright dateH. Peter Anvin2010-05-061-1/+1
| | | | Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* ELF support for 8-bit relocationsH. Peter Anvin2010-05-062-35/+92
| | | | | | Support 8-bit relocations (OUT_ADDRESS and OUT_REL1ADR) in ELF. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* Permit short intersegment jumpsH. Peter Anvin2010-05-061-9/+13
| | | | | | | 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>
* Add support for one-byte relocationsH. Peter Anvin2010-05-066-126/+68
| | | | | | | | | 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>
* MachO: Fix misprinted macho_sectalignCyrill Gorcunov2010-04-282-4/+4
| | | | | | | macho_sectalign was occasionally misprinted with macho_setcalign, fix it. No change on functionality. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* obj: Implement sectalign helperCyrill Gorcunov2010-04-251-1/+44
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* macho: Implement sectalign handlerCyrill Gorcunov2010-04-252-2/+36
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* ieee: Fix section index match in sectalign handlerCyrill Gorcunov2010-04-251-1/+1
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* headers: Update yearCyrill Gorcunov2010-04-254-8/+8
| | | | | | It's 2010 now Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* outieee: Implement sectalign handlerCyrill Gorcunov2010-04-251-1/+23
| | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
* outbin: Drop current_section variableCyrill Gorcunov2010-04-221-7/+3
| | | | | | | There is no need for it anymore. Reported-by: "H. Peter Anvin" <hpa@linux.intel.com> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>