You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
peari9jp6/src/arch/x86_64/boot/trap.asm

1328 lines
16 KiB

# handler
section .text
vector0:
push 0
push 0
jmp __alltraps
vector1:
push 0
push 1
jmp __alltraps
vector2:
push 0
push 2
jmp __alltraps
vector3:
push 0
push 3
jmp __alltraps
vector4:
push 0
push 4
jmp __alltraps
vector5:
push 0
push 5
jmp __alltraps
vector6:
push 0
push 6
jmp __alltraps
vector7:
push 0
push 7
jmp __alltraps
vector8:
push 8
jmp __alltraps
vector9:
push 9
jmp __alltraps
vector10:
push 10
jmp __alltraps
vector11:
push 11
jmp __alltraps
vector12:
push 12
jmp __alltraps
vector13:
push 13
jmp __alltraps
vector14:
push 14
jmp __alltraps
vector15:
push 0
push 15
jmp __alltraps
vector16:
push 0
push 16
jmp __alltraps
vector17:
push 17
jmp __alltraps
vector18:
push 0
push 18
jmp __alltraps
vector19:
push 0
push 19
jmp __alltraps
vector20:
push 0
push 20
jmp __alltraps
vector21:
push 0
push 21
jmp __alltraps
vector22:
push 0
push 22
jmp __alltraps
vector23:
push 0
push 23
jmp __alltraps
vector24:
push 0
push 24
jmp __alltraps
vector25:
push 0
push 25
jmp __alltraps
vector26:
push 0
push 26
jmp __alltraps
vector27:
push 0
push 27
jmp __alltraps
vector28:
push 0
push 28
jmp __alltraps
vector29:
push 0
push 29
jmp __alltraps
vector30:
push 0
push 30
jmp __alltraps
vector31:
push 0
push 31
jmp __alltraps
vector32:
push 0
push 32
jmp __alltraps
vector33:
push 0
push 33
jmp __alltraps
vector34:
push 0
push 34
jmp __alltraps
vector35:
push 0
push 35
jmp __alltraps
vector36:
push 0
push 36
jmp __alltraps
vector37:
push 0
push 37
jmp __alltraps
vector38:
push 0
push 38
jmp __alltraps
vector39:
push 0
push 39
jmp __alltraps
vector40:
push 0
push 40
jmp __alltraps
vector41:
push 0
push 41
jmp __alltraps
vector42:
push 0
push 42
jmp __alltraps
vector43:
push 0
push 43
jmp __alltraps
vector44:
push 0
push 44
jmp __alltraps
vector45:
push 0
push 45
jmp __alltraps
vector46:
push 0
push 46
jmp __alltraps
vector47:
push 0
push 47
jmp __alltraps
vector48:
push 0
push 48
jmp __alltraps
vector49:
push 0
push 49
jmp __alltraps
vector50:
push 0
push 50
jmp __alltraps
vector51:
push 0
push 51
jmp __alltraps
vector52:
push 0
push 52
jmp __alltraps
vector53:
push 0
push 53
jmp __alltraps
vector54:
push 0
push 54
jmp __alltraps
vector55:
push 0
push 55
jmp __alltraps
vector56:
push 0
push 56
jmp __alltraps
vector57:
push 0
push 57
jmp __alltraps
vector58:
push 0
push 58
jmp __alltraps
vector59:
push 0
push 59
jmp __alltraps
vector60:
push 0
push 60
jmp __alltraps
vector61:
push 0
push 61
jmp __alltraps
vector62:
push 0
push 62
jmp __alltraps
vector63:
push 0
push 63
jmp __alltraps
vector64:
push 0
push 64
jmp __alltraps
vector65:
push 0
push 65
jmp __alltraps
vector66:
push 0
push 66
jmp __alltraps
vector67:
push 0
push 67
jmp __alltraps
vector68:
push 0
push 68
jmp __alltraps
vector69:
push 0
push 69
jmp __alltraps
vector70:
push 0
push 70
jmp __alltraps
vector71:
push 0
push 71
jmp __alltraps
vector72:
push 0
push 72
jmp __alltraps
vector73:
push 0
push 73
jmp __alltraps
vector74:
push 0
push 74
jmp __alltraps
vector75:
push 0
push 75
jmp __alltraps
vector76:
push 0
push 76
jmp __alltraps
vector77:
push 0
push 77
jmp __alltraps
vector78:
push 0
push 78
jmp __alltraps
vector79:
push 0
push 79
jmp __alltraps
vector80:
push 0
push 80
jmp __alltraps
vector81:
push 0
push 81
jmp __alltraps
vector82:
push 0
push 82
jmp __alltraps
vector83:
push 0
push 83
jmp __alltraps
vector84:
push 0
push 84
jmp __alltraps
vector85:
push 0
push 85
jmp __alltraps
vector86:
push 0
push 86
jmp __alltraps
vector87:
push 0
push 87
jmp __alltraps
vector88:
push 0
push 88
jmp __alltraps
vector89:
push 0
push 89
jmp __alltraps
vector90:
push 0
push 90
jmp __alltraps
vector91:
push 0
push 91
jmp __alltraps
vector92:
push 0
push 92
jmp __alltraps
vector93:
push 0
push 93
jmp __alltraps
vector94:
push 0
push 94
jmp __alltraps
vector95:
push 0
push 95
jmp __alltraps
vector96:
push 0
push 96
jmp __alltraps
vector97:
push 0
push 97
jmp __alltraps
vector98:
push 0
push 98
jmp __alltraps
vector99:
push 0
push 99
jmp __alltraps
vector100:
push 0
push 100
jmp __alltraps
vector101:
push 0
push 101
jmp __alltraps
vector102:
push 0
push 102
jmp __alltraps
vector103:
push 0
push 103
jmp __alltraps
vector104:
push 0
push 104
jmp __alltraps
vector105:
push 0
push 105
jmp __alltraps
vector106:
push 0
push 106
jmp __alltraps
vector107:
push 0
push 107
jmp __alltraps
vector108:
push 0
push 108
jmp __alltraps
vector109:
push 0
push 109
jmp __alltraps
vector110:
push 0
push 110
jmp __alltraps
vector111:
push 0
push 111
jmp __alltraps
vector112:
push 0
push 112
jmp __alltraps
vector113:
push 0
push 113
jmp __alltraps
vector114:
push 0
push 114
jmp __alltraps
vector115:
push 0
push 115
jmp __alltraps
vector116:
push 0
push 116
jmp __alltraps
vector117:
push 0
push 117
jmp __alltraps
vector118:
push 0
push 118
jmp __alltraps
vector119:
push 0
push 119
jmp __alltraps
vector120:
push 0
push 120
jmp __alltraps
vector121:
push 0
push 121
jmp __alltraps
vector122:
push 0
push 122
jmp __alltraps
vector123:
push 0
push 123
jmp __alltraps
vector124:
push 0
push 124
jmp __alltraps
vector125:
push 0
push 125
jmp __alltraps
vector126:
push 0
push 126
jmp __alltraps
vector127:
push 0
push 127
jmp __alltraps
vector128:
push 0
push 128
jmp __alltraps
vector129:
push 0
push 129
jmp __alltraps
vector130:
push 0
push 130
jmp __alltraps
vector131:
push 0
push 131
jmp __alltraps
vector132:
push 0
push 132
jmp __alltraps
vector133:
push 0
push 133
jmp __alltraps
vector134:
push 0
push 134
jmp __alltraps
vector135:
push 0
push 135
jmp __alltraps
vector136:
push 0
push 136
jmp __alltraps
vector137:
push 0
push 137
jmp __alltraps
vector138:
push 0
push 138
jmp __alltraps
vector139:
push 0
push 139
jmp __alltraps
vector140:
push 0
push 140
jmp __alltraps
vector141:
push 0
push 141
jmp __alltraps
vector142:
push 0
push 142
jmp __alltraps
vector143:
push 0
push 143
jmp __alltraps
vector144:
push 0
push 144
jmp __alltraps
vector145:
push 0
push 145
jmp __alltraps
vector146:
push 0
push 146
jmp __alltraps
vector147:
push 0
push 147
jmp __alltraps
vector148:
push 0
push 148
jmp __alltraps
vector149:
push 0
push 149
jmp __alltraps
vector150:
push 0
push 150
jmp __alltraps
vector151:
push 0
push 151
jmp __alltraps
vector152:
push 0
push 152
jmp __alltraps
vector153:
push 0
push 153
jmp __alltraps
vector154:
push 0
push 154
jmp __alltraps
vector155:
push 0
push 155
jmp __alltraps
vector156:
push 0
push 156
jmp __alltraps
vector157:
push 0
push 157
jmp __alltraps
vector158:
push 0
push 158
jmp __alltraps
vector159:
push 0
push 159
jmp __alltraps
vector160:
push 0
push 160
jmp __alltraps
vector161:
push 0
push 161
jmp __alltraps
vector162:
push 0
push 162
jmp __alltraps
vector163:
push 0
push 163
jmp __alltraps
vector164:
push 0
push 164
jmp __alltraps
vector165:
push 0
push 165
jmp __alltraps
vector166:
push 0
push 166
jmp __alltraps
vector167:
push 0
push 167
jmp __alltraps
vector168:
push 0
push 168
jmp __alltraps
vector169:
push 0
push 169
jmp __alltraps
vector170:
push 0
push 170
jmp __alltraps
vector171:
push 0
push 171
jmp __alltraps
vector172:
push 0
push 172
jmp __alltraps
vector173:
push 0
push 173
jmp __alltraps
vector174:
push 0
push 174
jmp __alltraps
vector175:
push 0
push 175
jmp __alltraps
vector176:
push 0
push 176
jmp __alltraps
vector177:
push 0
push 177
jmp __alltraps
vector178:
push 0
push 178
jmp __alltraps
vector179:
push 0
push 179
jmp __alltraps
vector180:
push 0
push 180
jmp __alltraps
vector181:
push 0
push 181
jmp __alltraps
vector182:
push 0
push 182
jmp __alltraps
vector183:
push 0
push 183
jmp __alltraps
vector184:
push 0
push 184
jmp __alltraps
vector185:
push 0
push 185
jmp __alltraps
vector186:
push 0
push 186
jmp __alltraps
vector187:
push 0
push 187
jmp __alltraps
vector188:
push 0
push 188
jmp __alltraps
vector189:
push 0
push 189
jmp __alltraps
vector190:
push 0
push 190
jmp __alltraps
vector191:
push 0
push 191
jmp __alltraps
vector192:
push 0
push 192
jmp __alltraps
vector193:
push 0
push 193
jmp __alltraps
vector194:
push 0
push 194
jmp __alltraps
vector195:
push 0
push 195
jmp __alltraps
vector196:
push 0
push 196
jmp __alltraps
vector197:
push 0
push 197
jmp __alltraps
vector198:
push 0
push 198
jmp __alltraps
vector199:
push 0
push 199
jmp __alltraps
vector200:
push 0
push 200
jmp __alltraps
vector201:
push 0
push 201
jmp __alltraps
vector202:
push 0
push 202
jmp __alltraps
vector203:
push 0
push 203
jmp __alltraps
vector204:
push 0
push 204
jmp __alltraps
vector205:
push 0
push 205
jmp __alltraps
vector206:
push 0
push 206
jmp __alltraps
vector207:
push 0
push 207
jmp __alltraps
vector208:
push 0
push 208
jmp __alltraps
vector209:
push 0
push 209
jmp __alltraps
vector210:
push 0
push 210
jmp __alltraps
vector211:
push 0
push 211
jmp __alltraps
vector212:
push 0
push 212
jmp __alltraps
vector213:
push 0
push 213
jmp __alltraps
vector214:
push 0
push 214
jmp __alltraps
vector215:
push 0
push 215
jmp __alltraps
vector216:
push 0
push 216
jmp __alltraps
vector217:
push 0
push 217
jmp __alltraps
vector218:
push 0
push 218
jmp __alltraps
vector219:
push 0
push 219
jmp __alltraps
vector220:
push 0
push 220
jmp __alltraps
vector221:
push 0
push 221
jmp __alltraps
vector222:
push 0
push 222
jmp __alltraps
vector223:
push 0
push 223
jmp __alltraps
vector224:
push 0
push 224
jmp __alltraps
vector225:
push 0
push 225
jmp __alltraps
vector226:
push 0
push 226
jmp __alltraps
vector227:
push 0
push 227
jmp __alltraps
vector228:
push 0
push 228
jmp __alltraps
vector229:
push 0
push 229
jmp __alltraps
vector230:
push 0
push 230
jmp __alltraps
vector231:
push 0
push 231
jmp __alltraps
vector232:
push 0
push 232
jmp __alltraps
vector233:
push 0
push 233
jmp __alltraps
vector234:
push 0
push 234
jmp __alltraps
vector235:
push 0
push 235
jmp __alltraps
vector236:
push 0
push 236
jmp __alltraps
vector237:
push 0
push 237
jmp __alltraps
vector238:
push 0
push 238
jmp __alltraps
vector239:
push 0
push 239
jmp __alltraps
vector240:
push 0
push 240
jmp __alltraps
vector241:
push 0
push 241
jmp __alltraps
vector242:
push 0
push 242
jmp __alltraps
vector243:
push 0
push 243
jmp __alltraps
vector244:
push 0
push 244
jmp __alltraps
vector245:
push 0
push 245
jmp __alltraps
vector246:
push 0
push 246
jmp __alltraps
vector247:
push 0
push 247
jmp __alltraps
vector248:
push 0
push 248
jmp __alltraps
vector249:
push 0
push 249
jmp __alltraps
vector250:
push 0
push 250
jmp __alltraps
vector251:
push 0
push 251
jmp __alltraps
vector252:
push 0
push 252
jmp __alltraps
vector253:
push 0
push 253
jmp __alltraps
vector254:
push 0
push 254
jmp __alltraps
vector255:
push 0
push 255
jmp __alltraps
__alltraps:
push rax
push rcx
push rdx
push rdi
push rsi
push r8
push r9
push r10
push r11
push rbx
push rbp
push r12
push r13
push r14
push r15
mov rdi, rsp
; extern fn rust_trap(rsp) -> rsp
extern rust_trap
call rust_trap
mov rsp, rax
pop r15
pop r14
pop r13
pop r12
pop rbp
pop rbx
pop r11
pop r10
pop r9
pop r8
pop rsi
pop rdi
pop rdx
pop rcx
pop rax
; pop trap_num, error_code
add rsp, 16
iretq
# vector table
.rodata
global __vectors
__vectors:
dq vector0
dq vector1
dq vector2
dq vector3
dq vector4
dq vector5
dq vector6
dq vector7
dq vector8
dq vector9
dq vector10
dq vector11
dq vector12
dq vector13
dq vector14
dq vector15
dq vector16
dq vector17
dq vector18
dq vector19
dq vector20
dq vector21
dq vector22
dq vector23
dq vector24
dq vector25
dq vector26
dq vector27
dq vector28
dq vector29
dq vector30
dq vector31
dq vector32
dq vector33
dq vector34
dq vector35
dq vector36
dq vector37
dq vector38
dq vector39
dq vector40
dq vector41
dq vector42
dq vector43
dq vector44
dq vector45
dq vector46
dq vector47
dq vector48
dq vector49
dq vector50
dq vector51
dq vector52
dq vector53
dq vector54
dq vector55
dq vector56
dq vector57
dq vector58
dq vector59
dq vector60
dq vector61
dq vector62
dq vector63
dq vector64
dq vector65
dq vector66
dq vector67
dq vector68
dq vector69
dq vector70
dq vector71
dq vector72
dq vector73
dq vector74
dq vector75
dq vector76
dq vector77
dq vector78
dq vector79
dq vector80
dq vector81
dq vector82
dq vector83
dq vector84
dq vector85
dq vector86
dq vector87
dq vector88
dq vector89
dq vector90
dq vector91
dq vector92
dq vector93
dq vector94
dq vector95
dq vector96
dq vector97
dq vector98
dq vector99
dq vector100
dq vector101
dq vector102
dq vector103
dq vector104
dq vector105
dq vector106
dq vector107
dq vector108
dq vector109
dq vector110
dq vector111
dq vector112
dq vector113
dq vector114
dq vector115
dq vector116
dq vector117
dq vector118
dq vector119
dq vector120
dq vector121
dq vector122
dq vector123
dq vector124
dq vector125
dq vector126
dq vector127
dq vector128
dq vector129
dq vector130
dq vector131
dq vector132
dq vector133
dq vector134
dq vector135
dq vector136
dq vector137
dq vector138
dq vector139
dq vector140
dq vector141
dq vector142
dq vector143
dq vector144
dq vector145
dq vector146
dq vector147
dq vector148
dq vector149
dq vector150
dq vector151
dq vector152
dq vector153
dq vector154
dq vector155
dq vector156
dq vector157
dq vector158
dq vector159
dq vector160
dq vector161
dq vector162
dq vector163
dq vector164
dq vector165
dq vector166
dq vector167
dq vector168
dq vector169
dq vector170
dq vector171
dq vector172
dq vector173
dq vector174
dq vector175
dq vector176
dq vector177
dq vector178
dq vector179
dq vector180
dq vector181
dq vector182
dq vector183
dq vector184
dq vector185
dq vector186
dq vector187
dq vector188
dq vector189
dq vector190
dq vector191
dq vector192
dq vector193
dq vector194
dq vector195
dq vector196
dq vector197
dq vector198
dq vector199
dq vector200
dq vector201
dq vector202
dq vector203
dq vector204
dq vector205
dq vector206
dq vector207
dq vector208
dq vector209
dq vector210
dq vector211
dq vector212
dq vector213
dq vector214
dq vector215
dq vector216
dq vector217
dq vector218
dq vector219
dq vector220
dq vector221
dq vector222
dq vector223
dq vector224
dq vector225
dq vector226
dq vector227
dq vector228
dq vector229
dq vector230
dq vector231
dq vector232
dq vector233
dq vector234
dq vector235
dq vector236
dq vector237
dq vector238
dq vector239
dq vector240
dq vector241
dq vector242
dq vector243
dq vector244
dq vector245
dq vector246
dq vector247
dq vector248
dq vector249
dq vector250
dq vector251
dq vector252
dq vector253
dq vector254
dq vector255