diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-22 13:25:57 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-22 13:25:57 +0200 |
commit | c212ab7a8adea516db72f17d818393629dbde1b3 (patch) | |
tree | a94744c9c2c64efda9e8a042b9a1863be077739c /powerpc | |
parent | a972e8ecbc011a48201279f446218676c15126ef (diff) | |
download | compcert-c212ab7a8adea516db72f17d818393629dbde1b3.tar.gz compcert-c212ab7a8adea516db72f17d818393629dbde1b3.zip |
Use R10 in atomic compare and exchange for the rlwinm.
Diffstat (limited to 'powerpc')
-rw-r--r-- | powerpc/Asmexpand.ml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/powerpc/Asmexpand.ml b/powerpc/Asmexpand.ml index 0dfebc13..fc0fc44e 100644 --- a/powerpc/Asmexpand.ml +++ b/powerpc/Asmexpand.ml @@ -532,8 +532,8 @@ let expand_builtin_inline name args res = emit (Plabel lblneq); (* Here, CR2 is true if the exchange succeeded, false if it failed *) emit (Pisync); - emit (Pmfcr dst); - emit (Prlwinm (res,dst,(Z.of_uint 3),_1)); + emit (Pmfcr GPR10); + emit (Prlwinm (res,GPR10,(Z.of_uint 3),_1)); (* Update exp with the current value of dst if the exchange failed *) emit (Pbt (CRbit_2,lblsucc)); emit (Pstw (GPR0,Cint _0,exp)); |