1/*	$OpenBSD: pagezero.S,v 1.2 2021/05/12 01:20:52 jsg Exp $	*/
2
3/*
4 * Copyright (c) 2020 Brian Bamsch <bbamsch@google.com>
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19#include <machine/asm.h>
20#include <machine/param.h>
21
22#include "assym.h"
23
24ENTRY(pagezero)
25	RETGUARD_SETUP(pagezero, t6)
26	li	a1, PAGE_SIZE
27	add	a1, a0, a1
28
291:	sd	x0, 0(a0)
30	sd	x0, 8(a0)
31	sd	x0, 16(a0)
32	sd	x0, 24(a0)
33	sd	x0, 32(a0)
34	sd	x0, 40(a0)
35	sd	x0, 48(a0)
36	sd	x0, 56(a0)
37	addi	a0, a0, 64
38	blt	a0, a1, 1b
39
40	RETGUARD_CHECK(pagezero, t6)
41	ret
42END(pagezero)
43