]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/arm64: add support for most system registers
authorfanzha02 <fannie.zhang@arm.com>
Wed, 10 Jul 2019 06:33:48 +0000 (06:33 +0000)
committerBen Shi <powerman1st@163.com>
Wed, 28 Aug 2019 02:28:49 +0000 (02:28 +0000)
commit9c67516ed69e6c5152b9f329f240f69f27f8004b
tree7783785f9d933900eb787863d0021928a71a526c
parentb91b3d9c31c14f55d7ddcbcbf8ffcb2539018f38
cmd/internal/obj/arm64: add support for most system registers

This patch supports the EL0 and EL1 system registers used in MRS/MSR
instructions. This patch refactors the assembler code, allowing the
assembler to read system register information from the automatically
generated sysRegEnc.go file and move existing declared system registers
to the sysRegEnc.go file.

This patch adds 431 system registers, it is worth noting that the number
of special registers is initialized to less than 1024 in the list7.go file.

This CL also adds some test cases to test the newly added system registers.

The test cases are contributed by Dianhong Xu <Dianhong.Xu@arm.com>

Change-Id: Ic09a937eaaeefe82bd08b5dd726808f8ff6cebf6
Reviewed-on: https://go-review.googlesource.com/c/go/+/189577
Reviewed-by: Ben Shi <powerman1st@163.com>
Run-TryBot: Ben Shi <powerman1st@163.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/asm/internal/arch/arch.go
src/cmd/asm/internal/asm/testdata/arm64.s
src/cmd/internal/obj/arm64/a.out.go
src/cmd/internal/obj/arm64/asm7.go
src/cmd/internal/obj/arm64/list7.go
src/cmd/internal/obj/arm64/sysRegEnc.go [new file with mode: 0644]