ex.S 1.6 KB

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