fixed extdb.cc to work in default IA32 bochs

This commit is contained in:
Peter Tattam 2002-10-01 06:47:06 +00:00
parent 94b2dd2bc8
commit 9078c5fc06

View File

@ -29,6 +29,7 @@ void bx_external_debugger(BX_CPU_C *cpu)
break;
}
#if BX_SUPPORT_X86_64
regs.rax = cpu->gen_reg[0].rrx;
regs.rcx = cpu->gen_reg[1].rrx;
regs.rdx = cpu->gen_reg[2].rrx;
@ -46,6 +47,25 @@ void bx_external_debugger(BX_CPU_C *cpu)
regs.r14 = cpu->gen_reg[14].rrx;
regs.r15 = cpu->gen_reg[15].rrx;
regs.rip = cpu->rip;
#else
regs.rax = cpu->gen_reg[0].dword.erx;
regs.rcx = cpu->gen_reg[1].dword.erx;
regs.rdx = cpu->gen_reg[2].dword.erx;
regs.rbx = cpu->gen_reg[3].dword.erx;
regs.rsp = cpu->gen_reg[4].dword.erx;
regs.rbp = cpu->gen_reg[5].dword.erx;
regs.rsi = cpu->gen_reg[6].dword.erx;
regs.rdi = cpu->gen_reg[7].dword.erx;
regs.r8 = 0;
regs.r9 = 0;
regs.r10 = 0;
regs.r11 = 0;
regs.r12 = 0;
regs.r13 = 0;
regs.r14 = 0;
regs.r15 = 0;
regs.rip = cpu->dword.eip;
#endif
regs.rflags = cpu->read_eflags();
regs.es = cpu->sregs[0].selector.value;
regs.cs = cpu->sregs[1].selector.value;
@ -68,9 +88,13 @@ void bx_external_debugger(BX_CPU_C *cpu)
//regs.cr7 = cpu->cr7;
regs.fsbase = cpu->sregs[BX_SEG_REG_FS].cache.u.segment.base;
regs.gsbase = cpu->sregs[BX_SEG_REG_GS].cache.u.segment.base;
regs.efer = (BX_CPU_THIS_PTR msr.sce << 0)
#if BX_SUPPORT_X86_64
regs.efer = (BX_CPU_THIS_PTR msr.sce << 0)
| (BX_CPU_THIS_PTR msr.lme << 8)
| (BX_CPU_THIS_PTR msr.lma << 10);
#else
regs.efer = 0;
#endif
if (debug_loaded == 0) {
HINSTANCE hdbg;