Age | Commit message (Collapse) | Author | Files | Lines |
|
It is more logical, it cleans up the code and it makes implicit
operand size override prefixes come out in the same order as explicit
ones instead of after all other prefixes.
Suggested-by: H. Peter Anvin <hpa@zytor.com>
|
|
The 0F form, unlike the 0F3A form, of VPEXTRW cannot write a 16-bit
memory location by specification.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Now it should be fixed in real (one code snipped
escaped me during merge conflict resolving).
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Conflicts:
insns.pl
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
In fact it was written as
MOVAPS xmmreg,xmmreg \360\2\x0F\x28\110 KATMAI,SSE
MOVAPS xmmreg,xmmreg \360\2\x0F\x29\101 KATMAI,SSE
in first place
MOVUPS xmmreg,xmmreg \360\2\x0F\x10\110 KATMAI,SSE
MOVUPS xmmreg,xmmreg \360\2\x0F\x11\101 KATMAI,SSE
and for example x28 stands for xmmrm128,xmmreg and
x1 for xmmrm128,xmmreg.
TODO: Inspect and fix WILLAMETTE instructions.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Perhaps not all of them are coevered yet, but mostly.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Signed-off-by: Anthony Williams <rugxulo@gmail.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Conflicts:
version
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Some important fixes:
- Fix incorrect labels offset for VEX intructions
- Eliminate bogus warning on implicit operand size override.
- %if term could not handle 64 bit numbers.
- The COFF backend was limiting relocations number to 16 bits even if
in real there were a way more relocations.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
|
|
The implicit operand size override code didn't set the operand size
prefix, which confused the size calculation code for the range check.
The BITS 64 operand size calculation is still off, but "fixing" it by
making it 32-bit unless REX.W is set breaks PUSH and maybe others.
|
|
It remains backward compatible
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
reloc_value returns 64bit numbers but we strip it down
to 'int' which causes problems if the former value is
big enough to overflow 'int'. Fix it.
[ BR3104312 ]
Reported-by: Christian Masloch
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
The first argument of AC_COMPILE_IFELSE needs to be wrapped with
AC_LANG_SOURCE.
|
|
The backport of
4db724fdd76e3a6cd0f5124ef86de976c495d666
359b63f8976375f071edc33092daea57efa768fb
01102ee8e6a967830bcd6f0134efe8976f473121
2672af737954fb17ec0ebf17e787219a504c4400
so coff output target to be able to handle
massive relocations.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
|
|
calcsize() had the wrong criterion for when C5 prefixes are permitted
(REX.R is permitted, REX.X is forbidden.) assemble() had the right
test already. This caused symbol value errors.
|
|
|
|
|
|
Redundant call on nonsmart compilers doesn't
worth it in compare with two assignment operations.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
While being debugging some nifty problem I found
that it might be useful to produce a full dump of
tokens, in particular text of tokens.
For this reason dump_token is here just to not loose
it. It doesn't affect normal build procedure since it
requires a special -DNASM_TRACE to be passed to the
compiler. Which of course we don't in a regular
compilations.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
To eliminate possible access into heap data
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
To be on safe side
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
It's safer to init it early and be sure we not
miss anything after.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Srink the code and make it a bit faster.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
It's shorter
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
No change on binary level
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
If not all members of structure being allocated from
heap get initialized we better to use nasm_zalloc instead
of nasm_malloc.
For example inc gets allocated in do_directive being parially
initialized and we erroniously get mmac_depth set to some
crappy value leading to SIGSEV in result.
[ http://forum.nasm.us/index.php?topic=921.msg3257#msg3257 ]
nb: I've cleaned verror from tab/space mess while were at it
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
|
|
|
|
|
|
The implicit operand size override code didn't set the operand size
prefix, which confused the size calculation code for the range check.
The BITS 64 operand size calculation is still off, but "fixing" it by
making it 32-bit unless REX.W is set breaks PUSH and maybe others.
|
|
|
|
It doesn't like when we mess scope of variables
declaration.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
The first argument of AC_COMPILE_IFELSE needs to be wrapped with
AC_LANG_SOURCE.
|
|
Use of defined on aggregates (hashes and arrays) is deprecated.
You should instead use a simple test for size.
|
|
|
|
|