aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/asm/internal/asm/testdata/arm64error.s
diff options
context:
space:
mode:
authorfanzha02 <fannie.zhang@arm.com>2021-09-28 13:46:14 +0800
committerfannie zhang <Fannie.Zhang@arm.com>2021-09-30 01:32:54 +0000
commit665626928807c484d31a4bcb3b4b553a7a9d80eb (patch)
treec5bf06e506c15b8da27e9888938bf222299667ac /src/cmd/asm/internal/asm/testdata/arm64error.s
parent2d6d5584179cf89e44abc2829fcdc68c29dfc5a4 (diff)
downloadgo-665626928807c484d31a4bcb3b4b553a7a9d80eb.tar.gz
go-665626928807c484d31a4bcb3b4b553a7a9d80eb.zip
cmd/asm: add error check for move constant instructions on arm64
The current Go assembler encodes "MOVK $(0<<16|32|48), Rd" as the same binary with "MOVK $0, Rd", but for arm64 move constant instructions MOVK, MOVN and MOVZ, "op $0, Rd" and "op $(0<<16|32|48), Rd" have different semantics. In order not to change the way the assembler frontend parses constants, this patch adds a check for the zero shifts. Change-Id: Ia844c419ce49f63605b549e3a2e98d9075dd1cf1 Reviewed-on: https://go-review.googlesource.com/c/go/+/275812 Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Trust: fannie zhang <Fannie.Zhang@arm.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/cmd/asm/internal/asm/testdata/arm64error.s')
-rw-r--r--src/cmd/asm/internal/asm/testdata/arm64error.s2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cmd/asm/internal/asm/testdata/arm64error.s b/src/cmd/asm/internal/asm/testdata/arm64error.s
index 7b006432c0..3d3de1d9b1 100644
--- a/src/cmd/asm/internal/asm/testdata/arm64error.s
+++ b/src/cmd/asm/internal/asm/testdata/arm64error.s
@@ -430,4 +430,6 @@ TEXT errors(SB),$0
STP (R3, R4), 0x1234567(R27) // ERROR "REGTMP used in large offset store"
LDP 0x1234567(R27), (R3, R4) // ERROR "REGTMP used in large offset load"
STP (R26, R27), 700(R2) // ERROR "cannot use REGTMP as source"
+ MOVK $0, R10 // ERROR "zero shifts cannot be handled correctly"
+ MOVK $(0<<32), R10 // ERROR "zero shifts cannot be handled correctly"
RET