tlbex-fault.S 666 B

1234567891011121314151617181920212223242526272829
  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/page.h>
  11. #include <asm/regdef.h>
  12. #include <asm/stackframe.h>
  13. .macro tlb_do_page_fault, write
  14. NESTED(tlb_do_page_fault_\write, PT_SIZE, sp)
  15. SAVE_ALL
  16. MFC0 a2, CP0_BADVADDR
  17. KMODE
  18. move a0, sp
  19. REG_S a2, PT_BVADDR(sp)
  20. li a1, \write
  21. PTR_LA ra, ret_from_exception
  22. j do_page_fault
  23. END(tlb_do_page_fault_\write)
  24. .endm
  25. tlb_do_page_fault 0
  26. tlb_do_page_fault 1