aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj/ppc64/asm9.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/internal/obj/ppc64/asm9.go')
-rw-r--r--src/cmd/internal/obj/ppc64/asm9.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/ppc64/asm9.go b/src/cmd/internal/obj/ppc64/asm9.go
index e847ec341f..5366809d2f 100644
--- a/src/cmd/internal/obj/ppc64/asm9.go
+++ b/src/cmd/internal/obj/ppc64/asm9.go
@@ -933,6 +933,7 @@ func buildop(ctxt *obj.Link) {
case AECOWX: /* indexed store: op s,(b+a); op s,(b) */
opset(ASTWCCC, r0)
+ opset(ASTBCCC, r0)
opset(ASTDCCC, r0)
@@ -1202,6 +1203,7 @@ func buildop(ctxt *obj.Link) {
case ASYNC:
opset(AISYNC, r0)
+ opset(ALWSYNC, r0)
opset(APTESYNC, r0)
opset(ATLBSYNC, r0)
@@ -1228,6 +1230,7 @@ func buildop(ctxt *obj.Link) {
opset(AFMOVSU, r0)
case AECIWX:
+ opset(ALBAR, r0)
opset(ALWAR, r0)
opset(ALDAR, r0)
@@ -3001,6 +3004,9 @@ func oprrr(ctxt *obj.Link, a obj.As) uint32 {
case ASYNC:
return OPVCC(31, 598, 0, 0)
+ case ALWSYNC:
+ return OPVCC(31, 598, 0, 0) | 1<<21
+
case APTESYNC:
return OPVCC(31, 598, 0, 0) | 2<<21
@@ -3246,6 +3252,8 @@ func oploadx(ctxt *obj.Link, a obj.As) uint32 {
return OPVCC(31, 311, 0, 0) /* lhzux */
case AECIWX:
return OPVCC(31, 310, 0, 0) /* eciwx */
+ case ALBAR:
+ return OPVCC(31, 52, 0, 0) /* lbarx */
case ALWAR:
return OPVCC(31, 20, 0, 0) /* lwarx */
case ALDAR:
@@ -3342,6 +3350,8 @@ func opstorex(ctxt *obj.Link, a obj.As) uint32 {
return OPVCC(31, 661, 0, 0) /* stswx */
case AMOVWBR:
return OPVCC(31, 662, 0, 0) /* stwbrx */
+ case ASTBCCC:
+ return OPVCC(31, 694, 0, 1) /* stbcx. */
case ASTWCCC:
return OPVCC(31, 150, 0, 1) /* stwcx. */
case ASTDCCC: