feat(riscv64,loong64): PCALIGN, branch relaxation and operand shapes
Assisted-by: GLM 5.3 Flash
This commit is contained in:
Vendored
+35
@@ -0,0 +1,35 @@
|
||||
// PCALIGN padding on riscv64: 4-byte NOPs with a 2-byte compressed NOP when
|
||||
// the pad is 2 mod 4, exactly as the toolchain lays the bytes down.
|
||||
#include "textflag.h"
|
||||
|
||||
// func Pad8(x int64) int64
|
||||
TEXT ·Pad8(SB), NOSPLIT, $0-16
|
||||
MOV x+0(FP), X5
|
||||
PCALIGN $8
|
||||
ADD $1, X5
|
||||
MOV X5, ret+8(FP)
|
||||
RET
|
||||
|
||||
// func Pad16(x int64) int64
|
||||
TEXT ·Pad16(SB), NOSPLIT, $0-16
|
||||
MOV x+0(FP), X5
|
||||
PCALIGN $16
|
||||
ADD $1, X5
|
||||
MOV X5, ret+8(FP)
|
||||
RET
|
||||
|
||||
// func Pad32(x int64) int64
|
||||
TEXT ·Pad32(SB), NOSPLIT, $0-16
|
||||
MOV x+0(FP), X5
|
||||
PCALIGN $32
|
||||
ADD $1, X5
|
||||
MOV X5, ret+8(FP)
|
||||
RET
|
||||
|
||||
// func PadAfterOdd(x int64) int64
|
||||
TEXT ·PadAfterOdd(SB), NOSPLIT, $0-16
|
||||
MOV x+0(FP), X5
|
||||
PCALIGN $8
|
||||
ADD $1, X5
|
||||
MOV X5, ret+8(FP)
|
||||
RET
|
||||
Reference in New Issue
Block a user