diff options
author | Ulrich Drepper <drepper@redhat.com> | 2008-01-14 19:17:36 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2008-01-14 19:17:36 +0000 |
commit | 35f2fe6ed13dc314ccecdfe5cc5a155044019e18 (patch) | |
tree | 5539acd9f5cbb4011621b5a0743ed53e28eb0c54 /libcpu/defs | |
parent | 947634833d2623225716a135134727bc446d04d1 (diff) | |
download | elfutils-35f2fe6ed13dc314ccecdfe5cc5a155044019e18.tar.gz |
Fix a couple of x86-64 disassembler cases.
Diffstat (limited to 'libcpu/defs')
-rw-r--r-- | libcpu/defs/i386 | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libcpu/defs/i386 b/libcpu/defs/i386 index b545c481..1b4bbb4a 100644 --- a/libcpu/defs/i386 +++ b/libcpu/defs/i386 @@ -9,6 +9,7 @@ dnl floating point reg suffix %mask {imms8} 8 %mask {imm16} 16 %mask {reg} 3 +%mask {oreg} 3 %mask {reg16} 3 %mask {reg64} 3 %mask {tttn} 4 @@ -25,6 +26,7 @@ dnl like {r_m} but referencing 32- or 64-bit register %mask {disp8} 8 dnl imm really is 8/16/32 bit depending on the situation. %mask {imm} 8 +%mask {imm64} 8 %mask {imms} 8 %mask {rel} 32 %mask {abs} 32 @@ -56,6 +58,10 @@ dnl imm really is 8/16/32 bit depending on the situation. %synonym {xmmreg2} {xmmreg} %synonym {mmxreg1} {mmxreg} %synonym {mmxreg2} {mmxreg} +ifdef(`i386', +`%synonym {oreg} {reg} +%synonym {imm64} {imm} +')dnl %% ifdef(`i386', @@ -352,7 +358,9 @@ ifdef(`ASSEMBLER', 1110010{w},{imm8}:in {imm8},{ax}{w} 1110110{w}:in {dx},{ax}{w} 1111111{w},{mod}000{r_m}:inc{w} {mod}{r_m}{w} -01000{reg}:inc {reg} +ifdef(`i386', +`01000{reg}:inc {reg} +')dnl 0110110{w}:{R}ins{w} {dx},{es_di} 11001101,{imm8}:int {imm8} 11001100:int3 @@ -407,7 +415,7 @@ ifdef(`i386', 1000100{w},{mod}{reg}{r_m}:mov {reg}{w},{mod}{r_m}{w} 1000101{w},{mod}{reg}{r_m}:mov {mod}{r_m}{w},{reg}{w} 1100011{w},{mod}000{r_m},{imm}:mov{w} {imm}{w},{mod}{r_m}{w} -1011{w}{reg},{imm}:mov {imm}{w},{reg}{w} +1011{w}{oreg},{imm64}:mov {imm64}{w},{oreg}{w} 1010000{w},{abs}:mov {abs},{ax}{w} 1010001{w},{abs}:mov {ax}{w},{abs} 00001111,00100000,11{ccc}{reg64}:mov {ccc},{reg64} @@ -424,7 +432,11 @@ ifdef(`i386', 1111011{w},{mod}100{r_m}:mul{w} {mod}{r_m}{w} 1111011{w},{mod}011{r_m}:neg{w} {mod}{r_m}{w} 11110011,10010000:pause -10010000:nop +ifdef(`i386', +`10010000:nop +', +`10010000:INVALID +')dnl 1111011{w},{mod}010{r_m}:not{w} {mod}{r_m}{w} 0000100{w},{mod}{reg}{r_m}:or {reg}{w},{mod}{r_m}{w} 0000101{w},{mod}{reg}{r_m}:or {mod}{r_m}{w},{reg}{w} @@ -562,7 +574,7 @@ ifdef(`i386', 00001111,00110000:wrmsr 00001111,1100000{w},{mod}{reg}{r_m}:xadd {reg}{w},{mod}{r_m}{w} 1000011{w},{mod}{reg}{r_m}:xchg {reg}{w},{mod}{r_m}{w} -10010{reg}:xchg {ax},{reg} +10010{oreg}:xchg {ax},{oreg} 11010111:xlat {ds_bx} 0011000{w},{mod}{reg}{r_m}:xor {reg}{w},{mod}{r_m}{w} 0011001{w},{mod}{reg}{r_m}:xor {mod}{r_m}{w},{reg}{w} |