1*1da177e4SLinus Torvalds/* 2*1da177e4SLinus Torvalds * This file is subject to the terms and conditions of the GNU General Public 3*1da177e4SLinus Torvalds * License. See the file "COPYING" in the main directory of this archive 4*1da177e4SLinus Torvalds * for more details. 5*1da177e4SLinus Torvalds * 6*1da177e4SLinus Torvalds * Copyright (C) 1999 Ralf Baechle 7*1da177e4SLinus Torvalds * Copyright (C) 1999 Silicon Graphics, Inc. 8*1da177e4SLinus Torvalds */ 9*1da177e4SLinus Torvalds#include <asm/mipsregs.h> 10*1da177e4SLinus Torvalds#include <asm/page.h> 11*1da177e4SLinus Torvalds#include <asm/regdef.h> 12*1da177e4SLinus Torvalds#include <asm/stackframe.h> 13*1da177e4SLinus Torvalds 14*1da177e4SLinus Torvalds .macro tlb_do_page_fault, write 15*1da177e4SLinus Torvalds NESTED(tlb_do_page_fault_\write, PT_SIZE, sp) 16*1da177e4SLinus Torvalds SAVE_ALL 17*1da177e4SLinus Torvalds MFC0 a2, CP0_BADVADDR 18*1da177e4SLinus Torvalds KMODE 19*1da177e4SLinus Torvalds move a0, sp 20*1da177e4SLinus Torvalds REG_S a2, PT_BVADDR(sp) 21*1da177e4SLinus Torvalds li a1, \write 22*1da177e4SLinus Torvalds jal do_page_fault 23*1da177e4SLinus Torvalds j ret_from_exception 24*1da177e4SLinus Torvalds END(tlb_do_page_fault_\write) 25*1da177e4SLinus Torvalds .endm 26*1da177e4SLinus Torvalds 27*1da177e4SLinus Torvalds tlb_do_page_fault 0 28*1da177e4SLinus Torvalds tlb_do_page_fault 1 29