]> granicus.if.org Git - yasm/commitdiff
Default memory size to "s" for no-suffix FP conversions in GAS syntax.
authorPeter Johnson <peter@tortall.net>
Sun, 29 Mar 2009 23:25:05 +0000 (23:25 -0000)
committerPeter Johnson <peter@tortall.net>
Sun, 29 Mar 2009 23:25:05 +0000 (23:25 -0000)
Reported by: Gregory McGarry <g.mcgarry@ieee.org>

svn path=/trunk/yasm/; revision=2192

modules/arch/x86/gen_x86_insn.py
modules/arch/x86/tests/gas32/Makefile.inc
modules/arch/x86/tests/gas32/gas-fpmem.asm [new file with mode: 0644]
modules/arch/x86/tests/gas32/gas-fpmem.hex [new file with mode: 0644]

index 271d3ffa08eedd066de4d8bc40a9dd1528f19554..372454df34349d558f76dbe4644d47737aba8aea 100755 (executable)
@@ -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"],
index 80f22a400fd43b50247f9c3765152151e05083dc..10329f1d31446b4b6f238fd1bc6c2fc887c70bdd 100644 (file)
@@ -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 (file)
index 0000000..ca90530
--- /dev/null
@@ -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 (file)
index 0000000..81d6a3a
--- /dev/null
@@ -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