Commit Graph

490 Commits

Author SHA1 Message Date
Stanislav Shwartsman
1adda7bf64 Fixed MWAIT leaf CPUID - required for Fedora15 startup 2011-08-03 20:29:24 +00:00
Stanislav Shwartsman
1d89709e62 Added another CPU to CPUDB: p4_willamette (one more without x86-64 support).
Reimplemented CPUDB using pure C macros magic.
Fixed compilation errors when compiling with SMP on.
2011-07-31 18:43:46 +00:00
Stanislav Shwartsman
bf8dc9df43 update timestamps immediately 2011-07-12 19:14:08 +00:00
Volker Ruppert
345d67c403 - removed BeOS support from sources and documentation 2011-07-11 17:36:10 +00:00
Stanislav Shwartsman
432bf97197 was playing with SMP and debugger 2011-07-09 22:17:16 +00:00
Volker Ruppert
4699840aaf - reorganisation of the vga init code:
- using the same init() method for all display adapters
  - new method protected init_standard_vga() for the shared vga core
  - new method init_vga_extension() implements the extended features
- moved loading of vgabios image for the ISA case from main.cc to the vga init code
2011-07-03 15:31:16 +00:00
Stanislav Shwartsman
29e3f6e762 remove trace cache disabled mode from the code. next step going to be - introducing new optimization features based on trace cache 2011-06-01 20:34:04 +00:00
Stanislav Shwartsman
e0160b4f29 ability to turn on/off AVX if compiled in 2011-05-24 20:33:36 +00:00
Stanislav Shwartsman
8875e79425 update CHANGES 2011-05-04 19:26:11 +00:00
Stanislav Shwartsman
76c11e1a40 - Configure option --enable-acpi is deprecated and should not be used anymore.
The ACPI support is always automatically compiled in if PCI is compiled in.
    The ACPI still could be disabled using .bochsrc 'plugin_ctrl' option.

Updated CHANGES and docs as well.
2011-04-30 20:04:42 +00:00
Stanislav Shwartsman
a02d8cfe67 cleanups, simplications, copyright updates 2011-04-23 20:39:27 +00:00
Stanislav Shwartsman
024a1ace38 move X2APIC to be .bochsrc option, rework of the cpuid code 2011-04-21 13:27:42 +00:00
Stanislav Shwartsman
1a7d38c28b bswap optimization patch by Heikki Lindholm + cleanup 2011-04-19 12:48:06 +00:00
Volker Ruppert
8de57f7c03 - CVS to SVN changes
- spelling fixes etc. (thanks to Ben Lunt)
2011-04-01 16:19:15 +00:00
Stanislav Shwartsman
f0a3cce1e2 added XSAVEOPT instruction emulation (for now with no state tracking according to Intel docs, just alias it to XSAVE)
update CHANGES
2011-03-25 20:32:07 +00:00
Stanislav Shwartsman
7ced718040 implemented AVX instructions support
many changes - some cleanup will follow
please report ay found bugs !
2011-03-19 20:09:34 +00:00
Volker Ruppert
8c32359615 The VBE display extension is now a part of the Bochs core. The configure option
--enable-vbe is now deprecated and the symbols BX_SUPPORT_VBE and
BX_SUPPORT_PCIVGA have been removed. To enable VBE support, the bochsrc option
"vga: extension=" must be set to "vbe". If PCI is present, you can assign the
"pcivga" device to a PCI slot.
2011-03-07 19:01:22 +00:00
Stanislav Shwartsman
00981cd7a6 Adding Id and Rev property to all files 2011-02-24 22:05:47 +00:00
Stanislav Shwartsman
d011594114 Added option to disable MWAIT using .bochsrc 2010-11-21 12:02:12 +00:00
Stanislav Shwartsman
3f2b440584 added compilation DATE/TIME after Bochs version string 2010-10-02 20:52:47 +00:00
Stanislav Shwartsman
1c2fa8cd0c move 1G_pages support to runtime option 2010-04-24 09:36:04 +00:00
Stanislav Shwartsman
393ec36da1 typo fix 2010-04-03 13:30:58 +00:00
Stanislav Shwartsman
3f4cf46c2d fixed crash in single cpu mode due to early construction of APIC 2010-04-03 10:14:42 +00:00
Stanislav Shwartsman
13a602d069 fix undefined CPUID options when CPU_LEVEL is too small 2010-03-05 20:42:10 +00:00
Stanislav Shwartsman
01cfbdccbc Move MMX to be runtime option 2010-03-01 18:53:53 +00:00
Stanislav Shwartsman
e3a13a7a55 Make XAPIC runtime option as well 2010-02-28 14:52:17 +00:00
Stanislav Shwartsman
5b6a14656d Make XSAVE as runtime option 2010-02-26 22:53:43 +00:00
Stanislav Shwartsman
5df864b1f1 Move param_names.h into bochs root folder 2010-02-26 14:18:19 +00:00
Stanislav Shwartsman
927c3594d6 enable compilation with CPU_LEVEL <= 6
converted SEP to runtime option as well
2010-02-26 11:44:50 +00:00
Stanislav Shwartsman
033a20b3b2 allow to configure CPU features at runtime - implemened on example of SSE/AES/MOVBE/POPCNT 2010-02-25 22:04:31 +00:00
Stanislav Shwartsman
5fec008130 change copyright to bochs project 2009-12-04 20:02:12 +00:00
Stanislav Shwartsman
aaf2937ef8 read 64-bit params for 'memory' 2009-10-17 18:17:28 +00:00
Stanislav Shwartsman
e7f0a7d830 fix defaults for new memory option 2009-10-17 17:52:26 +00:00
Stanislav Shwartsman
37b19190b3 new .bochsrc memory option 2009-10-17 17:38:58 +00:00
Stanislav Shwartsman
92aecadb18 allow to emulate more guest RAM that host could allocate, it is fine until guest tries to access all the allocated memory 2009-10-16 17:10:36 +00:00
Stanislav Shwartsman
7233fdf3c1 fixed non-printable character 2009-08-22 19:30:23 +00:00
Stanislav Shwartsman
8a95120e12 deprecate --enable-vme option, now it will be supported iff CPU_LEVEL >= 5 (like in real life) 2009-08-10 15:44:50 +00:00
Stanislav Shwartsman
54b9329b69 add BX_INFO about PCI enable in .bochsrc. 2009-08-10 15:30:43 +00:00
Stanislav Shwartsman
f29b5a97d6 fixes with long phy addr 2009-08-10 08:08:25 +00:00
Stanislav Shwartsman
cd445195dd cleanup configure options. All paging related stuff is now automatically set/unset according to cpu-level option.
Related configure options (--enable-pae, --enable-mtrr, --enable-global-pages, --enable-large-pages) are deprecated.
Less configure options - less configure problems :)
2009-06-15 09:30:56 +00:00
Volker Ruppert
3043e4f169 - removed conflicting win32-specific alarm() functions for the guis 'win32' and
'sdl'. Now both display libraries can be compiled together and used with the
  'show ips' feature. TODO: win32-specific 'show ips' timers for 'rfb' and 'wx'
2009-05-13 17:26:45 +00:00
Stanislav Shwartsman
cb312c9470 make port_e9_hack runtime option (and not configure time)
clean-up a bit in bx_dbg struct in bochs.h
2009-04-23 18:28:17 +00:00
Stanislav Shwartsman
38e77f0721 print header to stdout 2009-03-26 09:51:22 +00:00
Volker Ruppert
40fde6b89f - fixed compilation with standalone wxMSW 2009-03-24 20:17:02 +00:00
Volker Ruppert
04990bb856 - created new config interface 'win32config' using the new start menu dialog and
the existing runtime dialog ('textconfig' is still available)
- removed notify callback redirection from sdl.cc and win32.cc
- removed win32 specific code from textconfig.cc
- fixed parent window for folder selection dialog
- minor size changes in start menu dialog
2009-03-24 16:28:03 +00:00
Stanislav Shwartsman
505f876466 Fixed compilation error 2009-03-17 19:47:52 +00:00
Stanislav Shwartsman
4470c6a1c8 make ICACHE always enabled option and deprecate it in the configure script
Trace cache still can be turned off
2009-03-13 18:48:08 +00:00
Volker Ruppert
9e3dd83e85 - reduce some more dependencies and related Makefile.in updates 2009-02-23 11:06:53 +00:00
Stanislav Shwartsman
2378d31998 Fixes for DR6 handling 2009-02-01 20:47:06 +00:00
Stanislav Shwartsman
9929e6ed78 - updated FSF address 2009-01-16 18:18:59 +00:00
Volker Ruppert
8aa8b1a3db - rewrite for user plugin support with user-defined options
* initialize plugin system before parsing bochsrc and command line
  * pass previous value to bx_param_string_c handler
  * load / unload plugin in bx_param_string_handler()
  * handle user plugins after optional ones in plugin device init, reset and
    save/restore functions
  * added new siminterface method unregister_user_option()
  * removed first version of config option handling for user plugins
  * added new parameter subtree for user-defined options
  * added new bx_list_c method remove()
  * removed unused bx_devmodel_c method init_mem()
2009-01-04 21:46:20 +00:00
Stanislav Shwartsman
9d1a6a8bc2 typo bugfix 2008-12-28 20:53:31 +00:00
Stanislav Shwartsman
6367d3c5d2 Update user docs 2008-12-28 20:49:03 +00:00
Stanislav Shwartsman
8d70185b2c add info about 1G pages in main.cc 2008-12-18 19:37:05 +00:00
Stanislav Shwartsman
a2e07ff971 - Removed --enable-guest2hos-tlb configure option. The option will be
always enabled for any Bochs configuration.
2008-12-11 21:19:38 +00:00
Stanislav Shwartsman
fbd078cb70 updates for instrumentation 2008-11-18 20:58:09 +00:00
Stanislav Shwartsman
114a59d1ad - Added ability to choose Bochs log file name and Bochs debugger log file
name from Bochs command line (using new -log and -dbglog options)
2008-10-18 17:12:37 +00:00
Alexander Krisak
dcf7330e69 added additional two instrumentalization callbacks called when Bochs
started, but before reading .bochsrc and before Bochs exits.
2008-10-01 11:36:04 +00:00
Stanislav Shwartsman
7494b8823b - Support of AES CPU extensions, to enable configure with
--enable-aes option
2008-05-30 20:35:08 +00:00
Stanislav Shwartsman
3f1e436926 Removed unused variables in bx_dbg struct 2008-05-23 14:04:45 +00:00
Stanislav Shwartsman
6ed8e80d8d Print about SSE extensions support 2008-05-01 23:08:36 +00:00
Stanislav Shwartsman
67e534832b Remove from CPU reference to MEM object - it is only one and could be static 2008-04-27 19:49:02 +00:00
Stanislav Shwartsman
8424d2b888 Fixed required to make MSVC build with fastcall optimization (-Gr) healthy.
There is a trick in MSVC is to turn on the -Gr compiler switch which tells MSVC to compile all functions using fastcall calling convention. This way you don't have to edit each function declaration. But certain functions must NOT be fastcall, and those are callbacks from Windows which are defined either as cdecl or stdcall. The entry point main() also has to remain cdecl.
Patch by Darek Mihocka
2008-04-07 20:20:04 +00:00
Stanislav Shwartsman
90f1973bef Removed BX_USE_TLB - TLB is always used, only Guest2HostTLB is optional feature
Use Guest2HostTLB in prefetch code for IFETCHES - speedup above 3%
2008-04-05 20:41:00 +00:00
Stanislav Shwartsman
08f958f458 Fixed pageWriteStampTable to handle BIOS code as well - increased the table to all 4G instead of allocated memory size
Avoid checking of pageWriteStamp in the heart of cpu loop with trace cache - now decWriteStamp will post stopTraceExecution event if it hits code page
2008-03-29 21:01:25 +00:00
Stanislav Shwartsman
518774d2c9 Add missing check for MSVC in bx_atexit 2008-03-26 22:39:38 +00:00
Stanislav Shwartsman
a459a64f3e whispace, tab2space, indent, dos2unix and other cleanups 2008-02-15 22:05:43 +00:00
Stanislav Shwartsman
cdcd7522aa Added RIP to the GPR register file as lst register
This allowed to optimize (read - remove) two more BxResolve methods in 64-bit mode
+ Some white space cleanup
2008-02-15 19:03:54 +00:00
Stanislav Shwartsman
55ad3e89b6 another whitespace cleanup by Sebastien 2008-02-05 22:57:43 +00:00
Stanislav Shwartsman
192f398b46 removed --enable-magic-breakpoint configure option - it is enabled by default if Bochs internal debugger compiled in. Also it always possible to switch magic break off by .bochsrc option 2008-01-21 21:36:58 +00:00
Stanislav Shwartsman
7496ee7afa VM8086 is always ON 2007-12-21 21:16:34 +00:00
Stanislav Shwartsman
adda3befd3 Trace cache optimization merged 2007-12-09 18:36:05 +00:00
Stanislav Shwartsman
a9ea644c5c Print timestamps feature for performance measurements
If enabled (in .bochsrc) + --enable-show-ips=1 Bochs will print IPS + time data every second
2007-11-20 18:36:26 +00:00
Stanislav Shwartsman
0732e744bb again debug print in main.cc :) 2007-11-18 21:09:09 +00:00
Stanislav Shwartsman
30f42d74f1 make sreg index tables static in fetchdecode and remove them from init.cc/cpu.h 2007-11-18 21:07:40 +00:00
Stanislav Shwartsman
b75a1d9ea5 Remove debug print 2007-11-18 18:27:09 +00:00
Stanislav Shwartsman
cdc9a09090 Split more opcodes 2007-11-18 18:24:46 +00:00
Stanislav Shwartsman
5fd21257de Remove qick TLBN invalidation code - it actually only could slow down emulation 2007-11-09 21:14:56 +00:00
Stanislav Shwartsman
e137560b14 Complete MONITOR/MWAIT implemntation (including monitoring of memory range)
Fixed PANIC in read/write Cr/Dr - should #UD with unkown register used
2007-11-01 18:03:48 +00:00
Stanislav Shwartsman
d30a0d3699 warning fixes 2007-10-24 23:29:40 +00:00
Stanislav Shwartsman
42fdd8a3a1 During Bochs benchmarking I figured out that hostasm actually slow down the emulation ... so remove this ugly code which also doesn't help :)
speedup flags update for some instructions - idea was taken from DT patch by h.johansson
2007-10-21 22:07:33 +00:00
Stanislav Shwartsman
6c79b067a6 Fixed __386__ macro in guest2host memory accesses - should be LITTLE_ENDIAN instead 2007-10-16 16:17:48 +00:00
Stanislav Shwartsman
8adbbcf17c Started first implementation of MONITOR/MWAIT 2007-10-11 21:29:01 +00:00
Stanislav Shwartsman
071c5c1a26 A lot of changes but everything is really trivial.
Make save/restore default feature, the configure option for save/restore removed from configure script and save/restore made available forever. All code now assume it is exists. Bochs save/restore tree previosly called "save_restore" renamed to "bochs" tree and it will be havily used everywhere, starting from save/restore and ending by various bochs debugger functions. I am going to rework debugger code to get rid of debug CPU access functions and use this "bochs" param tree instead
2007-09-28 19:52:08 +00:00
Stanislav Shwartsman
c719eecb8d Implemented Bochs benchmarking mode according to feature request
[ 1799946 ] benchmark mode
2007-09-22 15:59:41 +00:00
Stanislav Shwartsman
ebde420f14 Fixed SMP assertion 2007-09-22 12:59:40 +00:00
Stanislav Shwartsman
71902dc8bd Print ACPI support indication 2007-09-20 18:50:01 +00:00
Stanislav Shwartsman
91e6ca8d5c Implemented MTRR support
Fixes in #PF exception priority
2007-09-20 17:33:35 +00:00
Stanislav Shwartsman
5a2ce284c3 Fixed Bochs exit in SMP mode when only one CPU present 2007-09-13 09:44:56 +00:00
Stanislav Shwartsman
40a395a3f4 Improve single threaded simulation speed in SMP binary of Bochs
This is still significantly slower than in native no-SMP binary but faster than before at least
2007-03-06 21:12:20 +00:00
Stanislav Shwartsman
c24627c00f Implemented CLFLUSH instruction
Set of minor fixes for correctness
2007-01-28 21:27:31 +00:00
Volker Ruppert
ed3a41ac63 - since the print_tree() function is only used by the debugger, it has to use
dbg_printf() to make the redirection of the output to a gui frontend possible
2006-11-12 21:25:06 +00:00
Volker Ruppert
598c34ed0a - added special logfunction for the gdbstub and set panics to fatal
- removed trailing linefeeds from log messages
- removed command line parameters from init function
- added copyright and CVS ID
2006-10-26 17:27:04 +00:00
Volker Ruppert
f348c6cf50 - fixed broken debugger "rc file" command line option. Now it is possible to
execute debugger commands from the specified file. This is the command line
  counterpart to the undocumented debugger command "source".
2006-10-24 17:53:47 +00:00
Volker Ruppert
a614b2613e - return early if Windows text console creation fails
- set title of text console for wxWidgets on win32
2006-10-15 10:45:15 +00:00
Volker Ruppert
48ed7e1ba6 - fixes for second simulation support with wxBochs
* wxBochsStopSim flag is now reset before starting the SimThread
  * the siminterface 'init_done' flag now controls the execution of the hardware
    cleanup in bx_atexit()
2006-09-23 09:07:15 +00:00
Stanislav Shwartsman
3ab94305a0 1. Fixed bug report
[ bochs-Bugs-1562172 ] TLB_init() fails to initialize priv_check array if USE_TLB 0
2. Paging is always exists for i386+
   To disable paging it is better to use normal model without special code, only by setting cr0.pg=0
2006-09-20 17:02:20 +00:00
Volker Ruppert
647b0e3e6c - removed exit() method from the devmodel object, since all that stuff can be
done by the object destructor (changes in cmos, hard drive and keyboard)
- bx_unload_plugins() now deletes the devmodel object in non-plugin mode
- CMOS device now prints the time on exit in human-readable format
2006-09-16 14:47:40 +00:00
Volker Ruppert
0a804aeb18 - memory cleanup code moved to a separate method (called from bx_atexit())
- fixed memory handler init and cleanup code (memory leaks)
2006-09-15 17:02:52 +00:00
Volker Ruppert
c07197758b - plugin unload mechanism implemented in the plugin and devices code
- added exit() method to the devmodel object for devices that need to do special
  cleanups on exit. Device plugins should call this method from their plugin_fini()
  function. If Bochs is compiled without plugin support, for non-core plugins
  the exit() method is called directly from bx_unload_plugins().
- exit() method implemented in the keyboard device
- wx "Show Keyboard" feature now only appear when the wxdebug keyboard subtree
  is not empty
- cpu cleanup must be done before the devices cleanup
- moved PCI chipset dump call to the devices exit method
2006-09-10 09:13:47 +00:00