Commit Graph

66 Commits

Author SHA1 Message Date
Bryce Denney 95467fa241 - Somebody was convinced that the enter instruction with level>0 was broken,
and they added a panic.  Apparantly this instruction is not used very often
  because it went for a long time before anyone noticed.  Peter Tattam started
  running into the panic while emulating his OS called Petros, and through
  a comparison between vmware and bochs results he believes that enter is
  doing the right thing.  So, I have changed the panic into a BX_ERROR for now,
  and added code to ensure that it only gets printed once per bochs run.
2002-03-05 15:50:17 +00:00
Bryce Denney e38b1c8f7b - the stack_return_from_v86 error is sometimes printed millions of times
and produces a gigantic log file.  Now, after 100 times, it will no
  longer print any more of this particular error.
2002-03-01 17:27:25 +00:00
Gregory Alexander 2fbcdccb02 Added a comment on iret flag writing. 2002-02-22 05:33:36 +00:00
Gregory Alexander 29ba221c3e Make trace output more meaningful by printing each instruction immediately
BEFORE it is executed.  Print the registers at this time, BEFORE the
instruction, since they are the values BEFORE the instruction is executed.

The important result of this is that in TRACE output, both the instruction
causing an exception and the first instruction of the exception handler
are BOTH printed.

I'm working on getting this behavior in the debugger user-interface.

 Modified Files:
 	cpu/cpu.cc debug/dbg_main.cc
2002-02-15 22:58:06 +00:00
Bryce Denney 976e0b67d9 - clarify panic message. It panics if HLT is executed from segment 0xf000,
in other words from ROM BIOS code.
2001-11-18 16:32:40 +00:00
Bryce Denney 8a00171179 - checked in cmpxchg8b patch from Michael Hohmuth <hohmuth@innocent.com> 2001-11-17 22:22:03 +00:00
Bryce Denney fea759a204 - apply patch.pci from Volker Ruppert. See
[ #481546 ] pci patch (Volker Ruppert) for any followups.
2001-11-14 01:39:22 +00:00
Bryce Denney 918a32a67a - patch from Mike Rieker <mrieker@o3one.org> associated with this bug rpt:
[ #480422 ] gdt 'accessed' bit
2001-11-13 05:11:41 +00:00
Bryce Denney e0b4801b1f - commit Roland Mainz's idle hack as a configure option. To try it,
configure with --enable-idle-hack.  I have moved most of the code into
  x.cc since it is X windows specific.
2001-11-12 00:45:09 +00:00
Bryce Denney c100b382fe - in task_switch when it tried to ensure that the old TSS was paged in,
it actually used the new TSS address, fixed.
- add a debug line that says what CR3 is changed to
2001-11-11 04:57:05 +00:00
Bryce Denney b4aa45671b - Applied patch from Santiago Bazerque. See this bug report:
[ #463018 ] retf not removing parameters sometimes
2001-11-10 23:00:55 +00:00
Todd T.Fries 0761193c5a remove '^M' chars that somehow showed up
I am reporting and disabling this PANIC.  The report is this commit message,
and the test case is win98.
2001-11-05 17:37:16 +00:00
Bryce Denney b86dbe1f3c - committed patches/patch.no-busy-in-tr-cache. I'm leaving the patch
lying around for a while in case it needs to be reverted.
2001-10-09 21:15:14 +00:00
Bryce Denney 605a28df66 - add panic to warn people of incomplete IRET32 emulation, and encourage
people to report if they hit this panic.
2001-10-09 13:45:17 +00:00
Bryce Denney 75a1d092f6 - I was dismayed to find that stack_return_from_v86 was terribly incomplete.
It did an exception, and then the real code seemed to be commented out
  with an #if 0...#endif.  I put a panic there, asking people to please
  report how they arrived at that condition, and enabled the #if 0 code.
  This was pointed out by luca abeni <l_abeni@hotmail.com>.
2001-10-09 12:23:15 +00:00
Bryce Denney c99f9aa8ef - use @CPP_SUFFIX@ substitution to get the dependencies right for nmake too 2001-10-07 20:19:04 +00:00
Bryce Denney 8a21b1a9d6 - apply patches/patch.add-makefile-deps. I have added dependencies
which were generated with gcc -MM to the end of each Makefile.in
  so that make understands which files depend on which.  Basically,
  everything depends on bochs.h, which depends on everything, which
  is not ideal.
2001-10-07 00:33:21 +00:00
Bryce Denney bd286316a0 - clarify panic message in load_seg_reg, to show what's really being compared 2001-10-06 15:19:17 +00:00
Bryce Denney 7d499adac0 - move trace call before the TICK. Well, there are two different places
that TICK is called so I put a trace call just before each TICK.
  This seems best, since the trace has a chance to print before the tick
  can trigger time-based events elsewhere in the system.
2001-10-06 00:00:22 +00:00
Bryce Denney b70ae5ccf6 - changed args on disassemble current 2001-10-05 21:05:11 +00:00
instinc dabe63ef72 added a control variable for debugger to know if register tracing is required or not 2001-10-03 19:53:48 +00:00
Bryce Denney daf2a9fb55 - add RCS Id to header of every file. This makes it easier to know what's
going on when someone sends in a modified file.
2001-10-03 13:10:38 +00:00
Bryce Denney 0f9a525717 - try again! This should fix
[ #433759 ] virtual address checks can overflow
  and I have tested the condition much more thoroughly this time.
  All segment sizes should be supported.
2001-10-03 01:06:31 +00:00
Bryce Denney 6a1c01c8b5 - back out my poorly written patch.virtual-address-checks-overflow 2001-10-02 20:01:29 +00:00
Bryce Denney beca5d6e67 - fix stupid printf-type bug 2001-10-02 18:11:06 +00:00
Bryce Denney 67ebaaca87 - apply patch.virtual-addr-checks-overflow to fix bug
[ #433759 ] virtual address checks can overflow
  > Bochs has been crashing in some cases when you try to access data which
  > overlaps the segment limit, when the segment limit is near the 32-bit
  > boundary.  The example that came up a few times is reading/writing 4 bytes
  > starting at 0xffffffff when the segment limit was 0xffffffff.  The
  > condition used to compare offset+length-1 with the limit, but
  > offset+length-1 was overflowing so the comparison went wrong.  This patch
  > changes the condition so that it supports all segment limits except for
  > sizes 0,1,2,3 bytes.  Dave and I figured that these sizes would not be
  > needed, while size 0xffffffff is used quite a lot.
2001-10-02 17:02:28 +00:00
Bryce Denney 22f82dcbb3 - copy prev_eip and prev_esp again AFTER the handle_async_event section
has run.  This ensures that the prev_eip and prev_esp that is used
  for tracing and breakpoint checks is correct even in the cycle after
  an interrupt or trap.
2001-09-28 04:12:26 +00:00
Bryce Denney 610a7f5c1b - fix bug introduced by Bryce's revision 1.16, that causes you to get
stuck at breakpoints forever.  Added a comment that says what code
  does that, so that future hackers will be warned.
2001-09-27 23:41:18 +00:00
Bryce Denney 9a1364b1f9 - apply patches/patch.consistent2b. Description:
> This patch fixes a number of debugger problems.
>   - with trace-on, simulation time would pass 5x faster than usual, so
>     interrupts and other timed events would happen at different times
>   - with trace-on, breakpoints were ignored
>   - with trace-on, control-C would not stop the processor and return to the
>     debugger.
>
> This patch changes the execution quantum for the debugger to 1, which means
> that cpu_loop is asked to do one instruction at a time.  This may cause
> bochs with the debugger to be slower than before.
>
> I haven't tested without the debugger yet, so I don't know if the timing
> of events matches or not.
2001-09-27 14:19:38 +00:00
Bryce Denney d614265f58 - check in a (commented out) debugging option controlled by BX_INSTR_SPY.
To enable, set the #define to 1.
2001-09-26 15:19:56 +00:00
Bryce Denney 4073d65f4d - apply patch [ #455014 ] CR0 bug in 80486, described as:
> In the register CR0, when the bit PM is enabled, the bit 4 is 0
  > when should be 1.
  Another fix from an anonymous donor.
2001-09-19 17:36:54 +00:00
Bryce Denney fd7e7ee86c - added debugger command "info fpu" which prints all FPU registers
in an output format similar to gdb (when you do info all-registers).
  Also, if you do "info all" you get the CPU registers and the FPU
  registers.
- added bx_cpu_c method called fpu_print_regs, which is implemented
  in wmFPUemu_glue.cc
2001-09-15 06:55:14 +00:00
Bryce Denney f04e6fe346 - apply VPATH patch from Edouard G. Parmelan, posted to list on September 1 2001-09-14 04:19:08 +00:00
Bryce Denney ad11335293 - remove space after line continuation character.
Thanks to Martijn Boekhorst <Martijn@boekhorst.net> for pointing it out.
2001-09-11 23:32:14 +00:00
Todd T.Fries 28885e4973 some INFO->DEBUG/ERROR cleanups 2001-08-31 16:06:32 +00:00
Todd T.Fries cd9733391b AtheOS triggers this, move to debug 2001-08-24 21:02:37 +00:00
Bryce Denney 284178479b - apply patch "patch.ifdef-paging-tlb" 2001-08-10 18:42:24 +00:00
Bryce Denney c0bd506231 - apply patch [ #439314 ] [Patch] Exception 1 (debug) on HALT
by thomas.petazzoni@meridon.com.  Bryce introduced this bug in
  revision 1.9 when split the code into separate #ifdefs for single
  CPU and multiple CPU.  Comments on the patch are:
  > The following patch addresses a bug concerning the exception 1 (debug)
  > which is being raised during HALT under certain conditions.  It
  > appears only on recent versions (1.2.1 or last CVS), and not on
  > version 2000-0104.
2001-07-08 14:36:36 +00:00
Bryce Denney 3d29d5d614 - add instrumentation macros for begin and end opcode. These are usually
defined to be empty, so there should be no effect except for instrumentation
2001-06-28 19:45:44 +00:00
Todd T.Fries 4f1c151520 Move Init $ to ::init() 2001-06-27 20:27:49 +00:00
Todd T.Fries a06b031dcf setprefix -> put 2001-06-27 19:16:01 +00:00
Todd T.Fries 12985edb26 setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
Bryce Denney c8ae6c4aa9 - set logging prefix and type in the constructor 2001-06-16 04:27:22 +00:00
Todd T.Fries 61d13559e9 tweaks here and there, show ne2k mac, shorten BX_ messages by removing redundant strings, etc 2001-06-13 16:53:58 +00:00
Bryce Denney f822257511 - there were cases where BX_APIC_SUPPORT were used and others where
BX_SUPPORT_APIC were used.  To follow the pattern used by other
  names like this, I changed them all to BX_SUPPORT_APIC.
  Thanks to Tom Lindström for chasing this down!
2001-06-12 13:07:43 +00:00
Bryce Denney 565fa8ea8e - another speed boost: when not using SMP, use
BX_CPU_C bx_cpu;
     BX_MEM_C bx_mem;
  and when more than one processor, use
     BX_CPU_C    *bx_cpu_array[BX_SMP_PROCESSORS];
     BX_MEM_C    *bx_mem_array[BX_ADDRESS_SPACES];
  The changeover is controlled by BX_SMP_PROCESSORS, but there are only
  a few code changes since nearly all code uses the BX_CPU(n) and BX_MEM(n)
  macros.
- This turns out to make a 10% speed difference!  With this revision,
  the CVS version now gets 95% of the performance of the 3/25/2000
  snapshot, which I've been using as my baseline.
2001-06-05 17:35:08 +00:00
Bryce Denney b01b9109a6 - the SMP merge has reduced performance of even one processor, so this
is the first attempt to regain the performance of pre-SMP bochs
  (1.1.2).  When simulating only one processor, stay in cpu_loop forever
  as pre-SMP versions did.  The overhead of returning from cpu_loop over
  and over was slowing us down.
2001-06-05 15:56:19 +00:00
Todd T.Fries 2bbb1ef8eb strip '\n' from BX_{INFO,DEBUG,ERROR,PANIC}
don't need it, moved the output of it into the general io functions.
saves space, as well as removes the confusing output if a '\n' is left off
2001-05-30 18:56:02 +00:00
Todd T.Fries e291dd17d4 demote BX_INFO to BX_ERROR 2001-05-25 22:17:51 +00:00
Todd T.Fries 9ebd237408 more output cleanup 2001-05-25 18:44:38 +00:00