r4k_tlb_glue.S
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  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. #define __ASSEMBLY__
  10. #include <linux/init.h>
  11. #include <asm/mipsregs.h>
  12. #include <asm/regdef.h>
  13. #include <asm/stackframe.h>
  14. .macro __BUILD_cli
  15. CLI
  16. .endm
  17. .macro __BUILD_sti
  18. STI
  19. .endm
  20. .macro tlb_handler name interruptible writebit
  21. NESTED(__name, PT_SIZE, sp)
  22. SAVE_ALL
  23. #if DEBUG_MIPS64
  24. jal dodebug2
  25. ld $4, PT_R4(sp)
  26. ld $5, PT_R5(sp)
  27. ld $6, PT_R6(sp)
  28. ld $7, PT_R7(sp)
  29. ld $2, PT_R2(sp)
  30. #endif
  31. dmfc0 a2, CP0_BADVADDR
  32. __BUILD_interruptible
  33. li a1, writebit
  34. sd a2, PT_BVADDR(sp)
  35. move a0, sp
  36. jal do_page_fault
  37. j ret_from_sys_call
  38. END(__name)
  39. .endm
  40. tlb_handler xtlb_mod sti 1
  41. tlb_handler xtlb_tlbl sti 0
  42. tlb_handler xtlb_tlbs sti 1