WIP FPC-III support
[linux/fpc-iii.git] / arch / nds32 / include / asm / assembler.h
blob5e7c569260494105db01c9e51c87b91668ec9b1e
1 /* SPDX-License-Identifier: GPL-2.0 */
2 // Copyright (C) 2005-2017 Andes Technology Corporation
4 #ifndef __NDS32_ASSEMBLER_H__
5 #define __NDS32_ASSEMBLER_H__
7 .macro gie_disable
8 setgie.d
9 dsb
10 .endm
12 .macro gie_enable
13 setgie.e
14 dsb
15 .endm
17 .macro gie_save oldpsw
18 mfsr \oldpsw, $ir0
19 setgie.d
20 dsb
21 .endm
23 .macro gie_restore oldpsw
24 andi \oldpsw, \oldpsw, #0x1
25 beqz \oldpsw, 7001f
26 setgie.e
27 dsb
28 7001:
29 .endm
32 #define USER(insn, reg, addr, opr) \
33 9999: insn reg, addr, opr; \
34 .section __ex_table,"a"; \
35 .align 3; \
36 .long 9999b, 9001f; \
37 .previous
39 #endif /* __NDS32_ASSEMBLER_H__ */