Hi all!
Thanks for the pointer to using <ABIInternal> in the code. Unfortunately, it seems that it is only allowed for runtime* packages, as I get a
ABI selector only permitted when compiling runtime, reference was to "\"\".__CompareNMask"
error, when using it. I'm trying to use it for this simple function (invoking some SIMD operations):
// func __CompareNMask(buf, mask unsafe.Pointer) (ret uint16)
TEXT ·__CompareNMask<ABIInternal>(SB), $0-24
MOVQ buf+0(FP), DI
MOVQ mask+8(FP), SI
LONG $0xc66ef9c5 // vmovd xmm0, esi
LONG $0x7879e2c4; BYTE $0xc0 // vpbroadcastb xmm0, xmm0
LONG $0x0774f9c5 // vpcmpeqb xmm0, xmm0, oword [rdi]
LONG $0xc0d7f9c5 // vpmovmskb eax, xmm0
MOVW AX, ret+16(FP)
RET
Is there any way to allow non-runtime packages to use the register-based calling convention (or open up for the ABIInternal)?
Best regards
Jakob