^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * arch/alpha/lib/ev6-clear_page.S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Zero an entire page.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <asm/export.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) .text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) .align 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) .global clear_page
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) .ent clear_page
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) clear_page:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) .prologue 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) lda $0,128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) lda $1,125
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) addq $16,64,$2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) addq $16,128,$3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) addq $16,192,$17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) wh64 ($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) wh64 ($2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) wh64 ($3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 1: wh64 ($17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) stq $31,0($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) subq $0,1,$0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) subq $1,1,$1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) stq $31,8($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) stq $31,16($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) addq $17,64,$2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) stq $31,24($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) stq $31,32($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) cmovgt $1,$2,$17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) stq $31,40($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) stq $31,48($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) stq $31,56($16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) addq $16,64,$16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) bne $0,1b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) ret
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) .end clear_page
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) EXPORT_SYMBOL(clear_page)