diff options
Diffstat (limited to 'src/cmd/internal/obj/ppc64/asm9.go')
| -rw-r--r-- | src/cmd/internal/obj/ppc64/asm9.go | 10 |
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: |
