prefix regarding pushfq vs 64-bit mode.
* pushf.asm, pushf-err.asm: New tests for pushf and popf in all modes.
Reported by: Vivek Mohan <vivek.mt@gmail.com>
svn path=/trunk/yasm/; revision=1542
EXTRA_DIST += modules/arch/x86/tests/push64.asm
EXTRA_DIST += modules/arch/x86/tests/push64.errwarn
EXTRA_DIST += modules/arch/x86/tests/push64.hex
+EXTRA_DIST += modules/arch/x86/tests/pushf.asm
+EXTRA_DIST += modules/arch/x86/tests/pushf.errwarn
+EXTRA_DIST += modules/arch/x86/tests/pushf.hex
+EXTRA_DIST += modules/arch/x86/tests/pushf-err.asm
+EXTRA_DIST += modules/arch/x86/tests/pushf-err.errwarn
EXTRA_DIST += modules/arch/x86/tests/pushnosize.asm
EXTRA_DIST += modules/arch/x86/tests/pushnosize.errwarn
EXTRA_DIST += modules/arch/x86/tests/pushnosize.hex
--- /dev/null
+[bits 16]
+pushf
+pushfw
+pushfd
+pushfq
+popf
+popfw
+popfd
+popfq
+
+[bits 32]
+pushf
+pushfw
+pushfd
+pushfq
+popf
+popfw
+popfd
+popfq
+
+[bits 64]
+pushf
+pushfw
+pushfd
+pushfq
+popf
+popfw
+popfd
+popfq
--- /dev/null
+-:5: warning: `pushfq' is an instruction in 64-bit mode
+-:9: warning: `popfq' is an instruction in 64-bit mode
+-:15: redefinition of `pushfq'
+-:10: `pushfq' previously defined here
+-:15: warning: `pushfq' is an instruction in 64-bit mode
+-:19: redefinition of `popfq'
+-:18: `popfq' previously defined here
+-:19: warning: `popfq' is an instruction in 64-bit mode
+-:24: `pushfd' invalid in 64-bit mode
+-:28: `popfd' invalid in 64-bit mode
--- /dev/null
+[bits 16]
+pushf
+pushfw
+pushfd
+;pushfq
+popf
+popfw
+popfd
+;popfq
+
+[bits 32]
+pushf
+pushfw
+pushfd
+;pushfq
+popf
+popfw
+popfd
+;popfq
+
+[bits 64]
+pushf
+pushfw
+;pushfd
+pushfq
+popf
+popfw
+;popfd
+popfq
--- /dev/null
+9c
+9c
+66
+9c
+9d
+9d
+66
+9d
+9c
+66
+9c
+9c
+9d
+66
+9d
+9d
+9c
+66
+9c
+9c
+9d
+66
+9d
+9d
INSN - cmc NONE onebyte 0x00F5 CPU_Any
INSN - lahf NONE onebyte 0x009F CPU_Any
INSN - sahf NONE onebyte 0x009E CPU_Any
-INSN - pushf NONE onebyte 0x009C CPU_Any
-INSN nasm pushfd NONE onebyte 0x209C CPU_386
-INSN gas pushfl NONE onebyte 0x209C CPU_386
-INSN - pushfw NONE onebyte 0x109C CPU_Any
-INSN - pushfq NONE onebyte 0x409C CPU_Hammer|CPU_64
+INSN - pushf NONE onebyte 0x40009C CPU_Any
+INSN nasm pushfd NONE onebyte 0x00209C CPU_386|CPU_Not64
+INSN gas pushfl NONE onebyte 0x00209C CPU_386|CPU_Not64
+INSN - pushfw NONE onebyte 0x40109C CPU_Any
+INSN - pushfq NONE onebyte 0x40409C CPU_Hammer|CPU_64
INSN - popf NONE onebyte 0x40009D CPU_Any
INSN nasm popfd NONE onebyte 0x00209D CPU_386|CPU_Not64
INSN gas popfl NONE onebyte 0x00209D CPU_386|CPU_Not64