]> Cypherpunks repositories - gostls13.git/commit
cmd/asm: add error check for move constant instructions on arm64
authorfanzha02 <fannie.zhang@arm.com>
Tue, 28 Sep 2021 05:46:14 +0000 (13:46 +0800)
committerfannie zhang <Fannie.Zhang@arm.com>
Thu, 30 Sep 2021 01:32:54 +0000 (01:32 +0000)
commit665626928807c484d31a4bcb3b4b553a7a9d80eb
treec5bf06e506c15b8da27e9888938bf222299667ac
parent2d6d5584179cf89e44abc2829fcdc68c29dfc5a4
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>
src/cmd/asm/internal/asm/testdata/arm64error.s
src/cmd/internal/obj/arm64/asm7.go