162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 362306a36Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 462306a36Sopenharmony_ci * for more details. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 1999 Ralf Baechle 762306a36Sopenharmony_ci * Copyright (C) 1999 Silicon Graphics, Inc. 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci#include <asm/mipsregs.h> 1062306a36Sopenharmony_ci#include <asm/regdef.h> 1162306a36Sopenharmony_ci#include <asm/stackframe.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci .macro tlb_do_page_fault, write 1462306a36Sopenharmony_ci NESTED(tlb_do_page_fault_\write, PT_SIZE, sp) 1562306a36Sopenharmony_ci .cfi_signal_frame 1662306a36Sopenharmony_ci SAVE_ALL docfi=1 1762306a36Sopenharmony_ci MFC0 a2, CP0_BADVADDR 1862306a36Sopenharmony_ci KMODE 1962306a36Sopenharmony_ci move a0, sp 2062306a36Sopenharmony_ci REG_S a2, PT_BVADDR(sp) 2162306a36Sopenharmony_ci li a1, \write 2262306a36Sopenharmony_ci jal do_page_fault 2362306a36Sopenharmony_ci j ret_from_exception 2462306a36Sopenharmony_ci END(tlb_do_page_fault_\write) 2562306a36Sopenharmony_ci .endm 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci tlb_do_page_fault 0 2862306a36Sopenharmony_ci tlb_do_page_fault 1 29