]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj/arm64: allow transition from $0 to ZR for MSR
authoreric fang <eric.fang@arm.com>
Wed, 31 Aug 2022 01:57:57 +0000 (01:57 +0000)
committerDavid Chase <drchase@google.com>
Wed, 31 Aug 2022 16:37:20 +0000 (16:37 +0000)
Previously the first operand of MSR could be $0, which would be
converted to the ZR register. This is prohibited by CL 404316,
this CL restores this instruction format.

Change-Id: I5b5be59e76aa58423a0fb96942d1b2a9de62e311
Reviewed-on: https://go-review.googlesource.com/c/go/+/426198
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Eric Fang <eric.fang@arm.com>

src/cmd/asm/internal/asm/testdata/arm64.s
src/cmd/internal/obj/arm64/obj7.go

index d055d3961fc6cd9f985f52129f95158ce94654de..a1493a7ad3a0b03da7bd47d8de3ee9051f779e21 100644 (file)
@@ -1113,6 +1113,7 @@ next:
        MSR     $1, SPSel                          // bf4100d5
        MSR     $9, DAIFSet                        // df4903d5
        MSR     $6, DAIFClr                        // ff4603d5
+       MSR     $0, CPACR_EL1                      // 5f1018d5
        MRS     ELR_EL1, R8                        // 284038d5
        MSR     R16, ELR_EL1                       // 304018d5
        MSR     R2, ACTLR_EL1                      // 221018d5
index 318468371d287e695d2f514a6a9d3ac9cc20b7bd..6e4335562dd566ee822d2fce3724e444b7bc93bb 100644 (file)
@@ -71,6 +71,7 @@ var zrReplace = map[obj.As]bool{
        AADCSW: true,
        AFMOVD: true,
        AFMOVS: true,
+       AMSR:   true,
 }
 
 func (c *ctxt7) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {