aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/internal/obj/ppc64/a.out.go3
-rw-r--r--src/cmd/internal/obj/ppc64/anames.go3
-rw-r--r--src/cmd/internal/obj/ppc64/asm9.go10
-rw-r--r--src/cmd/internal/obj/ppc64/obj9.go3
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,