diff options
Diffstat (limited to 'c/src/exec/score/cpu/i960/cpu_asm.S')
-rw-r--r-- | c/src/exec/score/cpu/i960/cpu_asm.S | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/c/src/exec/score/cpu/i960/cpu_asm.S b/c/src/exec/score/cpu/i960/cpu_asm.S index 91b4b6112f..82906ad4ff 100644 --- a/c/src/exec/score/cpu/i960/cpu_asm.S +++ b/c/src/exec/score/cpu/i960/cpu_asm.S @@ -128,10 +128,12 @@ __ISR_Handler: lda 1(r4),r4 # increment dispatch disable level movl g6,r14 # save g6-g7 - stq g8, _ISR_reg_save # save g8-g11 - stl g12, _ISR_reg_save+16 # save g12-g13 + ld __ISR_Vector_table,g1 # g1 = base of vector table - ld __ISR_Vector_table[g0*4],g1 # g1 = Users handler + stq g8, _ISR_reg_save # save g8-g11 + stl g12, _ISR_reg_save+16 # save g12-g13 + + ld (g1)[g0*4],g1 # g1 = Users handler addo 1,r5,r5 # increment ISR level st r4,__Thread_Dispatch_disable_level |