浏览代码

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

Heinz 7 月之前
父节点
当前提交
cb3a72ca15
共有 2 个文件被更改,包括 2 次插入2 次删除
  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