The directive is not documented on https://pkg.go.dev/cmd/internal/obj/x86. 
`grep -l -R PCALIGN *` run in `cmd/interal/obj` shows for the freshest 
master:

arm64/doc.go
arm64/asm7.go
arm64/asm_arm64_test.go
link.go
ppc64/doc.go
ppc64/asm9.go
ppc64/asm_test.go
util.go

Seems it's not implemented. When tried to use it, I got the following error:

# main
asm: asmins: missing op 00000 (<unknown line number>)        PCALIGN       
 $16
asm: assembly failed

Sample asm code to check this:

---asmfun_amd64.s---
#include "textflag.h"

TEXT ·asmfun(SB), NOSPLIT, $0
    PCALIGN $16
    RET
---eof---

---main.go---
package main

// go:noescape
func asmfun()
func main() { asmfun() }
---eof---

w.

On Friday, February 25, 2022 at 2:21:41 AM UTC+1 Ian Lance Taylor wrote:

> On Thu, Feb 24, 2022 at 9:40 AM Wojciech Muła <wojte...@gmail.com> wrote: 
> > 
> > I'm writing an implementation in x86 assembler and I need to force a 
> certain alignment of blocks of code (as it affects performance). I found 
> that there's PCALIGN directive, but it's only available for the PPC 
> architecture. It does not work for x86. 
> > 
> > Is there any easy way to achieve this for x86? If I had one loop, it 
> won't be a problem --- I'd just put a few `BYTE $0x90` and move on. The 
> problem is my code is huge, partially autogenerated with few variants. 
> > 
> > Any hints? 
>
> As far as I can tell PCALIGN is implemented for all architectures. 
>
> Ian 
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/e314cd4f-c4f6-4782-b292-9f4f30a87c9bn%40googlegroups.com.

Reply via email to