ex.S 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * arch/sh/kernel/cpu/sh3/ex.S
  3. *
  4. * The SH-3 and SH-4 exception vector table.
  5. * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
  6. * Copyright (C) 2003 - 2008 Paul Mundt
  7. *
  8. * This file is subject to the terms and conditions of the GNU General Public
  9. * License. See the file "COPYING" in the main directory of this archive
  10. * for more details.
  11. */
  12. #include <linux/linkage.h>
  13. #if !defined(CONFIG_MMU)
  14. #define tlb_miss_load exception_error
  15. #define tlb_miss_store exception_error
  16. #define initial_page_write exception_error
  17. #define tlb_protection_violation_load exception_error
  18. #define tlb_protection_violation_store exception_error
  19. #define address_error_load exception_error
  20. #define address_error_store exception_error
  21. #endif
  22. #if !defined(CONFIG_SH_FPU)
  23. #define fpu_error_trap_handler exception_error
  24. #endif
  25. #if !defined(CONFIG_KGDB)
  26. #define kgdb_handle_exception exception_error
  27. #endif
  28. .align 2
  29. .data
  30. ENTRY(exception_handling_table)
  31. .long exception_error /* 000 */
  32. .long exception_error
  33. .long tlb_miss_load /* 040 */
  34. .long tlb_miss_store
  35. .long initial_page_write
  36. .long tlb_protection_violation_load
  37. .long tlb_protection_violation_store
  38. .long address_error_load
  39. .long address_error_store /* 100 */
  40. .long fpu_error_trap_handler /* 120 */
  41. .long exception_error /* 140 */
  42. .long system_call ! Unconditional Trap /* 160 */
  43. .long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
  44. .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
  45. .long nmi_trap_handler /* 1C0 */ ! Allow trap to debugger
  46. .long breakpoint_trap_handler /* 1E0 */
  47. /*
  48. * Pad the remainder of the table out, exceptions residing in far
  49. * away offsets can be manually inserted in to their appropriate
  50. * location via set_exception_table_{evt,vec}().
  51. */
  52. .balign 4096,0,4096