aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/asm/internal/asm/testdata/arm64.s8
-rw-r--r--src/cmd/asm/internal/asm/testdata/arm64error.s6
-rw-r--r--src/cmd/internal/obj/arm64/a.out.go6
-rw-r--r--src/cmd/internal/obj/arm64/anames.go6
-rw-r--r--src/cmd/internal/obj/arm64/asm7.go25
5 files changed, 51 insertions, 0 deletions
diff --git a/src/cmd/asm/internal/asm/testdata/arm64.s b/src/cmd/asm/internal/asm/testdata/arm64.s
index 236f1a6697..109a3d8316 100644
--- a/src/cmd/asm/internal/asm/testdata/arm64.s
+++ b/src/cmd/asm/internal/asm/testdata/arm64.s
@@ -1894,4 +1894,12 @@ next:
BTI J // 9f2403d5
BTI JC // df2403d5
+// Pointer Authentication Codes (PAC)
+ PACIASP // 3f2303d5
+ AUTIASP // bf2303d5
+ PACIBSP // 7f2303d5
+ AUTIBSP // ff2303d5
+ AUTIA1716 // 9f2103d5
+ AUTIB1716 // df2103d5
+
END
diff --git a/src/cmd/asm/internal/asm/testdata/arm64error.s b/src/cmd/asm/internal/asm/testdata/arm64error.s
index 55890ce3e6..ce88e3ca54 100644
--- a/src/cmd/asm/internal/asm/testdata/arm64error.s
+++ b/src/cmd/asm/internal/asm/testdata/arm64error.s
@@ -422,4 +422,10 @@ TEXT errors(SB),$0
SHA1H V1.B16, V2.B16 // ERROR "invalid operands"
BTI // ERROR "missing operand"
BTI PLDL1KEEP // ERROR "illegal argument"
+ PACIASP C // ERROR "illegal combination"
+ AUTIASP R2 // ERROR "illegal combination"
+ PACIBSP R0 // ERROR "illegal combination"
+ AUTIBSP C // ERROR "illegal combination"
+ AUTIA1716 $45 // ERROR "illegal combination"
+ AUTIB1716 R0 // ERROR "illegal combination"
RET
diff --git a/src/cmd/internal/obj/arm64/a.out.go b/src/cmd/internal/obj/arm64/a.out.go
index 710dd64b30..814dba2c10 100644
--- a/src/cmd/internal/obj/arm64/a.out.go
+++ b/src/cmd/internal/obj/arm64/a.out.go
@@ -1020,6 +1020,12 @@ const (
AWORD
AYIELD
ABTI
+ APACIASP
+ AAUTIASP
+ APACIBSP
+ AAUTIBSP
+ AAUTIA1716
+ AAUTIB1716
ALAST
AB = obj.AJMP
ABL = obj.ACALL
diff --git a/src/cmd/internal/obj/arm64/anames.go b/src/cmd/internal/obj/arm64/anames.go
index 379f53bab3..497429d998 100644
--- a/src/cmd/internal/obj/arm64/anames.go
+++ b/src/cmd/internal/obj/arm64/anames.go
@@ -537,5 +537,11 @@ var Anames = []string{
"WORD",
"YIELD",
"BTI",
+ "PACIASP",
+ "AUTIASP",
+ "PACIBSP",
+ "AUTIBSP",
+ "AUTIA1716",
+ "AUTIB1716",
"LAST",
}
diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go
index 172c2256d7..cfb70cf08a 100644
--- a/src/cmd/internal/obj/arm64/asm7.go
+++ b/src/cmd/internal/obj/arm64/asm7.go
@@ -3017,6 +3017,13 @@ func buildop(ctxt *obj.Link) {
oprangeset(ANOOP, t)
oprangeset(ADRPS, t)
+ oprangeset(APACIASP, t)
+ oprangeset(AAUTIASP, t)
+ oprangeset(APACIBSP, t)
+ oprangeset(AAUTIBSP, t)
+ oprangeset(AAUTIA1716, t)
+ oprangeset(AAUTIB1716, t)
+
case ACBZ:
oprangeset(ACBZW, t)
oprangeset(ACBNZ, t)
@@ -7016,6 +7023,24 @@ func (c *ctxt7) op0(p *obj.Prog, a obj.As) uint32 {
case ASEVL:
return SYSHINT(5)
+
+ case APACIASP:
+ return SYSHINT(25)
+
+ case AAUTIASP:
+ return SYSHINT(29)
+
+ case APACIBSP:
+ return SYSHINT(27)
+
+ case AAUTIBSP:
+ return SYSHINT(31)
+
+ case AAUTIA1716:
+ return SYSHINT(12)
+
+ case AAUTIB1716:
+ return SYSHINT(14)
}
c.ctxt.Diag("%v: bad op0 %v", p, a)