|
|
| version 1.24, 2011/12/16 09:05:42 | version 1.25, 2012/01/08 08:02:50 |
|---|---|
| Line 238 cpu_stack_push_check(UINT16 s, descripto | Line 238 cpu_stack_push_check(UINT16 s, descripto |
| len--; | len--; |
| start = sp - len; | start = sp - len; |
| limit = SEG_IS_32BIT(sdp) ? 0xffffffff : 0x0000ffff; | limit = SEG_IS_32BIT(sdp) ? 0xffffffff : 0x0000ffff; |
| VERBOSE(("cpu_stack_push_check: start=0x%08x, limit=0x%08x", start, limit)); | |
| if (SEG_IS_EXPANDDOWN_DATA(sdp)) { | if (SEG_IS_EXPANDDOWN_DATA(sdp)) { |
| /* expand-down stack */ | /* expand-down stack */ |
| VERBOSE(("cpu_stack_push_check: expand-down stack")); | |
| if (!SEG_IS_32BIT(sdp)) { | if (!SEG_IS_32BIT(sdp)) { |
| if (sp > limit) { /* [*] */ | if (sp > limit) { /* [*] */ |
| goto exc; | goto exc; |
| Line 285 cpu_stack_push_check(UINT16 s, descripto | Line 287 cpu_stack_push_check(UINT16 s, descripto |
| } | } |
| } else { | } else { |
| /* expand-up stack */ | /* expand-up stack */ |
| VERBOSE(("cpu_stack_push_check: expand-up stack")); | |
| if (sdp->u.seg.limit == limit) { | if (sdp->u.seg.limit == limit) { |
| /* | /* |
| * 32bit 16bit | * 32bit 16bit |
| Line 329 cpu_stack_push_check(UINT16 s, descripto | Line 332 cpu_stack_push_check(UINT16 s, descripto |
| exc: | exc: |
| VERBOSE(("cpu_stack_push_check: check failure.")); | VERBOSE(("cpu_stack_push_check: check failure.")); |
| VERBOSE(("s = 0x%04x, sp = 0x%08x, len = %d", s, sp, len)); | VERBOSE(("cpu_stack_push_check: selector = %04x, sp = 0x%08x, len = %d", s, sp, len + 1)); |
| #if defined(DEBUG) | #if defined(DEBUG) |
| segdesc_dump(sdp); | segdesc_dump(sdp); |
| #endif | #endif |