summaryrefslogtreecommitdiff
path: root/include/iflag.h
Commit message (Collapse)AuthorAgeFilesLines
* LEA: allow immediate syntax; ignore operand size entirelyH. Peter Anvin (Intel)2019-08-141-1/+1
| | | | | | | The memory operand size of LEA doesn't matter in any way as it isn't "real memory". Add an ANYSIZE option to ignore sizes entirely. Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
* iflag.h: fix IF_CPU_LEVEL_MASK, add missing CPU definitionsH. Peter Anvin (Intel)2019-08-061-2/+2
| | | | | | | | | Fix the definition of IF_CPU_LEVEL_MASK (which was missing the top bit, IFM_ANY itself). Add CPU definitions that we actually have into directiv.c. Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
* iflag.h: simplify, fix iflag_cmp() when bit 31 is setH. Peter Anvin (Intel)2019-08-061-25/+14
| | | | | | | | | | Additional simplifications, including using the new IFM_ masks, and make IF_GENBIT() automatically mask the field number. When bit 31 in a field is set, iflag_cmp() could return the wrong ordering value. Fix. Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
* iflags: move definitions to a separate file; auto-generate moreH. Peter Anvin (Intel)2019-08-061-18/+5
| | | | | | | | | | Move the definitions to a separate file, in order to separate code from data better. We can auto-generate more information about the instruction flags, so let's do so. Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
* Move <string.h> inclusion to compiler.hH. Peter Anvin2018-12-261-1/+0
| | | | | | | There is absolutely no reason not to include <string.h> globally, and with the inline function for mempcpy() we need it there anyway. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Fix problem with C99 inlines and -Werror=missing-prototypesH. Peter Anvin2018-02-201-1/+0
| | | | | | | | | | Some older versions of gcc (gcc 4.2.1 at least) produce a warning, promoted to error, on C99 inlines. Do some work to figure out if we need to fall back to GNU inline syntax. Fix some issues with GNU inline syntax. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* Merge tag 'nasm-2.13.03'H. Peter Anvin2018-02-071-52/+70
|\ | | | | | | | | | | | | | | | | | | | | NASM 2.13.03 Resolved Conflicts: include/iflag.h version x86/insns-iflags.ph Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * iflag: automatically assign values, saner handling of CPU levelsH. Peter Anvin2018-02-061-53/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Automatically assign values to the instruction flags; we ended up with a case where pushing flags into the next dword caused comparison failures due to other places in the code explicitly comparing field[3]. This creates necessary defines for this not to happen; it also cleans up a fair bit of the iflag code. This resolves BR 3392454. Reported-by: Thomasz Kantecki <tomasz.kantecki@intel.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | ilog2(): inline functions if practicalH. Peter Anvin2017-09-271-3/+1
|/ | | | | | | For many (most?) targets these will be very small functions, so inline them. However, just in case make these external library functions. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* asm/*: Move directive processing to its own file, refactor error handlingH. Peter Anvin2017-03-071-1/+0
| | | | | | | | Move directive processing to its own file, and move nasmlib/error.c to asm/error.c (it was not used by the disassembler); remove some extern declarations from .c files, and do some general code cleanups. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* Reorganize the source code into subdirectoriesH. Peter Anvin2016-05-251-0/+159
Make the source code easier to understand and keep track of by organizing it into subdirectories depending on the function. Signed-off-by: H. Peter Anvin <hpa@zytor.com>