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