x/arch/arm64/arm64asm: add missing pre/post-increment markers

A bunch of instructions are missing .P or .W in their disassembly.

Fix by just testing for .P/.W for all memory operands we can
find, regardless of opcode.

Verified by taking the diff of this CL, grabbing all the hex instructions,
making '.word' directives for them, assembling them with the native
toolchain into a binary, and running them through:

objdump -d a.out | egrep -v '\[(x[0-9]+|sp)\], [#x]' | egrep -v '!'

The body of the assembly function with all those .word directives becomes empty.

Fixes golang/go#78814

Change-Id: I925f61f486eb30127accfba1690798cc6e40c127
Reviewed-on: https://go-review.googlesource.com/c/arch/+/768120
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2 files changed
tree: 3e8c99cc5bc8889b91b3364e004f30396057eed0
  1. arm/
  2. arm64/
  3. loong64/
  4. ppc64/
  5. riscv64/
  6. s390x/
  7. x86/
  8. codereview.cfg
  9. CONTRIBUTING.md
  10. go.mod
  11. go.sum
  12. LICENSE
  13. PATENTS
  14. README.md
README.md

arch

Go Reference

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

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.

The git repository is https://go.googlesource.com/arch.

The main issue tracker for the arch repository is located at https://go.dev/issues. Prefix your issue with “x/arch:” in the subject line, so it is easy to find.