1
2
3
4
5
6
7
8
9 #include <asm/processor.h>
10 #include <asm/ppc_asm.h>
11 #include <asm/ppc-opcode.h>
12 #include <asm/reg.h>
13 #include <asm/asm-offsets.h>
14 #include <linux/errno.h>
15
16
17 _GLOBAL(do_lq)
18 1: lq r6, 0(r3)
19 std r6, 0(r4)
20 std r7, 8(r4)
21 li r3, 0
22 blr
23 2: li r3, -EFAULT
24 blr
25 EX_TABLE(1b, 2b)
26
27
28 _GLOBAL(do_stq)
29 1: stq r4, 0(r3)
30 li r3, 0
31 blr
32 2: li r3, -EFAULT
33 blr
34 EX_TABLE(1b, 2b)
35
36
37 _GLOBAL(do_lqarx)
38 1: PPC_LQARX(6, 0, 3, 0)
39 std r6, 0(r4)
40 std r7, 8(r4)
41 li r3, 0
42 blr
43 2: li r3, -EFAULT
44 blr
45 EX_TABLE(1b, 2b)
46
47
48
49
50 _GLOBAL(do_stqcx)
51 1: PPC_STQCX(4, 0, 3)
52 mfcr r5
53 stw r5, 0(r6)
54 li r3, 0
55 blr
56 2: li r3, -EFAULT
57 blr
58 EX_TABLE(1b, 2b)