feat(amd64): assemble the double-shift and static-SB operand shapes
Assisted-by: GLM 5.3 Flash
This commit is contained in:
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
// Legacy SSE octa moves against static (SB) symbols: the load and store
|
||||
// shapes GOROOT's AES-CTR, AES-GCM and P-256 kernels spell (MOVOU
|
||||
// bswapMask<>+0(SB), X0 and the reverse), including offsets into the symbol
|
||||
// and the aligned MOVO pair. Every result is folded back so no instruction
|
||||
// is dead.
|
||||
|
||||
#include "textflag.h"
|
||||
|
||||
// func ssestatic() uint64
|
||||
TEXT ·ssestatic(SB), NOSPLIT, $0-8
|
||||
MOVOU bswapMask<>+0(SB), X0
|
||||
MOVOU bswapMask<>+8(SB), X1
|
||||
MOVO rodataMask<>+0(SB), X2
|
||||
PXOR X1, X0
|
||||
PXOR X2, X0
|
||||
MOVOU X0, sink<>+0(SB)
|
||||
MOVOU sink<>+0(SB), X3
|
||||
PXOR X3, X0
|
||||
MOVQ X0, AX
|
||||
MOVQ AX, ret+0(FP)
|
||||
RET
|
||||
|
||||
GLOBL bswapMask<>(SB), RODATA|NOPTR, $16
|
||||
|
||||
GLOBL rodataMask<>(SB), RODATA|NOPTR, $16
|
||||
|
||||
GLOBL sink<>(SB), NOPTR, $16
|
||||
Reference in New Issue
Block a user