Index: llvm/trunk/lib/Target/X86/X86InstrInfo.td =================================================================== --- llvm/trunk/lib/Target/X86/X86InstrInfo.td +++ llvm/trunk/lib/Target/X86/X86InstrInfo.td @@ -2769,6 +2769,7 @@ def : MnemonicAlias<"popf", "popfw", "att">, Requires<[In16BitMode]>; def : MnemonicAlias<"popf", "popfl", "att">, Requires<[In32BitMode]>; def : MnemonicAlias<"popf", "popfq", "att">, Requires<[In64BitMode]>; +def : MnemonicAlias<"popf", "popfq", "intel">, Requires<[In64BitMode]>; def : MnemonicAlias<"popfd", "popfl", "att">; // FIXME: This is wrong for "push reg". "push %bx" should turn into pushw in @@ -2780,6 +2781,7 @@ def : MnemonicAlias<"pushf", "pushfw", "att">, Requires<[In16BitMode]>; def : MnemonicAlias<"pushf", "pushfl", "att">, Requires<[In32BitMode]>; def : MnemonicAlias<"pushf", "pushfq", "att">, Requires<[In64BitMode]>; +def : MnemonicAlias<"pushf", "pushfq", "intel">, Requires<[In64BitMode]>; def : MnemonicAlias<"pushfd", "pushfl", "att">; def : MnemonicAlias<"popad", "popal", "intel">, Requires<[Not64BitMode]>; Index: llvm/trunk/test/MC/X86/intel-syntax-encoding.s =================================================================== --- llvm/trunk/test/MC/X86/intel-syntax-encoding.s +++ llvm/trunk/test/MC/X86/intel-syntax-encoding.s @@ -61,6 +61,11 @@ // CHECK: encoding: [0xf0] // CHECK: encoding: [0x48,0x01,0x00] +// CHECK: encoding: [0x9c] +// CHECK: encoding: [0x9d] +pushf +popf + LBB0_3: // CHECK: encoding: [0xeb,A] jmp LBB0_3