ivor_branch_table_p0.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  2. * FILE: ivor_branch_table_p0.c
  3. *
  4. * COPYRIGHT (c) 2007-2012 Freescale Semiconductor, Inc. All rights reserved.
  5. *
  6. * DESCRIPTION: e200z4 IVOR branch table interrupts for core 0.
  7. *
  8. * Rev 1.0 Jul 6 2007 S.M. - Initial version
  9. * Translated to inline assembly to allow easy transition to VLE
  10. * Rev 1.1 Sept 2012 H.C. - add IVOR comments
  11. *
  12. * VERSION: 1.1
  13. */
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /* IVOR4 will call this handler */
  18. extern void INTC_INTCInterruptHandler(void);
  19. #pragma push
  20. #define SIXTEEN_BYTES 16
  21. #pragma section code_type ".ivor_branch_table_p0"
  22. #pragma force_active on
  23. #pragma function_align 16
  24. #pragma require_prototypes off
  25. asm void ivor_branch_table_p0(void) {
  26. nofralloc
  27. .align SIXTEEN_BYTES
  28. IVOR0trap: b IVOR0trap /* Critical Input interrupt handler */
  29. .align SIXTEEN_BYTES
  30. IVOR1trap: b IVOR1trap /* Machine check / (NMI) interrupt handler */
  31. .align SIXTEEN_BYTES
  32. IVOR2trap: b IVOR2trap /* Data Storage interrupt handler */
  33. .align SIXTEEN_BYTES
  34. IVOR3trap: b IVOR3trap /* Instruction Storage interrupt handler */
  35. .align SIXTEEN_BYTES
  36. IVOR4trap: b INTC_INTCInterruptHandler /* External Interrupt interrupt handler */
  37. .align SIXTEEN_BYTES
  38. IVOR5trap: b IVOR5trap /* Alignment interrupt handler */
  39. .align SIXTEEN_BYTES
  40. IVOR6trap: b IVOR6trap /* Program interrupt handler */
  41. .align SIXTEEN_BYTES
  42. IVOR7trap: b IVOR7trap /* Floating-point unavailable interrupt handler */
  43. .align SIXTEEN_BYTES
  44. IVOR8trap: b IVOR8trap /* System call interrupt handler */
  45. .align SIXTEEN_BYTES
  46. IVOR9trap: b IVOR9trap /* AP unavailable interrupt handler */
  47. .align SIXTEEN_BYTES
  48. IVOR10trap: b IVOR10trap /* Decrementer interrupt handler */
  49. .align SIXTEEN_BYTES
  50. IVOR11trap: b IVOR11trap /* Fixed Interval Timer interrupt handler */
  51. .align SIXTEEN_BYTES
  52. IVOR12trap: b IVOR12trap /* Watchdog Timer interrupt handler */
  53. .align SIXTEEN_BYTES
  54. IVOR13trap: b IVOR13trap /* Data TLB Error interrupt handler */
  55. .align SIXTEEN_BYTES
  56. IVOR14trap: b IVOR14trap /* Instruction TLB Error interrupt handler */
  57. .align SIXTEEN_BYTES
  58. IVOR15trap: b IVOR15trap /* Debug Interrupt */
  59. }
  60. #pragma pop
  61. #ifdef __cplusplus
  62. }
  63. #endif