diff options
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/internal/obj/ppc64/a.out.go | 3 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ppc64/anames.go | 3 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ppc64/asm9.go | 10 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ppc64/obj9.go | 3 |
4 files changed, 19 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/ppc64/a.out.go b/src/cmd/internal/obj/ppc64/a.out.go index 8cc984260e..8e58c59238 100644 --- a/src/cmd/internal/obj/ppc64/a.out.go +++ b/src/cmd/internal/obj/ppc64/a.out.go @@ -342,8 +342,10 @@ const ( AFSUBS AFSUBSCC AMOVMW + ALBAR ALSW ALWAR + ALWSYNC AMOVWBR AMOVB AMOVBU @@ -401,6 +403,7 @@ const ( ASRAW ASRAWCC ASRWCC + ASTBCCC ASTSW ASTWCCC ASUB diff --git a/src/cmd/internal/obj/ppc64/anames.go b/src/cmd/internal/obj/ppc64/anames.go index 868700f012..eb42c9a953 100644 --- a/src/cmd/internal/obj/ppc64/anames.go +++ b/src/cmd/internal/obj/ppc64/anames.go @@ -118,8 +118,10 @@ var Anames = []string{ "FSUBS", "FSUBSCC", "MOVMW", + "LBAR", "LSW", "LWAR", + "LWSYNC", "MOVWBR", "MOVB", "MOVBU", @@ -177,6 +179,7 @@ var Anames = []string{ "SRAW", "SRAWCC", "SRWCC", + "STBCCC", "STSW", "STWCCC", "SUB", 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: diff --git a/src/cmd/internal/obj/ppc64/obj9.go b/src/cmd/internal/obj/ppc64/obj9.go index 43e4825af0..5f88307a2f 100644 --- a/src/cmd/internal/obj/ppc64/obj9.go +++ b/src/cmd/internal/obj/ppc64/obj9.go @@ -301,6 +301,8 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { } case ALWAR, + ALBAR, + ASTBCCC, ASTWCCC, AECIWX, AECOWX, @@ -323,6 +325,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { ASYNC, ATLBSYNC, APTESYNC, + ALWSYNC, ATW, AWORD, ARFI, |
