Revision 3f20e1dd target-i386/helper.c
b/target-i386/helper.c | ||
---|---|---|
622 | 622 |
raise_exception_err(EXCP0B_NOSEG, intno * 8 + 2); |
623 | 623 |
switch_tss(intno * 8, e1, e2, SWITCH_TSS_CALL, old_eip); |
624 | 624 |
if (has_error_code) { |
625 |
int mask; |
|
625 |
int mask, type;
|
|
626 | 626 |
/* push the error code */ |
627 |
shift = (env->segs[R_CS].flags >> DESC_B_SHIFT) & 1; |
|
627 |
type = (env->tr.flags >> DESC_TYPE_SHIFT) & 0xf; |
|
628 |
shift = type >> 3; |
|
628 | 629 |
if (env->segs[R_SS].flags & DESC_B_MASK) |
629 | 630 |
mask = 0xffffffff; |
630 | 631 |
else |
Also available in: Unified diff