d7a16521c4
hack with longjmp() back to cpu.cc main decode loop, and added a check in there to return control when bx_guard.special_unwind_stack is set (compiling with debugger enabled only). If in the debugger you try to execute further instructions (which you shouldn't), other fields need to be reset I would think, such as EXT and errorno, and have to make sure ESP/EIP are corrected properly. Basically, this hack is only good for examining the current situation of a nasty fault. |
||
---|---|---|
.. | ||
access.cc | ||
apic.cc | ||
arith8.cc | ||
arith16.cc | ||
arith32.cc | ||
arith64.cc | ||
bcd.cc | ||
bit.cc | ||
cpu.cc | ||
cpu.h | ||
ctrl_xfer8.cc | ||
ctrl_xfer16.cc | ||
ctrl_xfer32.cc | ||
ctrl_xfer64.cc | ||
ctrl_xfer_pro.cc | ||
data_xfer8.cc | ||
data_xfer16.cc | ||
data_xfer32.cc | ||
data_xfer64.cc | ||
debugstuff.cc | ||
exception.cc | ||
extdb.cc | ||
extdb.h | ||
fetchdecode64.cc | ||
fetchdecode.cc | ||
flag_ctrl_pro.cc | ||
flag_ctrl.cc | ||
i387.h | ||
init.cc | ||
io_pro.cc | ||
io.cc | ||
lazy_flags.cc | ||
lazy_flags.h | ||
logical8.cc | ||
logical16.cc | ||
logical32.cc | ||
logical64.cc | ||
Makefile.in | ||
mmx.cc | ||
mult8.cc | ||
mult16.cc | ||
mult32.cc | ||
mult64.cc | ||
paging.cc | ||
proc_ctrl.cc | ||
protect_ctrl_pro.cc | ||
protect_ctrl.cc | ||
resolve16.cc | ||
resolve32.cc | ||
resolve64.cc | ||
segment_ctrl_pro.cc | ||
segment_ctrl.cc | ||
shift8.cc | ||
shift16.cc | ||
shift32.cc | ||
shift64.cc | ||
soft_int.cc | ||
stack16.cc | ||
stack32.cc | ||
stack64.cc | ||
stack_pro.cc | ||
string.cc | ||
tasking.cc | ||
vm8086.cc |