| version 1.20, 2008/03/22 04:03:07 | version 1.22, 2011/12/20 09:03:28 | 
| Line 1 | Line 1 | 
 | /*      $Id$    */ |  | 
 |  |  | 
 | /* | /* | 
 | * Copyright (c) 2003 NONAKA Kimihiro | * Copyright (c) 2003 NONAKA Kimihiro | 
 | * All rights reserved. | * All rights reserved. | 
| Line 282  JMPfar_pm_task_gate(selector_t *taskgate | Line 280  JMPfar_pm_task_gate(selector_t *taskgate | 
 | } | } | 
 |  |  | 
 | task_switch(&tss_sel, TASK_SWITCH_JMP); | task_switch(&tss_sel, TASK_SWITCH_JMP); | 
 |  |  | 
 |  | /* out of range */ | 
 |  | if (CPU_EIP > CPU_STAT_CS_LIMIT) { | 
 |  | VERBOSE(("JMPfar_pm: new_ip is out of range. new_ip = %08x, limit = %08x", CPU_EIP, CPU_STAT_CS_LIMIT)); | 
 |  | EXCEPTION(GP_EXCEPTION, 0); | 
 |  | } | 
 | } | } | 
 |  |  | 
 | /*--- | /*--- | 
| Line 310  JMPfar_pm_tss(selector_t *tss_sel) | Line 314  JMPfar_pm_tss(selector_t *tss_sel) | 
 | } | } | 
 |  |  | 
 | task_switch(tss_sel, TASK_SWITCH_JMP); | task_switch(tss_sel, TASK_SWITCH_JMP); | 
 |  |  | 
 |  | /* out of range */ | 
 |  | if (CPU_EIP > CPU_STAT_CS_LIMIT) { | 
 |  | VERBOSE(("JMPfar_pm: new_ip is out of range. new_ip = %08x, limit = %08x", CPU_EIP, CPU_STAT_CS_LIMIT)); | 
 |  | EXCEPTION(GP_EXCEPTION, 0); | 
 |  | } | 
 | } | } | 
 |  |  | 
 |  |  | 
| Line 754  CALLfar_pm_task_gate(selector_t *taskgat | Line 764  CALLfar_pm_task_gate(selector_t *taskgat | 
 | } | } | 
 |  |  | 
 | task_switch(&tss_sel, TASK_SWITCH_CALL); | task_switch(&tss_sel, TASK_SWITCH_CALL); | 
 |  |  | 
 |  | /* out of range */ | 
 |  | if (CPU_EIP > CPU_STAT_CS_LIMIT) { | 
 |  | VERBOSE(("JMPfar_pm: new_ip is out of range. new_ip = %08x, limit = %08x", CPU_EIP, CPU_STAT_CS_LIMIT)); | 
 |  | EXCEPTION(GP_EXCEPTION, 0); | 
 |  | } | 
 | } | } | 
 |  |  | 
 | /*--- | /*--- | 
| Line 782  CALLfar_pm_tss(selector_t *tss_sel) | Line 798  CALLfar_pm_tss(selector_t *tss_sel) | 
 | } | } | 
 |  |  | 
 | task_switch(tss_sel, TASK_SWITCH_CALL); | task_switch(tss_sel, TASK_SWITCH_CALL); | 
 |  |  | 
 |  | /* out of range */ | 
 |  | if (CPU_EIP > CPU_STAT_CS_LIMIT) { | 
 |  | VERBOSE(("JMPfar_pm: new_ip is out of range. new_ip = %08x, limit = %08x", CPU_EIP, CPU_STAT_CS_LIMIT)); | 
 |  | EXCEPTION(GP_EXCEPTION, 0); | 
 |  | } | 
 | } | } | 
 |  |  | 
 |  |  | 
| Line 819  RETfar_pm(UINT nbytes) | Line 841  RETfar_pm(UINT nbytes) | 
 |  |  | 
 | rv = parse_selector(&cs_sel, new_cs); | rv = parse_selector(&cs_sel, new_cs); | 
 | if (rv < 0) { | if (rv < 0) { | 
| VERBOSE(("RETfar_pm: parse_selector (selector = %04x, rv = %d, %s)", cs_sel.selector, rv)); | VERBOSE(("RETfar_pm: parse_selector (selector = %04x, rv = %d)", cs_sel.selector, rv)); | 
 | EXCEPTION(GP_EXCEPTION, cs_sel.idx); | EXCEPTION(GP_EXCEPTION, cs_sel.idx); | 
 | } | } | 
 |  |  | 
| Line 1091  IRET_pm_nested_task(void) | Line 1113  IRET_pm_nested_task(void) | 
 | } | } | 
 |  |  | 
 | task_switch(&tss_sel, TASK_SWITCH_IRET); | task_switch(&tss_sel, TASK_SWITCH_IRET); | 
 |  |  | 
 |  | /* out of range */ | 
 |  | if (CPU_EIP > CPU_STAT_CS_LIMIT) { | 
 |  | VERBOSE(("JMPfar_pm: new_ip is out of range. new_ip = %08x, limit = %08x", CPU_EIP, CPU_STAT_CS_LIMIT)); | 
 |  | EXCEPTION(GP_EXCEPTION, 0); | 
 |  | } | 
 | } | } | 
 |  |  | 
 | /*--- | /*--- |