Diff for /np2/i386c/ia32/ctrlxfer.c between versions 1.25 and 1.27

version 1.25, 2012/02/05 06:31:44 version 1.27, 2012/06/18 14:30:27
Line 646  CALLfar_pm_call_gate_more_privilege(cons Line 646  CALLfar_pm_call_gate_more_privilege(cons
         } else {          } else {
                 stacksize += param_count * 2;                  stacksize += param_count * 2;
         }          }
         cpu_stack_push_check(ss_sel.idx, &ss_sel.desc, new_esp, stacksize);          cpu_stack_push_check(ss_sel.idx, &ss_sel.desc, new_esp, stacksize, ss_sel.desc.d);
   
         if (callgate_sel->desc.type == CPU_SYSDESC_TYPE_CALL_32) {          if (callgate_sel->desc.type == CPU_SYSDESC_TYPE_CALL_32) {
                 /* dump param */                  /* dump param */
Line 1364  IRET_pm_return_to_vm86(UINT16 new_cs, UI Line 1364  IRET_pm_return_to_vm86(UINT16 new_cs, UI
         }          }
         SS_POP_CHECK(sp, 36);          SS_POP_CHECK(sp, 36);
   
         if (new_ip > 0xffff) {  
                 EXCEPTION(GP_EXCEPTION, 0);  
         }  
   
         new_sp = cpu_vmemoryread_d(CPU_SS_INDEX, sp + 12);          new_sp = cpu_vmemoryread_d(CPU_SS_INDEX, sp + 12);
         segsel[CPU_SS_INDEX] = cpu_vmemoryread_w(CPU_SS_INDEX, sp + 16);          segsel[CPU_SS_INDEX] = cpu_vmemoryread_w(CPU_SS_INDEX, sp + 16);
         segsel[CPU_ES_INDEX] = cpu_vmemoryread_w(CPU_SS_INDEX, sp + 20);          segsel[CPU_ES_INDEX] = cpu_vmemoryread_w(CPU_SS_INDEX, sp + 20);
Line 1381  IRET_pm_return_to_vm86(UINT16 new_cs, UI Line 1377  IRET_pm_return_to_vm86(UINT16 new_cs, UI
         }          }
   
         CPU_ESP = new_sp;          CPU_ESP = new_sp;
         CPU_EIP = new_ip;          CPU_EIP = new_ip & 0xffff;
   
         /* to VM86 mode */          /* to VM86 mode */
         set_eflags(new_flags, IOPL_FLAG|I_FLAG|VM_FLAG|RF_FLAG);          set_eflags(new_flags, IOPL_FLAG|I_FLAG|VM_FLAG|RF_FLAG);

Removed from v.1.25  
changed lines
  Added in v.1.27


RetroPC.NET-CVS <cvs@retropc.net>