summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2009-04-04 23:03:41 +0000
committerPeter Johnson <peter@tortall.net>2009-04-04 23:03:41 +0000
commit378d6dd1e16b5a91bb1076fb20f6b1e4b91e3962 (patch)
tree62afbf2f67f904b7d649e09a1413880bb8c73751
parentd16fb629241c0cf07f7928f0b9a0f74b1764d035 (diff)
parent8bc9e295a55ed41577e3a7dd516d4f9510a87469 (diff)
downloadyasm-0.8.tar.gz
Merge [2192] from trunk.0.8
svn path=/branches/yasm-0.8.x/; revision=2193
-rwxr-xr-xmodules/arch/x86/gen_x86_insn.py16
-rw-r--r--modules/arch/x86/tests/gas32/Makefile.inc2
-rw-r--r--modules/arch/x86/tests/gas32/gas-fpmem.asm11
-rw-r--r--modules/arch/x86/tests/gas32/gas-fpmem.hex376
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