]> granicus.if.org Git - yasm/commitdiff
GAS parser: support calll and callq.
authorPeter Johnson <peter@tortall.net>
Mon, 19 Feb 2007 02:36:10 +0000 (02:36 -0000)
committerPeter Johnson <peter@tortall.net>
Mon, 19 Feb 2007 02:36:10 +0000 (02:36 -0000)
svn path=/trunk/yasm/; revision=1776

modules/arch/x86/tests/gas32/Makefile.inc
modules/arch/x86/tests/gas32/gas32-jmpcall.asm [new file with mode: 0644]
modules/arch/x86/tests/gas32/gas32-jmpcall.hex [new file with mode: 0644]
modules/arch/x86/tests/gas64/Makefile.inc
modules/arch/x86/tests/gas64/gas64-jmpcall.asm [new file with mode: 0644]
modules/arch/x86/tests/gas64/gas64-jmpcall.hex [new file with mode: 0644]
modules/arch/x86/x86parse.gap

index b6a338447d43a8bd0565e6b71676630ccb13ea13..fbb8ccf45147aa3311d9777cfb866fa513074b33 100644 (file)
@@ -9,4 +9,6 @@ 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-movdq32.asm
 EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movdq32.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas32-jmpcall.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas32-jmpcall.hex
 
diff --git a/modules/arch/x86/tests/gas32/gas32-jmpcall.asm b/modules/arch/x86/tests/gas32/gas32-jmpcall.asm
new file mode 100644 (file)
index 0000000..f170741
--- /dev/null
@@ -0,0 +1,6 @@
+call foo
+calll foo
+
+jmp foo
+#jmpl foo
+
diff --git a/modules/arch/x86/tests/gas32/gas32-jmpcall.hex b/modules/arch/x86/tests/gas32/gas32-jmpcall.hex
new file mode 100644 (file)
index 0000000..2a656ca
--- /dev/null
@@ -0,0 +1,464 @@
+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 
+e0 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+34 
+00 
+00 
+00 
+00 
+00 
+28 
+00 
+06 
+00 
+01 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+e8 
+fc 
+ff 
+ff 
+ff 
+e8 
+fc 
+ff 
+ff 
+ff 
+e9 
+fc 
+ff 
+ff 
+ff 
+00 
+01 
+00 
+00 
+00 
+02 
+03 
+00 
+00 
+06 
+00 
+00 
+00 
+02 
+03 
+00 
+00 
+0b 
+00 
+00 
+00 
+02 
+03 
+00 
+00 
+00 
+2e 
+74 
+65 
+78 
+74 
+00 
+2e 
+72 
+65 
+6c 
+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 
+2d 
+00 
+66 
+6f 
+6f 
+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 
+03 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+10 
+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 
+21 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+68 
+00 
+00 
+00 
+2b 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+11 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+94 
+00 
+00 
+00 
+07 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+19 
+00 
+00 
+00 
+02 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+9c 
+00 
+00 
+00 
+40 
+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 
+0f 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+10 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+07 
+00 
+00 
+00 
+09 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+50 
+00 
+00 
+00 
+18 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+08 
+00 
+00 
+00 
index e87a155d978d61363e515fc1d1417fbff45793a9..ab6589aafefbd8f624831a32e96f9753e26ae8d1 100644 (file)
@@ -28,6 +28,8 @@ EXTRA_DIST += modules/arch/x86/tests/gas64/gas-retenter.asm
 EXTRA_DIST += modules/arch/x86/tests/gas64/gas-retenter.hex
 EXTRA_DIST += modules/arch/x86/tests/gas64/gas-shift.asm
 EXTRA_DIST += modules/arch/x86/tests/gas64/gas-shift.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas64-jmpcall.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas64-jmpcall.hex
 EXTRA_DIST += modules/arch/x86/tests/gas64/riprel.asm
 EXTRA_DIST += modules/arch/x86/tests/gas64/riprel.hex
 
diff --git a/modules/arch/x86/tests/gas64/gas64-jmpcall.asm b/modules/arch/x86/tests/gas64/gas64-jmpcall.asm
new file mode 100644 (file)
index 0000000..2c1f92d
--- /dev/null
@@ -0,0 +1,6 @@
+call foo
+callq foo
+
+jmp foo
+#jmpq foo
+
diff --git a/modules/arch/x86/tests/gas64/gas64-jmpcall.hex b/modules/arch/x86/tests/gas64/gas64-jmpcall.hex
new file mode 100644 (file)
index 0000000..51c0ab3
--- /dev/null
@@ -0,0 +1,688 @@
+7f 
+45 
+4c 
+46 
+02 
+01 
+01 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+01 
+00 
+3e 
+00 
+01 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+30 
+01 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+40 
+00 
+00 
+00 
+00 
+00 
+40 
+00 
+06 
+00 
+01 
+00 
+e8 
+00 
+00 
+00 
+00 
+e8 
+00 
+00 
+00 
+00 
+e9 
+00 
+00 
+00 
+00 
+00 
+01 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+02 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+fc 
+ff 
+ff 
+ff 
+ff 
+ff 
+ff 
+ff 
+06 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+02 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+fc 
+ff 
+ff 
+ff 
+ff 
+ff 
+ff 
+ff 
+0b 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+02 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+fc 
+ff 
+ff 
+ff 
+ff 
+ff 
+ff 
+ff 
+00 
+2e 
+74 
+65 
+78 
+74 
+00 
+2e 
+72 
+65 
+6c 
+61 
+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 
+2d 
+00 
+66 
+6f 
+6f 
+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 
+01 
+00 
+00 
+00 
+04 
+00 
+f1 
+ff 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+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 
+03 
+00 
+00 
+00 
+10 
+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 
+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 
+22 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+98 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+2c 
+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 
+12 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+c4 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+07 
+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 
+1a 
+00 
+00 
+00 
+02 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+cc 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+60 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+02 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+08 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+18 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+01 
+00 
+00 
+00 
+01 
+00 
+00 
+00 
+06 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+40 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+0f 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+10 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+07 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+50 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+48 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+08 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+18 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
index e457274b79d45e6fdd5e9db16b0092eec477aabb..94415085728eac1b0e28a9ed72b676f323222587 100644 (file)
@@ -145,6 +145,8 @@ INSN        -       shld    "wlq"   shlrd   0xA4            CPU_386
 INSN   -       shrd    "wlq"   shlrd   0xAC            CPU_386
 # Control transfer instructions unconditional)
 INSN   -       call    NONE    call    0               CPU_Any
+INSN   gas     calll   NONE    call    0               CPU_Not64
+INSN   gas     callq   NONE    call    0               CPU_Hammer|CPU_64
 INSN   -       jmp     NONE    jmp     0               CPU_Any
 INSN   -       ret     NONE    retnf   0x00C2          CPU_Any
 INSN   gas     retw    NONE    retnf   0x10C2          CPU_Any