summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86InstrInfo.td
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-10-05 17:59:57 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-10-05 17:59:57 +0000
commit97eba74a52f78603a5590ffc0933d5981b9bd789 (patch)
tree50d2b269930623a8c6eec4d645092193ee704536 /llvm/lib/Target/X86/X86InstrInfo.td
parentf85527e131bb8d8950fea720b7ff378c1700fcb0 (diff)
downloadbcm5719-llvm-97eba74a52f78603a5590ffc0933d5981b9bd789.tar.gz
bcm5719-llvm-97eba74a52f78603a5590ffc0933d5981b9bd789.zip
ADC and SBB uses EFLAGS.
llvm-svn: 42640
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.td')
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td
index 1a0fab3b864..915507ad706 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.td
+++ b/llvm/lib/Target/X86/X86InstrInfo.td
@@ -1853,6 +1853,7 @@ let isTwoAddress = 0 in {
[(store (add (load addr:$dst), i32immSExt8:$src2), addr:$dst)]>;
}
+let Uses = [EFLAGS] in {
let isCommutable = 1 in { // X = ADC Y, Z --> X = ADC Z, Y
def ADC32rr : I<0x11, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
"adc{l}\t{$src2, $dst|$dst, $src2}",
@@ -1879,6 +1880,7 @@ let isTwoAddress = 0 in {
"adc{l}\t{$src2, $dst|$dst, $src2}",
[(store (adde (load addr:$dst), i32immSExt8:$src2), addr:$dst)]>;
}
+} // Uses = [EFLAGS]
def SUB8rr : I<0x28, MRMDestReg, (outs GR8 :$dst), (ins GR8 :$src1, GR8 :$src2),
"sub{b}\t{$src2, $dst|$dst, $src2}",
@@ -1945,6 +1947,7 @@ let isTwoAddress = 0 in {
[(store (sub (load addr:$dst), i32immSExt8:$src2), addr:$dst)]>;
}
+let Uses = [EFLAGS] in {
def SBB32rr : I<0x19, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
"sbb{l}\t{$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (sube GR32:$src1, GR32:$src2))]>;
@@ -1972,6 +1975,7 @@ def SBB32ri : Ii32<0x81, MRM3r, (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2
def SBB32ri8 : Ii8<0x83, MRM3r, (outs GR32:$dst), (ins GR32:$src1, i32i8imm:$src2),
"sbb{l}\t{$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (sube GR32:$src1, i32immSExt8:$src2))]>;
+} // Uses = [EFLAGS]
} // Defs = [EFLAGS]
let Defs = [EFLAGS] in {
OpenPOWER on IntegriCloud