0001
0002
0003
0004
0005
0006
0007 #define EX_LD(x,y) \
0008 98: x; \
0009 .section __ex_table,"a";\
0010 .align 4; \
0011 .word 98b, y; \
0012 .text; \
0013 .align 4;
0014
0015 #ifndef ASI_AIUS
0016 #define ASI_AIUS 0x11
0017 #endif
0018
0019 #define FUNC_NAME NGcopy_from_user
0020 #define LOAD(type,addr,dest) type##a [addr] ASI_AIUS, dest
0021 #define LOAD_TWIN(addr_reg,dest0,dest1) \
0022 ldda [addr_reg] ASI_BLK_INIT_QUAD_LDD_AIUS, dest0
0023 #define EX_RETVAL(x) %g0
0024
0025 #ifdef __KERNEL__
0026 #define PREAMBLE \
0027 rd %asi, %g1; \
0028 cmp %g1, ASI_AIUS; \
0029 bne,pn %icc, raw_copy_in_user; \
0030 nop
0031 #endif
0032
0033 #include "NGmemcpy.S"