diff options
author | Peter Johnson <peter@tortall.net> | 2009-04-04 23:03:41 +0000 |
---|---|---|
committer | Peter Johnson <peter@tortall.net> | 2009-04-04 23:03:41 +0000 |
commit | 378d6dd1e16b5a91bb1076fb20f6b1e4b91e3962 (patch) | |
tree | 62afbf2f67f904b7d649e09a1413880bb8c73751 | |
parent | d16fb629241c0cf07f7928f0b9a0f74b1764d035 (diff) | |
parent | 8bc9e295a55ed41577e3a7dd516d4f9510a87469 (diff) | |
download | yasm-0.8.tar.gz |
Merge [2192] from trunk.0.8
svn path=/branches/yasm-0.8.x/; revision=2193
-rwxr-xr-x | modules/arch/x86/gen_x86_insn.py | 16 | ||||
-rw-r--r-- | modules/arch/x86/tests/gas32/Makefile.inc | 2 | ||||
-rw-r--r-- | modules/arch/x86/tests/gas32/gas-fpmem.asm | 11 | ||||
-rw-r--r-- | modules/arch/x86/tests/gas32/gas-fpmem.hex | 376 |
4 files changed, 405 insertions, 0 deletions
diff --git a/modules/arch/x86/gen_x86_insn.py b/modules/arch/x86/gen_x86_insn.py index 271d3ffa..372454df 100755 --- a/modules/arch/x86/gen_x86_insn.py +++ b/modules/arch/x86/gen_x86_insn.py @@ -3096,6 +3096,14 @@ add_group("fildstp", opcode=[0xDD], spare=0, operands=[Operand(type="Mem", size=64, dest="EA")]) +# No-suffix alias for memory for GAS compat -> "s" version generated +add_group("fildstp", + cpu=["FPU"], + parsers=["gas"], + modifiers=["SpAdd"], + opcode=[0xDF], + spare=0, + operands=[Operand(type="Mem", size=16, relaxed=True, dest="EA")]) add_insn("fild", "fildstp", modifiers=[0, 2, 5]) add_insn("fistp", "fildstp", modifiers=[3, 2, 7]) @@ -3180,6 +3188,14 @@ add_group("fcom", modifiers=["Op1Add"], opcode=[0xD8, 0x00], operands=[Operand(type="Reg", size=80, dest="Op1Add")]) +# No-suffix alias for memory for GAS compat -> "s" version generated +add_group("fcom", + cpu=["FPU"], + parsers=["gas"], + modifiers=["Gap", "SpAdd"], + opcode=[0xD8], + spare=0, + operands=[Operand(type="Mem", size=32, relaxed=True, dest="EA")]) # Alias for fcom %st(1) for GAS compat add_group("fcom", cpu=["FPU"], diff --git a/modules/arch/x86/tests/gas32/Makefile.inc b/modules/arch/x86/tests/gas32/Makefile.inc index 80f22a40..10329f1d 100644 --- a/modules/arch/x86/tests/gas32/Makefile.inc +++ b/modules/arch/x86/tests/gas32/Makefile.inc @@ -7,6 +7,8 @@ EXTRA_DIST += modules/arch/x86/tests/gas32/align32.asm EXTRA_DIST += modules/arch/x86/tests/gas32/align32.hex EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farithr.asm EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farithr.hex +EXTRA_DIST += modules/arch/x86/tests/gas32/gas-fpmem.asm +EXTRA_DIST += modules/arch/x86/tests/gas32/gas-fpmem.hex EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movdq32.asm EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movdq32.hex EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movsd.asm diff --git a/modules/arch/x86/tests/gas32/gas-fpmem.asm b/modules/arch/x86/tests/gas32/gas-fpmem.asm new file mode 100644 index 00000000..ca905308 --- /dev/null +++ b/modules/arch/x86/tests/gas32/gas-fpmem.asm @@ -0,0 +1,11 @@ +.text +fcomp +fcomp %st(1) +fcomp 0(%eax) +fcomps 0(%eax) +fcompl 0(%eax) + +fistp 0(%eax) +fistps 0(%eax) +fistpl 0(%eax) + diff --git a/modules/arch/x86/tests/gas32/gas-fpmem.hex b/modules/arch/x86/tests/gas32/gas-fpmem.hex new file mode 100644 index 00000000..81d6a3a0 --- /dev/null +++ b/modules/arch/x86/tests/gas32/gas-fpmem.hex @@ -0,0 +1,376 @@ +7f +45 +4c +46 +01 +01 +01 +00 +00 +00 +00 +00 +00 +00 +00 +00 +01 +00 +03 +00 +01 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +b0 +00 +00 +00 +00 +00 +00 +00 +34 +00 +00 +00 +00 +00 +28 +00 +05 +00 +01 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +d8 +d9 +d8 +d9 +d8 +18 +d8 +18 +dc +18 +df +18 +df +18 +db +18 +00 +2e +74 +65 +78 +74 +00 +2e +73 +74 +72 +74 +61 +62 +00 +2e +73 +79 +6d +74 +61 +62 +00 +2e +73 +68 +73 +74 +72 +74 +61 +62 +00 +00 +00 +00 +00 +2d +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +01 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +04 +00 +f1 +ff +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +03 +00 +04 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +17 +00 +00 +00 +03 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +50 +00 +00 +00 +21 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +07 +00 +00 +00 +03 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +74 +00 +00 +00 +03 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +0f +00 +00 +00 +02 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +78 +00 +00 +00 +30 +00 +00 +00 +02 +00 +00 +00 +03 +00 +00 +00 +04 +00 +00 +00 +10 +00 +00 +00 +01 +00 +00 +00 +01 +00 +00 +00 +06 +00 +00 +00 +00 +00 +00 +00 +40 +00 +00 +00 +10 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +10 +00 +00 +00 +00 +00 +00 +00 |