]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - arch/powerpc/lib/copypage_64.S
powerpc: No need to use dot symbols when branching to a function
[mirror_ubuntu-bionic-kernel.git] / arch / powerpc / lib / copypage_64.S
CommitLineData
14cf11af 1/*
57dda6ef 2 * Copyright (C) 2008 Mark Nelson, IBM Corp.
14cf11af
PM
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 */
d988f0e3 9#include <asm/page.h>
14cf11af
PM
10#include <asm/processor.h>
11#include <asm/ppc_asm.h>
57dda6ef
MN
12#include <asm/asm-offsets.h>
13
14 .section ".toc","aw"
15PPC64_CACHES:
16 .tc ppc64_caches[TC],ppc64_caches
17 .section ".text"
18
d988f0e3 19_GLOBAL(copy_page)
fde69282 20BEGIN_FTR_SECTION
d988f0e3 21 lis r5,PAGE_SIZE@h
fde69282 22FTR_SECTION_ELSE
b1576fec 23 b copypage_power7
fde69282 24ALT_FTR_SECTION_END_IFCLR(CPU_FTR_VMX_COPY)
d988f0e3 25 ori r5,r5,PAGE_SIZE@l
57dda6ef
MN
26BEGIN_FTR_SECTION
27 ld r10,PPC64_CACHES@toc(r2)
28 lwz r11,DCACHEL1LOGLINESIZE(r10) /* log2 of cache line size */
29 lwz r12,DCACHEL1LINESIZE(r10) /* get cache line size */
30 li r9,0
31 srd r8,r5,r11
32
33 mtctr r8
3cd980db 34.Lsetup:
57dda6ef
MN
35 dcbt r9,r4
36 dcbz r9,r3
37 add r9,r9,r12
3cd980db 38 bdnz .Lsetup
57dda6ef 39END_FTR_SECTION_IFSET(CPU_FTR_CP_USE_DCBTZ)
14cf11af 40 addi r3,r3,-8
57dda6ef
MN
41 srdi r8,r5,7 /* page is copied in 128 byte strides */
42 addi r8,r8,-1 /* one stride copied outside loop */
43
44 mtctr r8
45
46 ld r5,0(r4)
47 ld r6,8(r4)
48 ld r7,16(r4)
49 ldu r8,24(r4)
501: std r5,8(r3)
57dda6ef 51 std r6,16(r3)
63e6c5b8 52 ld r9,8(r4)
57dda6ef
MN
53 ld r10,16(r4)
54 std r7,24(r3)
57dda6ef 55 std r8,32(r3)
63e6c5b8 56 ld r11,24(r4)
57dda6ef
MN
57 ld r12,32(r4)
58 std r9,40(r3)
57dda6ef 59 std r10,48(r3)
63e6c5b8 60 ld r5,40(r4)
57dda6ef
MN
61 ld r6,48(r4)
62 std r11,56(r3)
57dda6ef 63 std r12,64(r3)
63e6c5b8 64 ld r7,56(r4)
57dda6ef
MN
65 ld r8,64(r4)
66 std r5,72(r3)
57dda6ef 67 std r6,80(r3)
63e6c5b8 68 ld r9,72(r4)
57dda6ef
MN
69 ld r10,80(r4)
70 std r7,88(r3)
57dda6ef 71 std r8,96(r3)
63e6c5b8 72 ld r11,88(r4)
57dda6ef
MN
73 ld r12,96(r4)
74 std r9,104(r3)
57dda6ef 75 std r10,112(r3)
63e6c5b8 76 ld r5,104(r4)
57dda6ef
MN
77 ld r6,112(r4)
78 std r11,120(r3)
57dda6ef 79 stdu r12,128(r3)
63e6c5b8 80 ld r7,120(r4)
57dda6ef 81 ldu r8,128(r4)
14cf11af 82 bdnz 1b
57dda6ef
MN
83
84 std r5,8(r3)
57dda6ef 85 std r6,16(r3)
63e6c5b8 86 ld r9,8(r4)
57dda6ef
MN
87 ld r10,16(r4)
88 std r7,24(r3)
57dda6ef 89 std r8,32(r3)
63e6c5b8 90 ld r11,24(r4)
57dda6ef
MN
91 ld r12,32(r4)
92 std r9,40(r3)
57dda6ef 93 std r10,48(r3)
63e6c5b8 94 ld r5,40(r4)
57dda6ef
MN
95 ld r6,48(r4)
96 std r11,56(r3)
57dda6ef 97 std r12,64(r3)
63e6c5b8 98 ld r7,56(r4)
57dda6ef
MN
99 ld r8,64(r4)
100 std r5,72(r3)
57dda6ef 101 std r6,80(r3)
63e6c5b8 102 ld r9,72(r4)
57dda6ef
MN
103 ld r10,80(r4)
104 std r7,88(r3)
57dda6ef 105 std r8,96(r3)
63e6c5b8 106 ld r11,88(r4)
57dda6ef
MN
107 ld r12,96(r4)
108 std r9,104(r3)
109 std r10,112(r3)
110 std r11,120(r3)
111 std r12,128(r3)
14cf11af 112 blr