irq.S 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. * (C) Copyright 2007 Michal Simek
  3. *
  4. * Michal SIMEK <monstr@monstr.eu>
  5. *
  6. * SPDX-License-Identifier: GPL-2.0+
  7. */
  8. #include <config.h>
  9. #include <asm/asm.h>
  10. .text
  11. .global _interrupt_handler
  12. _interrupt_handler:
  13. swi r2, r1, -4
  14. swi r3, r1, -8
  15. swi r4, r1, -12
  16. swi r5, r1, -16
  17. swi r6, r1, -20
  18. swi r7, r1, -24
  19. swi r8, r1, -28
  20. swi r9, r1, -32
  21. swi r10, r1, -36
  22. swi r11, r1, -40
  23. swi r12, r1, -44
  24. swi r13, r1, -48
  25. swi r14, r1, -52
  26. swi r15, r1, -56
  27. swi r16, r1, -60
  28. swi r17, r1, -64
  29. swi r18, r1, -68
  30. swi r19, r1, -72
  31. swi r20, r1, -76
  32. swi r21, r1, -80
  33. swi r22, r1, -84
  34. swi r23, r1, -88
  35. swi r24, r1, -92
  36. swi r25, r1, -96
  37. swi r26, r1, -100
  38. swi r27, r1, -104
  39. swi r28, r1, -108
  40. swi r29, r1, -112
  41. swi r30, r1, -116
  42. swi r31, r1, -120
  43. addik r1, r1, -124
  44. brlid r15, interrupt_handler
  45. nop
  46. addik r1, r1, 124
  47. lwi r31, r1, -120
  48. lwi r30, r1, -116
  49. lwi r29, r1, -112
  50. lwi r28, r1, -108
  51. lwi r27, r1, -104
  52. lwi r26, r1, -100
  53. lwi r25, r1, -96
  54. lwi r24, r1, -92
  55. lwi r23, r1, -88
  56. lwi r22, r1, -84
  57. lwi r21, r1, -80
  58. lwi r20, r1, -76
  59. lwi r19, r1, -72
  60. lwi r18, r1, -68
  61. lwi r17, r1, -64
  62. lwi r16, r1, -60
  63. lwi r15, r1, -56
  64. lwi r14, r1, -52
  65. lwi r13, r1, -48
  66. lwi r12, r1, -44
  67. lwi r11, r1, -40
  68. lwi r10, r1, -36
  69. lwi r9, r1, -32
  70. lwi r8, r1, -28
  71. lwi r7, r1, -24
  72. lwi r6, r1, -20
  73. lwi r5, r1, -16
  74. lwi r4, r1, -12
  75. lwi r3, r1, -8
  76. lwi r2, r1, -4
  77. rtid r14, 0
  78. nop
  79. .size _interrupt_handler,.-_interrupt_handler