feat(riscv): add MOV pseudo-instruction and RVC compressed encoding
Assisted-by: DeepSeek V4 Pro
This commit is contained in:
Vendored
+13
-14
@@ -4,24 +4,23 @@
|
||||
#include "textflag.h"
|
||||
|
||||
// func readCSR(csr int64) int64
|
||||
// Reads a CSR into the return value.
|
||||
TEXT ·readCSR(SB), NOSPLIT, $0-16
|
||||
LD a+0(FP), A0
|
||||
CSRRS $0x300, X0, A1
|
||||
SD A1, ret+8(FP)
|
||||
RET
|
||||
MOV a+0(FP), X10
|
||||
CSRRS $0x300, X0, X11
|
||||
MOV X11, ret+8(FP)
|
||||
RET
|
||||
|
||||
// func setCSRBit(csr, bit int64) int64
|
||||
TEXT ·setCSRBit(SB), NOSPLIT, $0-24
|
||||
LD a+0(FP), A0
|
||||
LD b+8(FP), A1
|
||||
CSRRS $0x304, A1, A2
|
||||
SD A2, ret+16(FP)
|
||||
RET
|
||||
MOV a+0(FP), X10
|
||||
MOV b+8(FP), X11
|
||||
CSRRS $0x304, X11, X12
|
||||
MOV X12, ret+16(FP)
|
||||
RET
|
||||
|
||||
// func writeCSR(val int64) int64
|
||||
TEXT ·writeCSR(SB), NOSPLIT, $0-16
|
||||
LD a+0(FP), A0
|
||||
CSRRW $0x305, A0, A1
|
||||
SD A1, ret+8(FP)
|
||||
RET
|
||||
MOV a+0(FP), X10
|
||||
CSRRW $0x305, X10, X11
|
||||
MOV X11, ret+8(FP)
|
||||
RET
|
||||
|
||||
Reference in New Issue
Block a user