[llvm] r176036 - [ms-inline asm] Add support for the pushad/popad mnemonics.

Chad Rosier mcrosier at apple.com
Mon Feb 25 11:06:27 PST 2013


Author: mcrosier
Date: Mon Feb 25 13:06:27 2013
New Revision: 176036

URL: http://llvm.org/viewvc/llvm-project?rev=176036&view=rev
Log:
[ms-inline asm] Add support for the pushad/popad mnemonics.
rdar://13254235

Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.td
    llvm/trunk/test/MC/X86/x86-32-ms-inline-asm.s

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.td?rev=176036&r1=176035&r2=176036&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.td Mon Feb 25 13:06:27 2013
@@ -870,16 +870,14 @@ let Defs = [RSP], Uses = [RSP, EFLAGS],
 def PUSHF64    : I<0x9C, RawFrm, (outs), (ins), "pushfq", [], IIC_PUSH_F>,
                  Requires<[In64BitMode]>;
 
-
-
 let Defs = [EDI, ESI, EBP, EBX, EDX, ECX, EAX, ESP], Uses = [ESP],
     mayLoad=1, neverHasSideEffects=1 in {
-def POPA32   : I<0x61, RawFrm, (outs), (ins), "popa{l}", [], IIC_POP_A>,
+def POPA32   : I<0x61, RawFrm, (outs), (ins), "popa{l|d}", [], IIC_POP_A>,
                Requires<[In32BitMode]>;
 }
 let Defs = [ESP], Uses = [EDI, ESI, EBP, EBX, EDX, ECX, EAX, ESP],
     mayStore=1, neverHasSideEffects=1 in {
-def PUSHA32  : I<0x60, RawFrm, (outs), (ins), "pusha{l}", [], IIC_PUSH_A>,
+def PUSHA32  : I<0x60, RawFrm, (outs), (ins), "pusha{l|d}", [], IIC_PUSH_A>,
                Requires<[In32BitMode]>;
 }
 

Modified: llvm/trunk/test/MC/X86/x86-32-ms-inline-asm.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86-32-ms-inline-asm.s?rev=176036&r1=176035&r2=176036&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86-32-ms-inline-asm.s (original)
+++ llvm/trunk/test/MC/X86/x86-32-ms-inline-asm.s Mon Feb 25 13:06:27 2013
@@ -57,4 +57,17 @@ _t21:
 // CHECK: movl 4(%esi,%eax,2), %eax
 // CHECK: # encoding: [0x8b,0x44,0x46,0x04]
 
+    pusha
+// CHECK: pushal
+// CHECK: # encoding: [0x60]
+    popa
+// CHECK: popal
+// CHECK: # encoding: [0x61]
+    pushad
+// CHECK: pushal
+// CHECK: # encoding: [0x60]
+    popad
+// CHECK: popal
+// CHECK: # encoding: [0x61]
+
 	ret





More information about the llvm-commits mailing list