From: eric fang Date: Thu, 31 Mar 2022 07:34:01 +0000 (+0000) Subject: cmd/internal/obj/arm64: fix encoding error for SYS instruction X-Git-Tag: go1.19beta1~813 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ecee4a32918c5e575303530abb9a504a235a1c71;p=gostls13.git cmd/internal/obj/arm64: fix encoding error for SYS instruction Currently using the SYS instruction will report the "illegal combination" error. This is because the assembler parser treats the register operand as p.To, while optab defines it as p.Reg. This CL fixes this bug. Change-Id: I57799a7c19934b0c62278948f4efaa41001593a4 Reviewed-on: https://go-review.googlesource.com/c/go/+/396796 Run-TryBot: Eric Fang TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui Trust: Eric Fang --- diff --git a/src/cmd/asm/internal/asm/testdata/arm64.s b/src/cmd/asm/internal/asm/testdata/arm64.s index 8a7dd299aa..03f0c46cac 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64.s +++ b/src/cmd/asm/internal/asm/testdata/arm64.s @@ -1627,4 +1627,6 @@ again: MSR R13, ZCR_EL1 // 0d1218d5 MRS ZCR_EL1, R23 // 171238d5 MSR R17, ZCR_EL1 // 111218d5 + SYS $32768, R1 // 018008d5 + SYS $32768 // 1f8008d5 END diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go index 244430eb8f..bf33da50c1 100644 --- a/src/cmd/internal/obj/arm64/asm7.go +++ b/src/cmd/internal/obj/arm64/asm7.go @@ -843,7 +843,7 @@ var optab = []Optab{ {ADMB, C_VCON, C_NONE, C_NONE, C_NONE, 51, 4, 0, 0, 0}, {AHINT, C_VCON, C_NONE, C_NONE, C_NONE, 52, 4, 0, 0, 0}, {ASYS, C_VCON, C_NONE, C_NONE, C_NONE, 50, 4, 0, 0, 0}, - {ASYS, C_VCON, C_REG, C_NONE, C_NONE, 50, 4, 0, 0, 0}, + {ASYS, C_VCON, C_NONE, C_NONE, C_REG, 50, 4, 0, 0, 0}, {ASYSL, C_VCON, C_NONE, C_NONE, C_REG, 50, 4, 0, 0, 0}, /* encryption instructions */