Bochs/bochs/cpu
Kevin Lawton ee47fabac0 Committed new bochs internal timers (in pc_system.{cc,h}.
These seem to be working better, are a more simple design,
  easier to understand, and AFAIK don't have race conditions
  in them like the old ones do.

Re-coded the apic timer, to return cycle accurate values
  which vary with each iteration of a read from a guest OS.
  The previous implementation had very poor resolution.  It
  also didn't check the mask bit to see if an apic timer
  interrupt should occur on countdown to 0.  The apic timer
  now calls its own bochs timer, rather than tag on the
  one in iodev/devices.cc.

I needed to use one new function which is an inline in
  pc_sytem.h.  That would have to be added to the old pc_system.h if
  we have to back-out to it.

Linux/x86-64 now boots until it hits two undefined opcodes:

  FXRSTOR (0f ae).  This restores FPU, MMX, XMM and MXCSR registers
    from a 512-byte region of memory.  We don't implement this yet.

  MOVNTDQ (66 0f e7).  This is a move involving an XMM register.
    The 0x66 prefix is used so it's a double quadword, rather than
    MOVNTQ (0f e7) which operates on a single quadword.

  The Linux kernel panic is on the MOVNTQD opcodes.  Perhaps that's
  because that opcode is used in exception handling of the 1st?

  Looks like we need to implement some new instructions.
2002-10-03 15:47:13 +00:00
..
access.cc Committed patches/patch-bochs-instrumentation from Stanislav. 2002-09-28 00:54:05 +00:00
apic.cc Committed new bochs internal timers (in pc_system.{cc,h}. 2002-10-03 15:47:13 +00:00
arith8.cc Added ./configure option --enable-all-optimizations which turns on 2002-09-30 02:02:06 +00:00
arith16.cc Added ./configure option --enable-all-optimizations which turns on 2002-09-30 02:02:06 +00:00
arith32.cc - replace new preprocessor directive "#panic" with call to BX_INFO and 2002-10-02 04:01:45 +00:00
arith64.cc I updated code that was using !!get_CF() (or other arithmetic flag) to 2002-09-24 18:33:38 +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 - add GDB stub patch by Johan Rydberg 2002-10-03 05:14:50 +00:00
cpu.h Committed new bochs internal timers (in pc_system.{cc,h}. 2002-10-03 15:47:13 +00:00
ctrl_xfer8.cc Fixed number of problems with instrumentation merge cause to instrumentation fail the compilation 2002-09-29 15:06:58 +00:00
ctrl_xfer16.cc Fixed number of problems with instrumentation merge cause to instrumentation fail the compilation 2002-09-29 15:06:58 +00:00
ctrl_xfer32.cc Fixed number of problems with instrumentation merge cause to instrumentation fail the compilation 2002-09-29 15:06:58 +00:00
ctrl_xfer64.cc Fixed number of problems with instrumentation merge cause to instrumentation fail the compilation 2002-09-29 15:06:58 +00:00
ctrl_xfer_pro.cc - improve panic msg slightly 2002-10-03 04:49:47 +00:00
data_xfer8.cc Split out reg-reg and reg-memory cases for a few other high-profile 2002-09-29 19:21:38 +00:00
data_xfer16.cc Split out reg-reg and reg-memory cases for a few other high-profile 2002-09-29 19:21:38 +00:00
data_xfer32.cc Split out reg-reg and reg-memory cases for a few other high-profile 2002-09-29 19:21:38 +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 Initial work on updating bochs disassembler 2002-09-28 06:29:55 +00:00
exception.cc - specify the exception type on triple exceptions 2002-10-03 04:52:39 +00:00
extdb.cc fixed extdb.cc to work in default IA32 bochs 2002-10-01 06:47:06 +00:00
extdb.h Cleanup of extdb.* files. included in right places now. 2002-10-01 04:13:12 +00:00
fetchdecode64.cc Committed new bochs internal timers (in pc_system.{cc,h}. 2002-10-03 15:47:13 +00:00
fetchdecode.cc Split out reg-reg and reg-memory cases for a few other high-profile 2002-09-29 19:21:38 +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 - many parameters in cpu were being redefined if you stop simulation and 2002-09-30 22:18:53 +00:00
io_pro.cc I updated code that was using !!get_CF() (or other arithmetic flag) to 2002-09-24 18:33:38 +00:00
io.cc Fixed/updated/cleaned repeat IO & memcpy speedups for Long mode. 2002-09-24 04:43:59 +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 More merging of modRM==11b if () clauses in logical*.cc functions, 2002-09-30 03:37:42 +00:00
logical16.cc More merging of modRM==11b if () clauses in logical*.cc functions, 2002-09-30 03:37:42 +00:00
logical32.cc More merging of modRM==11b if () clauses in logical*.cc functions, 2002-09-30 03:37:42 +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 - add -lwinmm to the link lines anytime you use --enable-sb16=win. Now 2002-10-01 23:37:50 +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 - provide dbg_xlate_linear2phy when running as GDB stub 2002-10-03 04:53:53 +00:00
proc_ctrl.cc The convience functions protected_mode(), v8086_mode() and real_mode() 2002-09-29 22:38:18 +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 Implemented SWAPGS instruction. 2002-09-25 14:09:08 +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 - improve panic slightly to show limits on LDT, if the limit is exceeded 2002-10-03 05:10:24 +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 Committed patches/patch-bochs-instrumentation from Stanislav. 2002-09-28 00:54:05 +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 These changes are from Peter Tattam 2002-09-24 08:29:06 +00:00
string.cc As a 1st effort to understand/debug the timer code, I cleanup 2002-09-30 16:43:59 +00:00
tasking.cc Committed patches/patch-bochs-instrumentation from Stanislav. 2002-09-28 00:54:05 +00:00
vm8086.cc Moved more separate fields in the bxInstruction_c into bitfields 2002-09-18 05:36:48 +00:00