[mirror] architecture code
Перейти к файлу
Ben Shi 7d04a2ea6b arm/armasm: Improve Plan 9 syntax decoding
The arm disassembler can not decode many instructions to
correct Plan 9 syntax.

This patch fixes 3 major issues.

1. Change memory addresses in PLD/PLI/SWP/STREX/LDREX to the correct
Plan 9 syntax (in accordance with MOVW/MOVB/MOVH). For example,
   [rx] -> (Rx)
   [rx, #imm] -> imm(Rx)
   [rx, ry, lsl #imm] -> (Rx)(Ry<<imm)

2. Apply the Plan 9 syntax naming rule to more instructions. Such as,
   VMRS -> MOVW
   VMSR -> MOVW
   XTB  -> MOVBS
   XTHU -> MOVHU
   XTH  -> MOVHS
   XTBU -> MOVBU

3. Improve FP instructions decoding.
   3.1 instruction name: VADD.F32 -> ADDF, VSUB.F64 -> SUBD, ...
   3.2 register name: S0 -> F0, D0 -> F0, S2 -> F1, D1 -> F1, ...

Many test cases are also changed.

Change-Id: I5f8ac0e82c6edec2f4bdc4db58f6bcbab40d299a
Reviewed-on: https://go-review.googlesource.com/85455
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-02-14 15:20:09 +00:00
arm arm/armasm: Improve Plan 9 syntax decoding 2018-02-14 15:20:09 +00:00
arm64 arm64/arm64asm: strip comments of objdump 2.29 2017-12-27 04:07:32 +00:00
ppc64 all: fix/silence vet errors 2017-11-23 03:17:08 +00:00
vendor arm/armspec, vendor/rsc.io/pdf: require Go 1.6+ for use of vendored packages 2016-07-15 20:53:32 +00:00
x86 all: fix/silence vet errors 2017-11-23 03:17:08 +00:00
AUTHORS arch: initial boilerplate 2015-08-27 12:23:37 -04:00
CONTRIBUTING.md arch: initial boilerplate 2015-08-27 12:23:37 -04:00
CONTRIBUTORS arch: initial boilerplate 2015-08-27 12:23:37 -04:00
LICENSE arch: initial boilerplate 2015-08-27 12:23:37 -04:00
PATENTS arch: initial boilerplate 2015-08-27 12:23:37 -04:00
README.md README: style syntax to markdown 2017-09-29 20:28:58 +00:00
codereview.cfg arch: initial boilerplate 2015-08-27 12:23:37 -04:00

README.md

arch

This repository holds machine architecture information used by the Go toolchain. The parts needed in the main Go repository are copied in.

This repository requires Go 1.5+ with the vendor experiment enabled.