1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun // Copyright (C) 2005-2017 Andes Technology Corporation 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun #ifndef __NDS32_ASSEMBLER_H__ 5*4882a593Smuzhiyun #define __NDS32_ASSEMBLER_H__ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun .macro gie_disable 8*4882a593Smuzhiyun setgie.d 9*4882a593Smuzhiyun dsb 10*4882a593Smuzhiyun .endm 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun .macro gie_enable 13*4882a593Smuzhiyun setgie.e 14*4882a593Smuzhiyun dsb 15*4882a593Smuzhiyun .endm 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun .macro gie_save oldpsw 18*4882a593Smuzhiyun mfsr \oldpsw, $ir0 19*4882a593Smuzhiyun setgie.d 20*4882a593Smuzhiyun dsb 21*4882a593Smuzhiyun .endm 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun .macro gie_restore oldpsw 24*4882a593Smuzhiyun andi \oldpsw, \oldpsw, #0x1 25*4882a593Smuzhiyun beqz \oldpsw, 7001f 26*4882a593Smuzhiyun setgie.e 27*4882a593Smuzhiyun dsb 28*4882a593Smuzhiyun 7001: 29*4882a593Smuzhiyun .endm 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #define USER(insn, reg, addr, opr) \ 33*4882a593Smuzhiyun 9999: insn reg, addr, opr; \ 34*4882a593Smuzhiyun .section __ex_table,"a"; \ 35*4882a593Smuzhiyun .align 3; \ 36*4882a593Smuzhiyun .long 9999b, 9001f; \ 37*4882a593Smuzhiyun .previous 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun #endif /* __NDS32_ASSEMBLER_H__ */ 40