18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 38c2ecf20Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 48c2ecf20Sopenharmony_ci * for more details. 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Copyright (C) 1999 Ralf Baechle 78c2ecf20Sopenharmony_ci * Copyright (C) 1999 Silicon Graphics, Inc. 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci#include <asm/mipsregs.h> 108c2ecf20Sopenharmony_ci#include <asm/regdef.h> 118c2ecf20Sopenharmony_ci#include <asm/stackframe.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci .macro tlb_do_page_fault, write 148c2ecf20Sopenharmony_ci NESTED(tlb_do_page_fault_\write, PT_SIZE, sp) 158c2ecf20Sopenharmony_ci .cfi_signal_frame 168c2ecf20Sopenharmony_ci SAVE_ALL docfi=1 178c2ecf20Sopenharmony_ci MFC0 a2, CP0_BADVADDR 188c2ecf20Sopenharmony_ci KMODE 198c2ecf20Sopenharmony_ci move a0, sp 208c2ecf20Sopenharmony_ci REG_S a2, PT_BVADDR(sp) 218c2ecf20Sopenharmony_ci li a1, \write 228c2ecf20Sopenharmony_ci jal do_page_fault 238c2ecf20Sopenharmony_ci j ret_from_exception 248c2ecf20Sopenharmony_ci END(tlb_do_page_fault_\write) 258c2ecf20Sopenharmony_ci .endm 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci tlb_do_page_fault 0 288c2ecf20Sopenharmony_ci tlb_do_page_fault 1 29