1
2
3
4
5
6
7
8 #define EX_ST(x, y) \
9 98: x; \
10 .section __ex_table,"a"; \
11 .align 4; \
12 .word 98b, y; \
13 .text; \
14 .align 4;
15
16 #define EX_ST_FP(x, y) \
17 98: x; \
18 .section __ex_table,"a"; \
19 .align 4; \
20 .word 98b, y##_fp; \
21 .text; \
22 .align 4;
23
24
25 #ifndef ASI_AIUS
26 #define ASI_AIUS 0x11
27 #endif
28
29 #ifndef ASI_BLK_INIT_QUAD_LDD_AIUS
30 #define ASI_BLK_INIT_QUAD_LDD_AIUS 0x23
31 #endif
32
33 #define FUNC_NAME M7copy_to_user
34 #define STORE(type,src,addr) type##a src, [addr] %asi
35 #define STORE_ASI ASI_BLK_INIT_QUAD_LDD_AIUS
36 #define STORE_MRU_ASI ASI_ST_BLKINIT_MRU_S
37 #define EX_RETVAL(x) 0
38
39 #ifdef __KERNEL__
40
41
42
43
44 #define PREAMBLE \
45 rd %asi, %g1; \
46 cmp %g1, ASI_AIUS; \
47 bne,pn %icc, raw_copy_in_user; \
48 nop
49 #endif
50
51 #include "M7memcpy.S"