[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] fixup! riscv: Implement large addend for global address
From: |
Ekaitz Zarraga |
Subject: |
[PATCH] fixup! riscv: Implement large addend for global address |
Date: |
Wed, 8 May 2024 12:44:41 +0200 |
Use `t1` instead of `t0` for the cases when `rr` is not set so `t0` is
used by default and this happens:
lui t0, XXX
add t0, t0, t0
Instead, now we do:
lui t1, XXX
add t0, t0, t1
---
riscv64-gen.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/riscv64-gen.c b/riscv64-gen.c
index 79d1b3be..27af2115 100644
--- a/riscv64-gen.c
+++ b/riscv64-gen.c
@@ -322,8 +322,8 @@ static int load_symofs(int r, SValue *sv, int forstore)
if (doload) {
EI(0x03, 3, rr, rr, 0); // ld RR, 0(RR)
if (large_addend) {
- o(0x37 | (5 << 7) | ((0x800 + fc) & 0xfffff000)); //lui t0,
high(fc)
- ER(0x33, 0, rr, rr, 5, 0); // add RR, RR, t0
+ o(0x37 | (6 << 7) | ((0x800 + fc) & 0xfffff000)); //lui t1,
high(fc)
+ ER(0x33, 0, rr, rr, 6, 0); // add RR, RR, t1
sv->c.i = fc << 20 >> 20;
}
}
--
2.41.0
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] fixup! riscv: Implement large addend for global address,
Ekaitz Zarraga <=