1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #define src_sav r13
24 #define dst_sav r12
25 #define src_dst_sav r13:12
26 #define d_dbuf r15:14
27 #define w_dbuf r15
28
29 #define dst r0
30 #define src r1
31 #define bytes r2
32 #define loopcount r5
33
34 #define FUNCNAME raw_copy_from_user
35 #include "copy_user_template.S"
36
37
38
39
40 .falign
41 1009:
42 2009:
43 4009:
44 {
45 r0 = r2
46 jumpr r31
47 }
48
49
50 .falign
51 8089:
52 {
53 memd(dst) = d_dbuf
54 r2 += sub(src_sav,src)
55 }
56 {
57 r0 = r2
58 jumpr r31
59 }
60 .falign
61 4089:
62 {
63 memw(dst) = w_dbuf
64 r2 += sub(src_sav,src)
65 }
66 {
67 r0 = r2
68 jumpr r31
69 }
70 .falign
71 2089:
72 {
73 memh(dst) = w_dbuf
74 r2 += sub(src_sav,src)
75 }
76 {
77 r0 = r2
78 jumpr r31
79 }
80 .falign
81 1089:
82 {
83 memb(dst) = w_dbuf
84 r2 += sub(src_sav,src)
85 }
86 {
87 r0 = r2
88 jumpr r31
89 }
90
91
92
93 .section __ex_table,"a"
94 .long 1000b,1009b
95 .long 2000b,2009b
96 .long 4000b,4009b
97 .long 8080b,8089b
98 .long 4080b,4089b
99 .long 2080b,2089b
100 .long 1080b,1089b
101 .previous