0001
0002
0003
0004
0005
0006
0007
0008 #define EX_ST(x, y) \
0009 98: x; \
0010 .section __ex_table,"a"; \
0011 .align 4; \
0012 .word 98b, y; \
0013 .text; \
0014 .align 4;
0015
0016 #define EX_ST_FP(x, y) \
0017 98: x; \
0018 .section __ex_table,"a"; \
0019 .align 4; \
0020 .word 98b, y##_fp; \
0021 .text; \
0022 .align 4;
0023
0024
0025 #ifndef ASI_AIUS
0026 #define ASI_AIUS 0x11
0027 #endif
0028
0029 #ifndef ASI_BLK_INIT_QUAD_LDD_AIUS
0030 #define ASI_BLK_INIT_QUAD_LDD_AIUS 0x23
0031 #endif
0032
0033 #define FUNC_NAME M7copy_to_user
0034 #define STORE(type,src,addr) type##a src, [addr] %asi
0035 #define STORE_ASI ASI_BLK_INIT_QUAD_LDD_AIUS
0036 #define STORE_MRU_ASI ASI_ST_BLKINIT_MRU_S
0037 #define EX_RETVAL(x) 0
0038
0039 #ifdef __KERNEL__
0040
0041
0042
0043
0044 #define PREAMBLE \
0045 rd %asi, %g1; \
0046 cmp %g1, ASI_AIUS; \
0047 bne,pn %icc, raw_copy_in_user; \
0048 nop
0049 #endif
0050
0051 #include "M7memcpy.S"