|
|
| version 1.26, 2012/02/05 06:16:08 | version 1.27, 2012/02/05 06:31:44 |
|---|---|
| Line 42 load_segreg(int idx, UINT16 selector, UI | Line 42 load_segreg(int idx, UINT16 selector, UI |
| if (!CPU_STAT_PM || CPU_STAT_VM86) { | if (!CPU_STAT_PM || CPU_STAT_VM86) { |
| /* real-mode or vm86 mode */ | /* real-mode or vm86 mode */ |
| *sregp = selector; | *sregp = selector; |
| segdesc_clear(&sel.desc); | |
| segdesc_set_default(idx, selector, &sel.desc); | segdesc_set_default(idx, selector, &sel.desc); |
| *sdp = sel.desc; | *sdp = sel.desc; |
| return; | return; |
| Line 62 load_segreg(int idx, UINT16 selector, UI | Line 61 load_segreg(int idx, UINT16 selector, UI |
| if ((rv != -2) || (idx == CPU_SS_INDEX)) { | if ((rv != -2) || (idx == CPU_SS_INDEX)) { |
| EXCEPTION(exc, sel.idx); | EXCEPTION(exc, sel.idx); |
| } | } |
| /* null selector */ | |
| *sregp = sel.selector; | *sregp = sel.selector; |
| segdesc_clear(sdp); | memset(sdp, 0, sizeof(*sdp)); |
| return; | return; |
| } | } |
| Line 203 load_descriptor(descriptor_t *sdp, UINT3 | Line 203 load_descriptor(descriptor_t *sdp, UINT3 |
| h = cpu_kmemoryread_d(addr + 4); | h = cpu_kmemoryread_d(addr + 4); |
| VERBOSE(("descriptor value = 0x%08x%08x", h, l)); | VERBOSE(("descriptor value = 0x%08x%08x", h, l)); |
| segdesc_clear(sdp); | memset(sdp, 0, sizeof(*sdp)); |
| sdp->flag = 0; | sdp->flag = 0; |
| sdp->p = (h & CPU_DESC_H_P) ? 1 : 0; | sdp->p = (h & CPU_DESC_H_P) ? 1 : 0; |
| Line 384 segdesc_init(int idx, UINT16 sreg, descr | Line 384 segdesc_init(int idx, UINT16 sreg, descr |
| __ASSERT((sdp != NULL)); | __ASSERT((sdp != NULL)); |
| CPU_REGS_SREG(idx) = sreg; | CPU_REGS_SREG(idx) = sreg; |
| segdesc_clear(sdp); | |
| segdesc_set_default(idx, sreg, sdp); | segdesc_set_default(idx, sreg, sdp); |
| } | } |