bug-mes
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]