]> rtime.felk.cvut.cz Git - lincan.git/blob - embedded/arch/arm/mach-lpc21xx/libs/hal/irq_fnc_compat.S
Merge master into can-usb1 branch to include proc update for 3.12+ kernels.
[lincan.git] / embedded / arch / arm / mach-lpc21xx / libs / hal / irq_fnc_compat.S
1 .macro  code32_fnc_header fncname
2         .global \fncname
3 #if defined(__thumb__) && !defined(__THUMB_INTERWORK__)
4         .code 16
5         .align  0
6         .thumb_func
7         .type   \fncname, %function
8 \fncname:
9         bx      pc
10         nop
11         .code 32
12         .type   _code_32_\fncname, %function
13 _code_32_\fncname:
14 #else
15         .code 32
16         .align  0
17         .type   \fncname, %function
18 \fncname:
19 #endif
20
21 .endm
22
23         .text
24
25         code32_fnc_header irq_fnc_sti
26         mrs     r0, cpsr
27         bic     r0, r0, #128
28         msr     cpsr_c, r0
29         bx      lr
30
31         code32_fnc_header irq_fnc_cli
32         mrs     r0, cpsr
33         orr     r0, r0, #128
34         msr     cpsr_c, r0
35         bx      lr
36
37         code32_fnc_header irq_fnc_save_and_cli
38         mrs     r0, cpsr
39         orr     r1, r0, #128
40         msr     cpsr_c, r1
41         bx      lr
42
43         code32_fnc_header irq_fnc_save_flags
44         mrs     r0, cpsr
45         bx      lr
46
47         code32_fnc_header irq_fnc_restore_flags
48         msr     cpsr_c, r0
49         bx      lr