summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-09-06 17:40:35 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-09-06 17:40:35 +0000
commit50ef7611aa711c2c5a0cf6150442199b320b86c5 (patch)
tree5e7b724ecf77af289bd45726be482300d599fd98 /llvm/lib
parent5ea5d7965be9bcec2bcf4b60bc7b0d6853e2f93c (diff)
downloadbcm5719-llvm-50ef7611aa711c2c5a0cf6150442199b320b86c5.tar.gz
bcm5719-llvm-50ef7611aa711c2c5a0cf6150442199b320b86c5.zip
Atomic pseudos don't use (as in read) CPSR. They clobber it.
llvm-svn: 139148
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrInfo.td4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td
index 00a945e8cfb..7ec6ce28b5a 100644
--- a/llvm/lib/Target/ARM/ARMInstrInfo.td
+++ b/llvm/lib/Target/ARM/ARMInstrInfo.td
@@ -1613,7 +1613,7 @@ PseudoInst<(outs), (ins i32imm:$amt, pred:$p), NoItinerary,
// Atomic pseudo-insts which will be lowered to ldrexd/strexd loops.
// (These psuedos use a hand-written selection code).
-let usesCustomInserter = 1, Uses = [CPSR] in {
+let usesCustomInserter = 1, Defs = [CPSR] in {
def ATOMOR6432 : PseudoInst<(outs GPR:$dst1, GPR:$dst2),
(ins GPR:$addr, GPR:$src1, GPR:$src2),
NoItinerary, []>;
@@ -4104,7 +4104,7 @@ def ISB : AInoP<(outs), (ins memb_opt:$opt), MiscFrm, NoItinerary,
}
let usesCustomInserter = 1 in {
- let Uses = [CPSR] in {
+ let Defs = [CPSR] in {
def ATOMIC_LOAD_ADD_I8 : PseudoInst<
(outs GPR:$dst), (ins GPR:$ptr, GPR:$incr), NoItinerary,
[(set GPR:$dst, (atomic_load_add_8 GPR:$ptr, GPR:$incr))]>;
OpenPOWER on IntegriCloud