Bochs/bochs/cpu
Kevin Lawton 281e62d8b1 I integrated my hacks to get Linux/x86-64 booting. To keep
these from interfering from a normal compile here's what I did.
In config.h.in (which will generate config.h after a configure),
I added a #define called KPL64Hacks:

  #define KPL64Hacks

*After* running configure, you must set this by hand.  It will
default to off, so you won't get my hacks in a normal compile.
This will go away soon.  There is also a macro just after that
called BailBigRSP().  You don't need to enabled that, but you
can.  In many of the instructions which seemed like they could
be hit by the fetchdecode64() process, but which also touched
EIP/ESP, I inserted a macro.  Usually this macro expands to nothing.
If you like, you can enabled it, and it will panic if it finds
the upper bits of RIP/RSP set.   This helped me find bugs.

Also, I cleaned up the emulation in ctrl_xfer{8,16,32}.cc.
There were some really old legacy code snippets which directly
accessed operands on the stack with access_linear.  Lots of
ugly code instead of just pop_32() etc.  Cleaning those up,
minimized the number of instructions which directly manipulate
the stack pointer, which should help in refining 64-bit support.
2002-09-24 00:44:56 +00:00
..
access.cc Hopefully this fixes "Bugs item #612880", which was due to 2002-09-22 21:47:57 +00:00
apic.cc More migration/synchronization of cpu/cpu64. 2002-09-13 04:33:42 +00:00
arith8.cc Added new configure option --enable-host-specific-asms, so the 2002-09-23 17:59:18 +00:00
arith16.cc Added new configure option --enable-host-specific-asms, so the 2002-09-23 17:59:18 +00:00
arith32.cc Added new configure option --enable-host-specific-asms, so the 2002-09-23 17:59:18 +00:00
arith64.cc - in CMP_EqId, fix bug in sign extension 2002-09-23 14:25:08 +00:00
bcd.cc Updated accessing of modrm/sib addressing information to 2002-09-17 22:50:53 +00:00
bit.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
cpu.cc Moved the "i = &iStorage" line inside the #ifdef bracketing 2002-09-22 23:42:01 +00:00
cpu.h I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
ctrl_xfer8.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
ctrl_xfer16.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
ctrl_xfer32.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
ctrl_xfer64.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
ctrl_xfer_pro.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
data_xfer8.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
data_xfer16.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
data_xfer32.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
data_xfer64.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
debugstuff.cc - print CR* registers on exit 2002-09-23 22:10:00 +00:00
exception.cc - uncomment pieces of Peter Tattam's external debugger, but leave them in 2002-09-23 15:26:05 +00:00
extdb.cc Oops, I had #ifdef 0'd the code in here to do a test compile, 2002-09-22 02:07:46 +00:00
extdb.h I merged the cpu/cpu.h and cpu64/cpu.h files as well as the 2002-09-13 00:15:23 +00:00
fetchdecode64.cc - from Peter Tattam: change prefetch instructions to nops instead of undefined 2002-09-23 14:25:29 +00:00
fetchdecode.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
flag_ctrl_pro.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
flag_ctrl.cc Moved more separate fields in the bxInstruction_c into bitfields 2002-09-18 05:36:48 +00:00
i387.h - add sanity checks 2002-09-22 16:11:12 +00:00
init.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
io_pro.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
io.cc - Added an instruction cache. Size is fixed for the moment, 2002-09-19 19:17:20 +00:00
lazy_flags.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
lazy_flags.h I merged the cpu/cpu.h and cpu64/cpu.h files as well as the 2002-09-13 00:15:23 +00:00
logical8.cc Added new configure option --enable-host-specific-asms, so the 2002-09-23 17:59:18 +00:00
logical16.cc Added new configure option --enable-host-specific-asms, so the 2002-09-23 17:59:18 +00:00
logical32.cc Added new configure option --enable-host-specific-asms, so the 2002-09-23 17:59:18 +00:00
logical64.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
Makefile.in - fixed "macro expands to nothing" by renaming the macro 2002-09-22 07:23:26 +00:00
mmx.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
mult8.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
mult16.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
mult32.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
mult64.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
paging.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
proc_ctrl.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
protect_ctrl_pro.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
protect_ctrl.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
resolve16.cc - Added an instruction cache. Size is fixed for the moment, 2002-09-19 19:17:20 +00:00
resolve32.cc - Added an instruction cache. Size is fixed for the moment, 2002-09-19 19:17:20 +00:00
resolve64.cc Converted all the remaining available separate fields in bxInstruction_c 2002-09-18 08:00:43 +00:00
segment_ctrl_pro.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
segment_ctrl.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
shift8.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
shift16.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
shift32.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
shift64.cc Changed eflags accessors for get_?F() to use (val32 & (1<<N)) instead 2002-09-22 18:22:24 +00:00
soft_int.cc Moved the EFLAGS.RF check and clearing of inhibit_mask code 2002-09-20 03:52:59 +00:00
stack16.cc Modified the way that the register field (low 3 bits of a few opcodes 2002-09-20 23:17:51 +00:00
stack32.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
stack64.cc Modified the way that the register field (low 3 bits of a few opcodes 2002-09-20 23:17:51 +00:00
stack_pro.cc I integrated my hacks to get Linux/x86-64 booting. To keep 2002-09-24 00:44:56 +00:00
string.cc - Added an instruction cache. Size is fixed for the moment, 2002-09-19 19:17:20 +00:00
tasking.cc resolve32.cc was redundant, tasking.cc was merged. 2002-09-13 16:23:02 +00:00
vm8086.cc Moved more separate fields in the bxInstruction_c into bitfields 2002-09-18 05:36:48 +00:00