Subversion Repositories freemyipod

Rev

Rev 595 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 595 Rev 702
Line 21... Line 21...
21
@
21
@
22
 
22
 
23
#define ASM_FILE
23
#define ASM_FILE
24
#include "global.h"
24
#include "global.h"
25
 
25
 
26
.section .icode.yield, "ax", %progbits
26
.section .icode.contextswitch, "ax", %progbits
27
.align 2
27
.align 2
-
 
28
.global panic_recover
-
 
29
.type panic_recover, %function
-
 
30
panic_recover:
-
 
31
	mrs	r0, cpsr
-
 
32
	and	r0, r0, #0x1f
-
 
33
	cmp	r0, #0x17
-
 
34
	cmpne	r0, #0x1b
-
 
35
	bne	yield
-
 
36
	ldr	sp, =_abortstackend - 0x44
-
 
37
	ldr	r9, =current_thread
-
 
38
	ldr	lr, [r9]
-
 
39
	ldmia	sp!, {r0-r7}
-
 
40
	stmia	lr!, {r0-r7}
-
 
41
	ldmia	sp!, {r0-r8}
-
 
42
	stmia	lr!, {r0-r8}
-
 
43
	msr	cpsr_c, #0xd2
-
 
44
	bl	scheduler_pause_accounting
-
 
45
	adr	lr, resume_thread
-
 
46
	mov	r0, #0
-
 
47
	mov	r1, r9
-
 
48
	b	scheduler_switch
-
 
49
.size panic_recover, .-panic_recover
-
 
50
 
28
.global yield
51
.global yield
29
.type yield, %function
52
.type yield, %function
30
yield:
53
yield:
31
	mrs	r1, cpsr
54
	mrs	r1, cpsr
32
	msr	cpsr_c, #0xdf
55
	msr	cpsr_c, #0xdf