]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/arm64: add support of PCALIGN directive
authordiaxu01 <dianhong.xu@arm.com>
Fri, 6 Sep 2019 09:55:54 +0000 (09:55 +0000)
committerCherry Zhang <cherryyz@google.com>
Wed, 25 Mar 2020 14:28:26 +0000 (14:28 +0000)
commit2f8798ed071072dbb6801c5dbc5a4368cb5984e9
tree8cc6b2278d6dca0c4677e4dc3ac20e7b87f82073
parent91b8b130dda2c3a5933baee439e3fed1098e8318
cmd/internal/obj/arm64: add support of PCALIGN directive

Recently, we get requirements of instructions and functions alignment
from the gVisor project. To fit the alignment requirement of interrupt
table, they require an instruction's address to be aligned 128 bytes
and a function's entry address to be aligned 2K bytes. Thus we add
support for PCALIGN directive first. Below is a discussion about this
topic. https://groups.google.com/forum/m/#!topic/golang-dev/RPj90l5x86I

Functions in Go are aligned to 16 bytes on arm64, thus now we only
support 8 and 16 bytes alignment.

This patch adds support for PCALIGN directive. This directive can be
used within Go asm to align instruction by padding NOOP directives.

This patch also adds a test to verify the correnctness of the PCALIGN
directive. The test is contributed by Fannie Zhang <Fannie.Zhang@arm.com>.

Change-Id: I709e6b94847fe9e1824f42f4155355f90c63d523
Reviewed-on: https://go-review.googlesource.com/c/go/+/207117
Reviewed-by: eric fang <eric.fang@arm.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/internal/obj/arm64/asm7.go
src/cmd/internal/obj/arm64/asm_test.go