fix(asm): encode the loong64 64-bit-span 2RI14 offsets like the toolchain
Assisted-by: GLM 5.3
This commit is contained in:
1 parent
41aa8edfd2
commit
b9dfb48d79
2 files changed
+30
-7
No files matched your search
@@ -264,9 +264,8 @@ func l64WordsLE(ws ...uint32) []byte {
|
||||
// a 32-bit one (C_LOREG_32) splits between addu16i.d (bits 31:16, materialised
|
||||
// in R30, the assembler temp) and si14 (bits 15:2); anything wider
|
||||
// (C_LOREG_64) builds the whole constant in R30 through lu12i.w + ori +
|
||||
// lu32i.d + lu52i.d and folds the base into it. The loong64 backend resolves
|
||||
// memory offsets as int32, so the third span answers nothing the encoder can
|
||||
// ask today: it stands so the mapping stays complete if that domain widens.
|
||||
// lu32i.d + lu52i.d and folds the base into it. The caller adjusts the
|
||||
// opcode for the 64-bit span's load-direction quirks before arriving here.
|
||||
func l64firr14Words(op uint32, off, rj, rd int) []byte {
|
||||
switch {
|
||||
case off >= -32766 && off < 32766:
|
||||
|
||||
Reference in new issue
Block a user