Skip to content

Commit 58d50a0

Browse files
henry-hsiehcarlescufi
authored andcommitted
riscv: fix non-standard assembly of RISC-V
Non-standard `jalr rd, rs` pseudo-instructions are used. This commit changes them to `ret` for standard return pseudo-instruction or `jalr rd, rs, 0` for no offset jump register and link. Fixes #41100. Signed-off-by: Henry Hsieh <[email protected]>
1 parent 9edb8e2 commit 58d50a0

File tree

6 files changed

+7
-7
lines changed

6 files changed

+7
-7
lines changed

arch/riscv/core/isr.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,7 @@ call_irq:
733733
RV_OP_LOADREG t1, RV_REGSIZE(t0)
734734

735735
/* Call ISR function */
736-
jalr ra, t1
736+
jalr ra, t1, 0
737737

738738
on_thread_stack:
739739
/* Get reference to _kernel */

arch/riscv/core/swap.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ SECTION_FUNC(exception.other, arch_swap)
5454
addi a0, t2, 0
5555

5656
/* Return */
57-
jalr x0, ra
57+
ret
5858

5959

6060
/*

soc/riscv/esp32c3/soc_irq.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ SECTION_FUNC(exception.other, __soc_handle_irq)
2020
addi sp, sp,-4
2121
sw ra, 0x00(sp)
2222
la t1, soc_intr_get_next_source
23-
jalr ra, t1
23+
jalr ra, t1, 0
2424
lw ra, 0x00(sp)
2525
addi sp, sp, 4
2626
ret

soc/riscv/riscv-ite/common/soc_irq.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ SECTION_FUNC(exception.other, __soc_is_irq)
5757

5858
not_interrupt:
5959
/* return */
60-
jalr x0, ra
60+
ret

soc/riscv/riscv-privilege/common/soc_irq.S

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ SECTION_FUNC(exception.other, __soc_handle_irq)
3131
csrrc t1, mip, t0
3232

3333
/* Return */
34-
jalr x0, ra
34+
ret
3535

3636
/*
3737
* __soc_is_irq is defined as .weak to allow re-implementation by
@@ -58,4 +58,4 @@ SECTION_FUNC(exception.other, __soc_is_irq)
5858

5959
not_interrupt:
6060
/* return */
61-
jalr x0, ra
61+
ret

soc/riscv/riscv-privilege/neorv32/soc_irq.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ SECTION_FUNC(exception.other, __soc_handle_irq)
2525
csrrs t2, mie, t1
2626

2727
/* Return */
28-
jalr x0, ra
28+
ret

0 commit comments

Comments
 (0)