1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun/* NG4copy_page.S: Niagara-4 optimized clear page. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2012 (davem@davemloft.net) 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <asm/asi.h> 8*4882a593Smuzhiyun#include <asm/page.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun .text 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun .register %g3, #scratch 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun .align 32 15*4882a593Smuzhiyun .globl NG4clear_page 16*4882a593Smuzhiyun .globl NG4clear_user_page 17*4882a593SmuzhiyunNG4clear_page: /* %o0=dest */ 18*4882a593SmuzhiyunNG4clear_user_page: /* %o0=dest, %o1=vaddr */ 19*4882a593Smuzhiyun set PAGE_SIZE, %g7 20*4882a593Smuzhiyun mov 0x20, %g3 21*4882a593Smuzhiyun1: stxa %g0, [%o0 + %g0] ASI_ST_BLKINIT_MRU_P 22*4882a593Smuzhiyun subcc %g7, 0x40, %g7 23*4882a593Smuzhiyun stxa %g0, [%o0 + %g3] ASI_ST_BLKINIT_MRU_P 24*4882a593Smuzhiyun bne,pt %xcc, 1b 25*4882a593Smuzhiyun add %o0, 0x40, %o0 26*4882a593Smuzhiyun membar #StoreLoad|#StoreStore 27*4882a593Smuzhiyun retl 28*4882a593Smuzhiyun nop 29*4882a593Smuzhiyun .size NG4clear_page,.-NG4clear_page 30*4882a593Smuzhiyun .size NG4clear_user_page,.-NG4clear_user_page 31