feat(asm): the operand forms and defines GOROOT writes
Assisted-by: GLM 5.3 Flash
This commit is contained in:
Vendored
+36
@@ -0,0 +1,36 @@
|
||||
// Kernel: the operand forms the GOROOT campaign surfaced — numeric
|
||||
// PC-relative jumps, symbol-immediate materialisation (the toolchain rewrites
|
||||
// MOVQ $sym(SB) into a RIP-relative LEA) and the negated constant-expression
|
||||
// ADJSP the cgo ABI macros write. Bytes are pinned against go tool asm by
|
||||
// TestDifferentialKernels.
|
||||
#include "textflag.h"
|
||||
|
||||
DATA sd<>(SB)/4, $7
|
||||
GLOBL sd<>(SB), RODATA, $4
|
||||
|
||||
// func Jumps(flag int64) int64
|
||||
TEXT ·Jumps(SB), NOSPLIT, $0-16
|
||||
MOVQ flag+0(FP), AX
|
||||
TESTQ AX, AX
|
||||
JEQ 2(PC)
|
||||
MOVQ $1, AX
|
||||
JMP 3(PC)
|
||||
MOVQ $2, AX
|
||||
MOVQ AX, ret+0(FP)
|
||||
RET
|
||||
|
||||
// func SymImm() int64
|
||||
TEXT ·SymImm(SB), NOSPLIT, $0-16
|
||||
MOVQ $sd<>(SB), AX
|
||||
MOVQ $·SymImm(SB), CX
|
||||
MOVQ AX, ret+0(FP)
|
||||
RET
|
||||
|
||||
// func Frame()
|
||||
TEXT ·Frame(SB), NOSPLIT, $0
|
||||
PUSHFQ
|
||||
CLD
|
||||
ADJSP $(64 - 8)
|
||||
ADJSP $-(64 - 8)
|
||||
POPFQ
|
||||
RET
|
||||
Reference in New Issue
Block a user