Raymond Toy pushed to branch issue-262-fix-arch-skip-inst-invalid at cmucl / cmucl
Commits:
-
570d67ec
by Raymond Toy at 2024-08-22T13:17:50+00:00
1 changed file:
Changes:
| ... | ... | @@ -35,7 +35,7 @@ static const unsigned char ud1[] = {0x0f, 0xb9}; |
| 35 | 35 | * the 3rd byte of the UD1 instruction that represents the mod r/m
|
| 36 | 36 | * byte.
|
| 37 | 37 | */
|
| 38 | -#define UD1_CODE(byte) ((byte) & 0x3f)
|
|
| 38 | +#define UD1_CODE(modrm) ((modrm) & 0x3f)
|
|
| 39 | 39 | |
| 40 | 40 | /*
|
| 41 | 41 | * Set to positive value to enabled debug prints related to the sigill
|
| ... | ... | @@ -394,7 +394,7 @@ sigill_handler(HANDLER_ARGS) |
| 394 | 394 | * number is placed in the low 6-bits of the 3rd byte of the
|
| 395 | 395 | * instruction.
|
| 396 | 396 | */
|
| 397 | - trap = UD1_CODE(*(((char *)SC_PC(context)) + 2));
|
|
| 397 | + trap = UD1_CODE(*(((char *)SC_PC(context)) + sizeof(ud1)));
|
|
| 398 | 398 | |
| 399 | 399 | DPRINTF(debug_handlers, (stderr, "code = %x\n", trap));
|
| 400 | 400 |