用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

51 lines
1.1 KiB

.set noat
.globl .Lexception_exit
.section .exceptions.exit.label
.Lexception_exit:
.section .exceptions.exit, "xa"
ldw r5, 68(sp)
/* get exception back */
ldw ea, 72(sp)
/* if(rt_thread_switch_interrupt_flag == 0) goto no_need_context */
ldw r4,%gprel(rt_thread_switch_interrupt_flag)(gp)
beq r4,zero,no_need_context
need_context:
movia ea, rt_hw_context_switch_interrupt_do
/* disable interrupt */
mov r5, zero
no_need_context:
ldw ra, 0(sp)
wrctl estatus, r5
/*
* Leave a gap in the stack frame at 4(sp) for the muldiv handler to
* store zero into.
*/
ldw r1, 8(sp)
ldw r2, 12(sp)
ldw r3, 16(sp)
ldw r4, 20(sp)
ldw r5, 24(sp)
ldw r6, 28(sp)
ldw r7, 32(sp)
ldw r8, 36(sp)
ldw r9, 40(sp)
ldw r10, 44(sp)
ldw r11, 48(sp)
ldw r12, 52(sp)
ldw r13, 56(sp)
ldw r14, 60(sp)
ldw r15, 64(sp)
addi sp, sp, 76
eret