With a 16-bit operand, lgdt/lidt will load only a 24-bit base address, ignoring the high-order bits. This meant that we could fail to fully restore the GDT across a call into gPXE, if the GDT happened to be located above the 16MB mark. Not all of our lgdt/lidt instructions require a data32 prefix (for example, reloading the real-mode IDT can never require a 32-bit base address), but by adding them everywhere we will hopefully not forget the necessary ones in future.tags/v0.9.6
|
||
| 341 | 341 |
|
| 342 | 342 |
|
| 343 | 343 |
|
| 344 |
|
|
| 344 |
|
|
| 345 | 345 |
|
| 346 | 346 |
|
| 347 | 347 |
|
|
||
| 377 | 377 |
|
| 378 | 378 |
|
| 379 | 379 |
|
| 380 |
|
|
| 380 |
|
|
| 381 | 381 |
|
| 382 | 382 |
|
| 383 | 383 |
|
|
||
| 203 | 203 |
|
| 204 | 204 |
|
| 205 | 205 |
|
| 206 |
|
|
| 207 |
|
|
| 206 |
|
|
| 207 |
|
|
| 208 | 208 |
|
| 209 | 209 |
|
| 210 | 210 |
|
|
||
| 316 | 316 |
|
| 317 | 317 |
|
| 318 | 318 |
|
| 319 |
|
|
| 319 |
|
|
| 320 | 320 |
|
| 321 | 321 |
|
| 322 | 322 |
|
|
||
| 424 | 424 |
|
| 425 | 425 |
|
| 426 | 426 |
|
| 427 |
|
|
| 428 |
|
|
| 427 |
|
|
| 428 |
|
|
| 429 | 429 |
|
| 430 | 430 |
|
| 431 | 431 |
|