]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/arm64: fix assemble VLD1/VST1 bug
authorfanzha02 <fannie.zhang@arm.com>
Tue, 16 Jan 2018 03:00:04 +0000 (03:00 +0000)
committerCherry Zhang <cherryyz@google.com>
Tue, 23 Jan 2018 15:59:15 +0000 (15:59 +0000)
commitcafb36bf11c0ec30a5650a6f1200b0f046fc67a7
tree057ef0cb2f50d75bcd3e05f3eaca1095b66ea624
parent4a2f28f51ecabfb4a839d7f483a32ae9b9206c83
cmd/internal/obj/arm64: fix assemble VLD1/VST1 bug

The current code misassembles VLD1/VST1 instruction with non-zero
offset. The offset is dropped silently without any error message.
The cause of the misassembling is the current code treats argument
(Rn)(Rm) as ZOREG type.

The fix changes the matching rules and considers (Rn)(Rm) as ROFF
type. The fix will report error information when assembles VLD1/VST1
(R8)(R13), [V1.16B].
The fix enables the ARM64Errors test.

Fixes #23448

Change-Id: I3dd518b91e9960131ffb8efcb685cb8df84b70eb
Reviewed-on: https://go-review.googlesource.com/87956
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/asm/internal/asm/endtoend_test.go
src/cmd/asm/internal/asm/testdata/arm64error.s [new file with mode: 0644]
src/cmd/internal/obj/arm64/asm7.go