Add pushf{d|q}, popf{d|q} to push and pop EFLAGS register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42335 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
index bdce50a7..7bd997f 100644
--- a/lib/Target/X86/X86InstrInfo.td
+++ b/lib/Target/X86/X86InstrInfo.td
@@ -424,13 +424,16 @@
                  (outs), (ins), "leave", []>;
 
 let Defs = [ESP], Uses = [ESP] in {
-def POP32r   : I<0x58, AddRegFrm,
-                 (outs GR32:$reg), (ins), "pop{l}\t$reg", []>;
+def POP32r   : I<0x58, AddRegFrm, (outs GR32:$reg), (ins), "pop{l}\t$reg", []>;
 
-def PUSH32r  : I<0x50, AddRegFrm,
-                 (outs), (ins GR32:$reg), "push{l}\t$reg", []>;
+def PUSH32r  : I<0x50, AddRegFrm, (outs), (ins GR32:$reg), "push{l}\t$reg",[]>;
 }
 
+let Defs = [ESP, EFLAGS], Uses = [ESP] in
+def POPD     : I<0x9D, RawFrm, (outs), (ins), "popfd", []>;
+let Defs = [ESP], Uses = [ESP, EFLAGS] in
+def PUSHFD   : I<0x9C, RawFrm, (outs), (ins), "pushfd", []>;
+
 def MovePCtoStack : I<0, Pseudo, (outs), (ins piclabel:$label),
                       "call\t$label", []>;