Guest User

Untitled

a guest
Jul 17th, 2024
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .macro common_interrupt_stub
  2.     push  %r11
  3.     push  %r10
  4.     push  %r9
  5.     push  %r8
  6.     push  %rdx
  7.     push  %rcx
  8.     push  %rax
  9.     cld
  10.     call interrupt_handler
  11.     pop  %rax
  12.     pop  %rcx
  13.     pop  %rdx
  14.     pop  %r8
  15.     pop  %r9
  16.     pop  %r10
  17.     pop  %r11
  18. .endm
  19.  
  20. .macro interrupt_stub idx
  21. .global interrupt_stub_\idx
  22. .align 16
  23. interrupt_stub_\idx:
  24.     push %rdi
  25.     push %rsi
  26.     mov  $\idx,%edi
  27.     xor  %esi,%esi
  28.     common_interrupt_stub
  29.     pop  %rsi
  30.     pop  %rdi
  31.     iretq
  32. .endm
  33.  
  34. .macro exception_stub idx
  35. .global exception_stub_\idx
  36. .align 16
  37. exception_stub_\idx:
  38.     push %rax   # Align the stack
  39.     push %rdi
  40.     push %rsi
  41.     mov  $\idx,%edi
  42.     mov  0x18(%rsp),%esi
  43.     common_interrupt_stub
  44.     pop  %rsi
  45.     pop  %rdi
  46.     add  $0x10,%rsp # Pop the error code
  47.                     # (plus the 8 bytes we pushed on entry)
  48.     iretq
  49. .endm
  50.  
  51. INTERRUPT_STUB 0
  52. INTERRUPT_STUB 1
  53. INTERRUPT_STUB 2
  54. INTERRUPT_STUB 3
  55. INTERRUPT_STUB 4
  56. INTERRUPT_STUB 5
  57. INTERRUPT_STUB 6
  58. INTERRUPT_STUB 7
  59. EXCEPTION_STUB 8
  60. INTERRUPT_STUB 9
  61. EXCEPTION_STUB 10
  62. EXCEPTION_STUB 11
  63. EXCEPTION_STUB 12
  64. EXCEPTION_STUB 13
  65. EXCEPTION_STUB 14
  66. INTERRUPT_STUB 15
  67. INTERRUPT_STUB 16
  68. EXCEPTION_STUB 17
  69. INTERRUPT_STUB 18
  70. INTERRUPT_STUB 19
  71. INTERRUPT_STUB 20
  72. EXCEPTION_STUB 21
  73. INTERRUPT_STUB 22
  74. INTERRUPT_STUB 23
  75. INTERRUPT_STUB 24
  76. INTERRUPT_STUB 25
  77. INTERRUPT_STUB 26
  78. INTERRUPT_STUB 27
  79. INTERRUPT_STUB 28
  80. EXCEPTION_STUB 29
  81. EXCEPTION_STUB 30
  82. INTERRUPT_STUB 31
  83. INTERRUPT_STUB 32
  84. INTERRUPT_STUB 33
  85. INTERRUPT_STUB 34
  86. INTERRUPT_STUB 35
  87. INTERRUPT_STUB 36
  88. INTERRUPT_STUB 37
  89. INTERRUPT_STUB 38
  90. INTERRUPT_STUB 39
  91. INTERRUPT_STUB 40
  92. INTERRUPT_STUB 41
  93. INTERRUPT_STUB 42
  94. INTERRUPT_STUB 43
  95. INTERRUPT_STUB 44
  96. INTERRUPT_STUB 45
  97. INTERRUPT_STUB 46
  98. INTERRUPT_STUB 47
  99. INTERRUPT_STUB 48
  100. INTERRUPT_STUB 49
  101. INTERRUPT_STUB 50
  102. INTERRUPT_STUB 51
  103. INTERRUPT_STUB 52
  104. INTERRUPT_STUB 53
  105. INTERRUPT_STUB 54
  106. INTERRUPT_STUB 55
  107. INTERRUPT_STUB 56
  108. INTERRUPT_STUB 57
  109. INTERRUPT_STUB 58
  110. INTERRUPT_STUB 59
  111. INTERRUPT_STUB 60
  112. INTERRUPT_STUB 61
  113. INTERRUPT_STUB 62
  114. INTERRUPT_STUB 63
  115. INTERRUPT_STUB 64
  116. INTERRUPT_STUB 65
  117. INTERRUPT_STUB 66
  118. INTERRUPT_STUB 67
  119. INTERRUPT_STUB 68
  120. INTERRUPT_STUB 69
  121. INTERRUPT_STUB 70
  122. INTERRUPT_STUB 71
  123. INTERRUPT_STUB 72
  124. INTERRUPT_STUB 73
  125. INTERRUPT_STUB 74
  126. INTERRUPT_STUB 75
  127. INTERRUPT_STUB 76
  128. INTERRUPT_STUB 77
  129. INTERRUPT_STUB 78
  130. INTERRUPT_STUB 79
  131. INTERRUPT_STUB 80
  132. INTERRUPT_STUB 81
  133. INTERRUPT_STUB 82
  134. INTERRUPT_STUB 83
  135. INTERRUPT_STUB 84
  136. INTERRUPT_STUB 85
  137. INTERRUPT_STUB 86
  138. INTERRUPT_STUB 87
  139. INTERRUPT_STUB 88
  140. INTERRUPT_STUB 89
  141. INTERRUPT_STUB 90
  142. INTERRUPT_STUB 91
  143. INTERRUPT_STUB 92
  144. INTERRUPT_STUB 93
  145. INTERRUPT_STUB 94
  146. INTERRUPT_STUB 95
  147. INTERRUPT_STUB 96
  148. INTERRUPT_STUB 97
  149. INTERRUPT_STUB 98
  150. INTERRUPT_STUB 99
  151. INTERRUPT_STUB 100
  152. INTERRUPT_STUB 101
  153. INTERRUPT_STUB 102
  154. INTERRUPT_STUB 103
  155. INTERRUPT_STUB 104
  156. INTERRUPT_STUB 105
  157. INTERRUPT_STUB 106
  158. INTERRUPT_STUB 107
  159. INTERRUPT_STUB 108
  160. INTERRUPT_STUB 109
  161. INTERRUPT_STUB 110
  162. INTERRUPT_STUB 111
  163. INTERRUPT_STUB 112
  164. INTERRUPT_STUB 113
  165. INTERRUPT_STUB 114
  166. INTERRUPT_STUB 115
  167. INTERRUPT_STUB 116
  168. INTERRUPT_STUB 117
  169. INTERRUPT_STUB 118
  170. INTERRUPT_STUB 119
  171. INTERRUPT_STUB 120
  172. INTERRUPT_STUB 121
  173. INTERRUPT_STUB 122
  174. INTERRUPT_STUB 123
  175. INTERRUPT_STUB 124
  176. INTERRUPT_STUB 125
  177. INTERRUPT_STUB 126
  178. INTERRUPT_STUB 127
  179. INTERRUPT_STUB 128
  180. INTERRUPT_STUB 129
  181. INTERRUPT_STUB 130
  182. INTERRUPT_STUB 131
  183. INTERRUPT_STUB 132
  184. INTERRUPT_STUB 133
  185. INTERRUPT_STUB 134
  186. INTERRUPT_STUB 135
  187. INTERRUPT_STUB 136
  188. INTERRUPT_STUB 137
  189. INTERRUPT_STUB 138
  190. INTERRUPT_STUB 139
  191. INTERRUPT_STUB 140
  192. INTERRUPT_STUB 141
  193. INTERRUPT_STUB 142
  194. INTERRUPT_STUB 143
  195. INTERRUPT_STUB 144
  196. INTERRUPT_STUB 145
  197. INTERRUPT_STUB 146
  198. INTERRUPT_STUB 147
  199. INTERRUPT_STUB 148
  200. INTERRUPT_STUB 149
  201. INTERRUPT_STUB 150
  202. INTERRUPT_STUB 151
  203. INTERRUPT_STUB 152
  204. INTERRUPT_STUB 153
  205. INTERRUPT_STUB 154
  206. INTERRUPT_STUB 155
  207. INTERRUPT_STUB 156
  208. INTERRUPT_STUB 157
  209. INTERRUPT_STUB 158
  210. INTERRUPT_STUB 159
  211. INTERRUPT_STUB 160
  212. INTERRUPT_STUB 161
  213. INTERRUPT_STUB 162
  214. INTERRUPT_STUB 163
  215. INTERRUPT_STUB 164
  216. INTERRUPT_STUB 165
  217. INTERRUPT_STUB 166
  218. INTERRUPT_STUB 167
  219. INTERRUPT_STUB 168
  220. INTERRUPT_STUB 169
  221. INTERRUPT_STUB 170
  222. INTERRUPT_STUB 171
  223. INTERRUPT_STUB 172
  224. INTERRUPT_STUB 173
  225. INTERRUPT_STUB 174
  226. INTERRUPT_STUB 175
  227. INTERRUPT_STUB 176
  228. INTERRUPT_STUB 177
  229. INTERRUPT_STUB 178
  230. INTERRUPT_STUB 179
  231. INTERRUPT_STUB 180
  232. INTERRUPT_STUB 181
  233. INTERRUPT_STUB 182
  234. INTERRUPT_STUB 183
  235. INTERRUPT_STUB 184
  236. INTERRUPT_STUB 185
  237. INTERRUPT_STUB 186
  238. INTERRUPT_STUB 187
  239. INTERRUPT_STUB 188
  240. INTERRUPT_STUB 189
  241. INTERRUPT_STUB 190
  242. INTERRUPT_STUB 191
  243. INTERRUPT_STUB 192
  244. INTERRUPT_STUB 193
  245. INTERRUPT_STUB 194
  246. INTERRUPT_STUB 195
  247. INTERRUPT_STUB 196
  248. INTERRUPT_STUB 197
  249. INTERRUPT_STUB 198
  250. INTERRUPT_STUB 199
  251. INTERRUPT_STUB 200
  252. INTERRUPT_STUB 201
  253. INTERRUPT_STUB 202
  254. INTERRUPT_STUB 203
  255. INTERRUPT_STUB 204
  256. INTERRUPT_STUB 205
  257. INTERRUPT_STUB 206
  258. INTERRUPT_STUB 207
  259. INTERRUPT_STUB 208
  260. INTERRUPT_STUB 209
  261. INTERRUPT_STUB 210
  262. INTERRUPT_STUB 211
  263. INTERRUPT_STUB 212
  264. INTERRUPT_STUB 213
  265. INTERRUPT_STUB 214
  266. INTERRUPT_STUB 215
  267. INTERRUPT_STUB 216
  268. INTERRUPT_STUB 217
  269. INTERRUPT_STUB 218
  270. INTERRUPT_STUB 219
  271. INTERRUPT_STUB 220
  272. INTERRUPT_STUB 221
  273. INTERRUPT_STUB 222
  274. INTERRUPT_STUB 223
  275. INTERRUPT_STUB 224
  276. INTERRUPT_STUB 225
  277. INTERRUPT_STUB 226
  278. INTERRUPT_STUB 227
  279. INTERRUPT_STUB 228
  280. INTERRUPT_STUB 229
  281. INTERRUPT_STUB 230
  282. INTERRUPT_STUB 231
  283. INTERRUPT_STUB 232
  284. INTERRUPT_STUB 233
  285. INTERRUPT_STUB 234
  286. INTERRUPT_STUB 235
  287. INTERRUPT_STUB 236
  288. INTERRUPT_STUB 237
  289. INTERRUPT_STUB 238
  290. INTERRUPT_STUB 239
  291. INTERRUPT_STUB 240
  292. INTERRUPT_STUB 241
  293. INTERRUPT_STUB 242
  294. INTERRUPT_STUB 243
  295. INTERRUPT_STUB 244
  296. INTERRUPT_STUB 245
  297. INTERRUPT_STUB 246
  298. INTERRUPT_STUB 247
  299. INTERRUPT_STUB 248
  300. INTERRUPT_STUB 249
  301. INTERRUPT_STUB 250
  302. INTERRUPT_STUB 251
  303. INTERRUPT_STUB 252
  304. INTERRUPT_STUB 253
  305. INTERRUPT_STUB 254
  306. INTERRUPT_STUB 255
  307.  
Advertisement
Add Comment
Please, Sign In to add comment