1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* NG4copy_page.S: Niagara-4 optimized copy page.
4 * Copyright (C) 2012 (davem@davemloft.net)
13 .register %g2, #scratch
14 .register %g3, #scratch
16 .globl NG4copy_user_page
17 NG4copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */
18 prefetch [%o1 + 0x000], #n_reads_strong
19 prefetch [%o1 + 0x040], #n_reads_strong
20 prefetch [%o1 + 0x080], #n_reads_strong
21 prefetch [%o1 + 0x0c0], #n_reads_strong
23 prefetch [%o1 + 0x100], #n_reads_strong
24 prefetch [%o1 + 0x140], #n_reads_strong
25 prefetch [%o1 + 0x180], #n_reads_strong
26 prefetch [%o1 + 0x1c0], #n_reads_strong
34 stxa %o2, [%o0] ASI_ST_BLKINIT_MRU_P
37 stxa %o3, [%o0] ASI_ST_BLKINIT_MRU_P
40 stxa %o4, [%o0] ASI_ST_BLKINIT_MRU_P
44 stxa %o5, [%o0] ASI_ST_BLKINIT_MRU_P
46 stxa %g1, [%o0] ASI_ST_BLKINIT_MRU_P
48 stxa %g2, [%o0] ASI_ST_BLKINIT_MRU_P
50 stxa %g3, [%o0] ASI_ST_BLKINIT_MRU_P
52 stxa %o2, [%o0] ASI_ST_BLKINIT_MRU_P
55 prefetch [%o1 + 0x200], #n_reads_strong
57 membar #StoreLoad | #StoreStore
58 .size NG4copy_user_page,.-NG4copy_user_page