Keith Kanios
48af17738c
Fixed issues with REX prefix effective address generation. Fixed XMM instruction output.
2007-08-17 07:37:52 +00:00
H. Peter Anvin
5b0e3eca28
More int/int32_t confusion
2007-07-07 02:01:08 +00:00
H. Peter Anvin
0ec60e69d9
regflag() should return int32_t.
2007-07-07 01:59:52 +00:00
Chuck Crayne
42fe6ce765
Support 32-bit direct addressing in 64-bit mode without base or index regs
2007-06-03 02:42:41 +00:00
H. Peter Anvin
ce2b397f1e
Fix the handling of the \313 code.
...
\313 indicates a fixed 64-bit address size. It was incorrectly
documented and incorrectly implemented in the assembler, and was
unimplemented in the disassembler.
2007-05-30 22:21:11 +00:00
H. Peter Anvin
c6be66fa20
Correct the generation of 67 prefixes.
...
The recent switch from register numbers (with -1 meaning "none") to
register flags (with 0 meaning "none") broke the generation of 67
prefixes, especially in 64-bit mode.
2007-05-30 20:30:15 +00:00
H. Peter Anvin
34539fb1ed
Remove bogus redundant tests
...
Remove tests that are bogus (they trigger for legitimate instructions.)
The failure cases are okay anyway since they will be trapped by the
REX generation logic.
2007-05-30 04:27:58 +00:00
H. Peter Anvin
a57e8d411a
Remove bogus check for 64-bitness
...
Remove a bogus check for 64-bit operands. If appropriate, we will
detect this during REX generation and will bail then. However, there
are other instructions (floating point, MMX, ...) which are legitimately
64 bits in non-64-bit mode.
2007-05-30 03:44:02 +00:00
H. Peter Anvin
3df97a7270
Get rid of magic open-coded "register numbers"
...
Get rid of magic open-coded register numbers. We now keep track of
a total of three different kinds of register numbers: the register
enumeration (regs.h), the x86 register value, and the register flags.
That has all the information we need.
Additionally, do massive revamping of the EA generation code and the
REX generation logic.
2007-05-30 03:25:21 +00:00
H. Peter Anvin
5a640e1161
Clean up the existing operand flag definitions, and document
2007-05-29 23:57:12 +00:00
H. Peter Anvin
8d7316a3ff
Fix the handling of \324 for computing the length
...
\324 means REX.W is mandatory, but that doesn't mean add a byte to the
output! Instead, force REX.W set, and let the REX logic deal with the
length.
2007-04-18 02:27:18 +00:00
H. Peter Anvin
0db11e236b
Handle "LOCK as REX.R" for MOV CRx; fix warning for invalid 64-bit regs
...
- MOV gpr,CRx or MOV CRx,gpr can access high control registers with a LOCK
prefix; handle that in both the assembler and disassembler.
- Get a saner error message when trying to access high resources in
non-64-bit mode.
2007-04-17 20:23:11 +00:00
Keith Kanios
fd5d91383a
Fixed 64-bit Mode Segment Selection.
2007-04-16 15:46:46 +00:00
Keith Kanios
e83b318017
Fixed distinction between [LOCAL]SYMBOL/IMMEDIATE for RIP-relative addressing.
2007-04-16 14:31:54 +00:00
H. Peter Anvin
b061d595fb
Fixes for 64-bit ndisasm.
...
This fixes some of the most glaring bugs in ndisasm 64-bit mode. We're
still getting redundant prefixes for unknown reason, however.
2007-04-16 02:02:06 +00:00
Keith Kanios
3faf938f79
Fixed distinction between RIP relative symbols and immediate values.
2007-04-15 22:08:30 +00:00
Keith Kanios
61ff53c80d
Added DQ constants for all BITS modes.
2007-04-14 18:54:52 +00:00
Keith Kanios
b2a0380eb8
Fixed support for DQ constants in long mode.
2007-04-14 03:52:05 +00:00
Keith Kanios
93f2e9a5a1
c99 printf/fprintf compliance.
2007-04-14 00:10:59 +00:00
Keith Kanios
a6dfa78b78
Fixed distinction between char and int8_t data types.
2007-04-13 16:47:53 +00:00
Keith Kanios
2cc61b34f0
Comment "REX.I" should have been "REX.X"
2007-04-13 01:17:45 +00:00
Keith Kanios
b7a89544d0
General push for x86-64 support, dubbed 0.99.00.
2007-04-12 02:40:54 +00:00
H. Peter Anvin
e2c80181b6
Apply Nindent to all .c and .h files
2005-01-15 22:15:51 +00:00
H. Peter Anvin
3da80c0686
Cannot free "lnfname" since it's now static...
2003-09-08 22:59:07 +00:00
Frank Kotler
abebb08083
quick fix to -f obj debug format - put "static" back in assemble.c
...
-
2003-09-06 04:45:37 +00:00
Frank Kotler
d0ed6fd30d
Alexei's patch to allow "-I" paths to be searched for "incbin"ed files
2003-08-27 11:33:56 +00:00
H. Peter Anvin
3198beee7d
Fix offset computation in the presence of explicit prefixes.
2003-07-16 19:53:51 +00:00
H. Peter Anvin
0bfed6cfdb
Fix BR 632459: endianness error
2002-11-10 06:29:23 +00:00
H. Peter Anvin
bfebdb0a07
"const"-ipation fixes from Trevor Woerner
2002-09-12 02:23:54 +00:00
Debbie Wiles
0f65f885a4
Added *1 case support for NOSPLIT ([NOSPLIT EAX] to generate SIB with dword offset 0x0
2002-06-08 19:30:14 +00:00
H. Peter Anvin
232badbbbc
This is the "megapatch":
...
a) Automatically generate dependencies for all Makefiles;
b) Move register definitions to a separate .dat file;
c) Add support for "unimplemented but there in theory" registers.
2002-06-06 02:41:20 +00:00
H. Peter Anvin
3ba467795a
Deal with another case of address/operand size confusion, BR 560873
2002-05-27 23:19:35 +00:00
H. Peter Anvin
17799b40c0
JMP instructions use the operand size prefix, not the address size
...
prefix, to determine the size of the jump target.
2002-05-21 03:31:21 +00:00
H. Peter Anvin
01377d8d7c
Implement new "strict" keyword to inhibit optimization.
2002-05-21 03:16:33 +00:00
H. Peter Anvin
87e1fcdab9
Fix sequence point problem.
2002-05-11 04:01:26 +00:00
H. Peter Anvin
09f6acbb75
NASM 0.98.21
2002-04-30 21:05:55 +00:00
H. Peter Anvin
9eb185bfdb
NASM 0.98.15
2002-04-30 21:02:47 +00:00
H. Peter Anvin
ce61607e11
NASM 0.98.14
2002-04-30 21:02:23 +00:00
H. Peter Anvin
788e6c10e1
NASM 0.98.12
2002-04-30 21:02:01 +00:00
H. Peter Anvin
4cf1748e68
NASM 0.98.11
2002-04-30 21:01:38 +00:00
H. Peter Anvin
734b188090
NASM 0.98.09
2002-04-30 21:01:08 +00:00
H. Peter Anvin
1cd0e2d5bf
NASM 0.98.08
2002-04-30 21:00:33 +00:00
H. Peter Anvin
af535c16cf
NASM 0.98.03
2002-04-30 20:59:21 +00:00
H. Peter Anvin
41bf8002b2
NASM 0.98
2002-04-30 20:58:18 +00:00
H. Peter Anvin
ef7468f4ec
NASM 0.98p7
2002-04-30 20:57:59 +00:00
H. Peter Anvin
4836e3374e
NASM 0.98p3.5
2002-04-30 20:56:43 +00:00
H. Peter Anvin
eba20a73f2
NASM 0.98p3
2002-04-30 20:53:55 +00:00
H. Peter Anvin
76690a12ad
NASM 0.96
2002-04-30 20:52:49 +00:00
H. Peter Anvin
6768eb71d8
NASM 0.95
2002-04-30 20:52:26 +00:00
H. Peter Anvin
d7ed89eac9
NASM 0.94
2002-04-30 20:52:08 +00:00