summaryrefslogtreecommitdiff
path: root/xen/arch/x86/clear_page.S
blob: 5b5622cc526f0664e1e6f2deba63e5080110b5ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        .file __FILE__

#include <asm/page.h>

ENTRY(clear_page_sse2)
        mov     $PAGE_SIZE/32, %ecx
        xor     %eax,%eax

0:      movnti  %rax,   (%rdi)
        movnti  %rax,  8(%rdi)
        movnti  %rax, 16(%rdi)
        movnti  %rax, 24(%rdi)
        add     $32, %rdi
        sub     $1, %ecx
        jnz     0b

        sfence
        ret

        .type clear_page_sse2, @function
        .size clear_page_sse2, . - clear_page_sse2