2525 */
2626 .globl rt_hw_context_switch
2727rt_hw_context_switch:
28- mtc0 ra, CP0_EPC
28+ MTC0 ra, CP0_EPC
2929 SAVE_ALL
3030
31- sw sp, 0 (a0) /* store sp in preempted tasks TCB */
32- lw sp, 0 (a1) /* get new task stack pointer */
31+ REG_S sp, 0 (a0) /* store sp in preempted tasks TCB */
32+ REG_L sp, 0 (a1) /* get new task stack pointer */
3333
3434 RESTORE_ALL_AND_RET
3535
@@ -39,7 +39,7 @@ rt_hw_context_switch:
3939 */
4040 .globl rt_hw_context_switch_to
4141rt_hw_context_switch_to:
42- lw sp, 0 (a0) /* get new task stack pointer */
42+ REG_L sp, 0 (a0) /* get new task stack pointer */
4343 RESTORE_ALL_AND_RET
4444
4545/*
@@ -50,17 +50,17 @@ rt_hw_context_switch_to:
5050 .globl rt_interrupt_to_thread
5151 .globl rt_hw_context_switch_interrupt
5252rt_hw_context_switch_interrupt:
53- la t0, rt_thread_switch_interrupt_flag
54- lw t1, 0 (t0)
53+ PTR_LA t0, rt_thread_switch_interrupt_flag
54+ REG_L t1, 0 (t0)
5555 nop
5656 bnez t1, _reswitch
5757 nop
5858 li t1, 0x01 /* set rt_thread_switch_interrupt_flag to 1 */
5959 sw t1, 0 (t0)
60- la t0, rt_interrupt_from_thread /* set rt_interrupt_from_thread */
60+ PTR_LA t0, rt_interrupt_from_thread /* set rt_interrupt_from_thread */
6161 sw a0, 0 (t0)
6262_reswitch:
63- la t0, rt_interrupt_to_thread /* set rt_interrupt_to_thread */
63+ PTR_LA t0, rt_interrupt_to_thread /* set rt_interrupt_to_thread */
6464 sw a1, 0 (t0)
6565 jr ra
6666 nop
@@ -78,7 +78,7 @@ mips_irq_handle:
7878 /* let k0 keep the current context sp */
7979 move k0, sp
8080 /* switch to kernel stack */
81- la sp, _system_stack
81+ PTR_LA sp, _system_stack
8282
8383 jal rt_interrupt_enter
8484 nop
@@ -96,7 +96,7 @@ mips_irq_handle:
9696 * if rt_thread_switch_interrupt_flag set, jump to
9797 * rt_hw_context_switch_interrupt_do and do not return
9898 */
99- la k0, rt_thread_switch_interrupt_flag
99+ PTR_LA k0, rt_thread_switch_interrupt_flag
100100 lw k1, 0 (k0)
101101 beqz k1, spurious_interrupt
102102 nop
@@ -106,12 +106,12 @@ mips_irq_handle:
106106 /*
107107 * switch to the new thread
108108 */
109- la k0, rt_interrupt_from_thread
109+ PTR_LA k0, rt_interrupt_from_thread
110110 lw k1, 0 (k0)
111111 nop
112112 sw sp, 0 (k1) /* store sp in preempted task TCB */
113113
114- la k0, rt_interrupt_to_thread
114+ PTR_LA k0, rt_interrupt_to_thread
115115 lw k1, 0 (k0)
116116 nop
117117 lw sp, 0 (k1) /* get new task stack pointer */
0 commit comments