From 01f15b62b3d91c0f7fed54eedeee4123eb04b533 Mon Sep 17 00:00:00 2001 From: diaxu01 Date: Fri, 25 Oct 2019 06:19:23 +0000 Subject: [PATCH] cmd/internal/obj/arm64: add NOOP description in Go assembly syntax This Patch describes NOOP in Go assembly syntax and gives Go assembly example and corresponding GNU assembly example. Change-Id: I9db659cc5e3dc6b1f1450f2064255af8872d4b1c Reviewed-on: https://go-review.googlesource.com/c/go/+/207400 Run-TryBot: eric fang TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang --- src/cmd/internal/obj/arm64/doc.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cmd/internal/obj/arm64/doc.go b/src/cmd/internal/obj/arm64/doc.go index 73d8bb76dd..031aa789ee 100644 --- a/src/cmd/internal/obj/arm64/doc.go +++ b/src/cmd/internal/obj/arm64/doc.go @@ -53,12 +53,17 @@ Special Cases. (3) No need to add "W" suffix: LDARB, LDARH, LDAXRB, LDAXRH, LDTRH, LDXRB, LDXRH. +(4) In Go assembly syntax, NOP is a zero-width pseudo-instruction serves generic purpose, nothing +related to real ARM64 instruction. NOOP serves for the hardware nop instruction. NOOP is an alias of +HINT $0. + Examples: VMOV V13.B[1], R20 <=> mov x20, v13.b[1] VMOV V13.H[1], R20 <=> mov w20, v13.h[1] JMP (R3) <=> br x3 CALL (R17) <=> blr x17 LDAXRB (R19), R16 <=> ldaxrb w16, [x19] + NOOP <=> nop Register mapping rules