@@ -42,15 +42,15 @@ save_regs:
4242 csrrw t0, sscratch, zero
4343
4444 // Save everything, but sp (x2)
45- .irp i, 0 , 1 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31
46- sd x\i, \i *8 (sp )
45+ .irp i, 1 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31
46+ sd x\i, (\i - 1 ) *8(sp)
4747 .endr
4848
4949 csrr t0, sepc
5050 csrr t1, sstatus
5151
52- sd t0, 32 *8 (sp )
53- sd t1, 33 *8 (sp )
52+ sd t0, 31 *8 (sp )
53+ sd t1, 32 *8 (sp )
5454
5555 andi t1, t1, SSTATUS_SPP
5656 bnez t1, run_handler
@@ -67,8 +67,8 @@ run_handler:
6767 call trap_handler_trampoline
6868
6969kernel_trap_restore:
70- ld t0, 32 *8 (sp )
71- ld t1, 33 *8 (sp )
70+ ld t0, 31 *8 (sp )
71+ ld t1, 32 *8 (sp )
7272
7373 // disable interrupts and restore sstatus and sepc
7474 and t2, t1, ~SSTATUS_SIE
@@ -86,10 +86,10 @@ restore_umode:
8686
8787load_regs:
8888 .irp i, 1 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31
89- ld x\i, \i *8 (sp )
89+ ld x\i, (\i - 1 ) *8(sp)
9090 .endr
9191
92- ld sp , 2 *8 (sp )
92+ ld sp , ( 2 - 1 ) *8(sp)
9393 sret
9494
9595trap_restore_with_cleanup:
0 commit comments