Bladeren bron

fix(arch): fix bad addi instructions, replace by la

Heinz 7 maanden geleden
bovenliggende
commit
cb3a72ca15
2 gewijzigde bestanden met toevoegingen van 2 en 2 verwijderingen
  1. 1 1
      arch/arch_macros/src/riscv64/percpu.rs
  2. 1 1
      crates/eonix_hal/src/arch/riscv64/trap/mod.rs

+ 1 - 1
arch/arch_macros/src/riscv64/percpu.rs

@@ -8,7 +8,7 @@ pub fn get_percpu_pointer(percpu: &Ident, ty: &Type) -> TokenStream {
         {
             let base: *mut #ty;
             ::core::arch::asm!(
-                "addi {base}, tp, {offset}",
+                "la {base}, {offset}",
                 base = out(reg) base,
                 offset = sym #percpu,
                 options(nostack, preserves_flags)

+ 1 - 1
crates/eonix_hal/src/arch/riscv64/trap/mod.rs

@@ -72,7 +72,7 @@ global_asm!(
         csrr t0, sscratch
         sd t0, 2*8(sp)      # save user stack pointer into the TrapContext
 
-        addi t0, tp, {handler}
+        la t0, {handler}
         ld t1, 0(t0)
         jr t1