Mark STREX* as earlyclobber for the success result register.
authorJim Grosbach <grosbach@apple.com>
Wed, 16 Dec 2009 19:44:06 +0000 (19:44 +0000)
committerJim Grosbach <grosbach@apple.com>
Wed, 16 Dec 2009 19:44:06 +0000 (19:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91555 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb2.td

index e14696a140da7e93cee0d9d008b0ccece85589fc..da8b3733c9a37b9461f78f0c8e5537fb8000d150 100644 (file)
@@ -1740,7 +1740,7 @@ def LDREXD : AIldrex<0b01, (outs GPR:$dest, GPR:$dest2), (ins GPR:$ptr),
                     []>;
 }
 
-let mayStore = 1 in {
+let mayStore = 1, Constraints = "@earlyclobber $success" in {
 def STREXB : AIstrex<0b10, (outs GPR:$success), (ins GPR:$src, GPR:$ptr),
                     NoItinerary,
                     "strexb", "\t$success, $src, [$ptr]",
index 27c5712fd883d45288917525382037c0b047b598..6f20ed4e9302e00270bce4947e24997a9a5cde9a 100644 (file)
@@ -1752,7 +1752,7 @@ def t2LDREXD : T2I_ldrex<0b11, (outs GPR:$dest, GPR:$dest2), (ins GPR:$ptr),
                          [], {?, ?, ?, ?}>;
 }
 
-let mayStore = 1 in {
+let mayStore = 1, Constraints = "@earlyclobber $success" in {
 def t2STREXB : T2I_strex<0b00, (outs GPR:$success), (ins GPR:$src, GPR:$ptr),
                          AddrModeNone, Size4Bytes, NoItinerary,
                          "strexb", "\t$success, $src, [$ptr]", "", []>;