Commit Graph

1837 Commits

Author SHA1 Message Date
Stanislav Shwartsman
d01725b1e9 Fixed compilation error on MAC 2009-02-20 08:12:51 +00:00
Stanislav Shwartsman
31a367283a small optimizations for apic code 2009-02-19 23:19:11 +00:00
Stanislav Shwartsman
7be90a7426 forgot to enable local_apic in init() 2009-02-18 22:38:58 +00:00
Stanislav Shwartsman
3564ef3162 small fixes 2009-02-18 22:33:06 +00:00
Stanislav Shwartsman
1b72e66bb3 support for apic global disable
separate between I/O apic and local apic
2009-02-18 22:25:04 +00:00
Stanislav Shwartsman
87b705d036 Changes in lapicbase msr 2009-02-17 19:44:02 +00:00
Stanislav Shwartsman
3a1852ea23 take local APIC read/write access into CPU class from BX_MEM (needed for APIC virtualization later) 2009-02-17 19:20:47 +00:00
Stanislav Shwartsman
6fb60de2b2 cpu to see up to 40 bit physical addr space 2009-02-15 18:51:13 +00:00
Stanislav Shwartsman
e8e699245f fix code duplication in cpu.h for eflags accessors 2009-02-13 20:09:56 +00:00
Stanislav Shwartsman
f1eb1d00fd do not produce fpu2mmx transition if mem write faults 2009-02-13 10:15:16 +00:00
Stanislav Shwartsman
714dc45589 Fixed typo 2009-02-13 10:10:39 +00:00
Stanislav Shwartsman
a5badd3b83 - bugfixes 2009-02-13 09:51:57 +00:00
Stanislav Shwartsman
6003f52704 Fixed compilation error + x86-64 correctness fix 2009-02-09 19:46:34 +00:00
Stanislav Shwartsman
25b7227ef2 convert some BX_DEBUG prints to BX_ERROR
fixed boundary fetch fault bug in some stupid corner cases
2009-02-08 17:37:19 +00:00
Stanislav Shwartsman
aeaf51d33a FIxed #DB exception in 64-bit mode 2009-02-06 15:25:57 +00:00
Stanislav Shwartsman
21e2692997 Fixed bug in trace cache mode 2009-02-06 15:03:47 +00:00
Stanislav Shwartsman
7c0582e4ea Some fixes for X86-64 OFF mode 2009-02-04 16:05:47 +00:00
Stanislav Shwartsman
26fda0626d Added missed CR0 reserved bits #GP in long mode 2009-02-03 21:11:31 +00:00
Stanislav Shwartsman
7d5e058dfe write to apic must be 16-byte aligned 2009-02-03 20:42:15 +00:00
Stanislav Shwartsman
fdf4f25230 revert incorret merge 2009-02-03 19:28:22 +00:00
Stanislav Shwartsman
fbc6f04d8a correctly deliver INIT 2009-02-03 19:26:09 +00:00
Stanislav Shwartsman
4499ae8d02 more info abourt SIPI 2009-02-03 19:25:37 +00:00
Stanislav Shwartsman
592484408f Initial NMI virtualization for VMX, clean out CPU pins set/clear code 2009-02-03 19:17:15 +00:00
Stanislav Shwartsman
f6cb9e529f Fixes for VMX emulation 2009-02-02 18:59:44 +00:00
Stanislav Shwartsman
3a918d21f7 VMENTER with pending dbg exceptions 2009-02-01 22:23:33 +00:00
Stanislav Shwartsman
2378d31998 Fixes for DR6 handling 2009-02-01 20:47:06 +00:00
Stanislav Shwartsman
de5814a22d Fixed compilation err 2009-01-31 15:01:29 +00:00
Stanislav Shwartsman
9430c5cf95 INIT pin is blocked when CPU is waiting for SIPI 2009-01-31 11:53:57 +00:00
Stanislav Shwartsman
82969504d8 updated CPU TODO 2009-01-31 11:34:51 +00:00
Stanislav Shwartsman
f8185a6bc6 Added Intel VMX emulation to Bochs CPU 2009-01-31 10:43:24 +00:00
Stanislav Shwartsman
a1c11c788b sepatate activity state from debug trap 2009-01-29 20:27:57 +00:00
Stanislav Shwartsman
aa982c27d8 move startup_SIPI code to CPU 2009-01-27 21:13:38 +00:00
Stanislav Shwartsman
0325c120b2 Separate PAUSE instruction from regular NOP 2009-01-27 20:29:05 +00:00
Stanislav Shwartsman
8c8ef5b869 Mask bit 11:8 of segment AR field 2009-01-23 21:28:01 +00:00
Stanislav Shwartsman
950db498c9 Fixed #DF error code 2009-01-23 18:19:57 +00:00
Stanislav Shwartsman
cd90782293 No need to save/restore EXT field 2009-01-23 17:48:38 +00:00
Stanislav Shwartsman
503cc4c836 merge fix 2009-01-23 09:33:11 +00:00
Stanislav Shwartsman
62005d4fd9 Minimize diff with VMX support branch 2009-01-23 09:26:24 +00:00
Stanislav Shwartsman
29a252b26e final version of exceptions cleanups/interface changes 2009-01-21 22:09:59 +00:00
Stanislav Shwartsman
0b3c7262d4 Wrongly committed line 2009-01-20 21:34:59 +00:00
Stanislav Shwartsman
e7ac62ac82 extensions for exception type for future 2009-01-20 21:28:43 +00:00
Stanislav Shwartsman
74b885d74b Updated instrumentation
Simplified exception code
2009-01-20 19:34:16 +00:00
Stanislav Shwartsman
c93d13d37b small cleanups 2009-01-20 18:15:25 +00:00
Stanislav Shwartsman
db098a1205 Fix dependencies of CPU code from disasm library
Regent Makefile.in for CPU
2009-01-19 19:01:03 +00:00
Stanislav Shwartsman
ef5df7c4a8 make functions from rdmsr and wrmsr - they will be reused in VMX 2009-01-19 18:08:38 +00:00
Stanislav Shwartsman
cc60240dc1 cleanup RDMSR 2009-01-19 17:43:54 +00:00
Stanislav Shwartsman
637630435e Fixed typo 2009-01-19 16:45:54 +00:00
Stanislav Shwartsman
a396c8a1ce Rework SMM mess 2009-01-17 22:35:45 +00:00
Stanislav Shwartsman
cd367becd7 remove duplicate function 2009-01-17 18:56:25 +00:00
Stanislav Shwartsman
eaa00237c1 Notify debugger about MWAIT executed 2009-01-17 16:55:13 +00:00
Stanislav Shwartsman
9929e6ed78 - updated FSF address 2009-01-16 18:18:59 +00:00
Stanislav Shwartsman
e540ee75ca cleared external debugger configure stuff from configure script and makefile 2009-01-15 21:52:52 +00:00
Stanislav Shwartsman
8af7eff93f Oops, remove future stuff 2009-01-15 17:12:18 +00:00
Stanislav Shwartsman
0836545037 Merge io.cc and io_pro.cc (required for future VMX use) 2009-01-15 16:53:08 +00:00
Stanislav Shwartsman
aee488ea3a Fixed dbg print 2009-01-13 22:54:49 +00:00
Stanislav Shwartsman
d4611072f4 Some small updates 2009-01-13 19:00:30 +00:00
Stanislav Shwartsman
da511513b3 make displ field of instruction signed 2009-01-12 20:14:37 +00:00
Stanislav Shwartsman
0ff68a2aa2 Fixed XSAVE decode in x86-64 mode 2009-01-10 16:01:55 +00:00
Volker Ruppert
501952efdd - removed unused logfunctions member 'type' and related method 'settype()'
- updated FSF address in copyright
2009-01-10 11:30:20 +00:00
Stanislav Shwartsman
6451356d2b make function to calculate allowed bits in cr4 2009-01-10 10:37:23 +00:00
Stanislav Shwartsman
836e9649d8 modify set cr0 functionality 2009-01-10 10:07:57 +00:00
Stanislav Shwartsman
4369152c70 - Make CS segment always writeable in real mode 2009-01-10 09:36:44 +00:00
Stanislav Shwartsman
6ea14b747c Fixed SEGFAULT with configurable MSRS
fixed osdep issue in win32 enhanced debugger module
2009-01-08 18:07:44 +00:00
Stanislav Shwartsman
69153fc532 added enum for memory types 2009-01-03 20:04:03 +00:00
Volker Ruppert
e12b21e647 - update all dependencies 2009-01-03 09:54:10 +00:00
Stanislav Shwartsman
87396f051a msr phy addr check use new function 2009-01-02 13:23:06 +00:00
Stanislav Shwartsman
3cd5ab1041 added phy addr check 2009-01-02 13:21:48 +00:00
Stanislav Shwartsman
16275b5298 Fixed msrs.def parsing 2008-12-30 18:16:30 +00:00
Stanislav Shwartsman
d56c3a18aa reduce include dependencies in iodev.h
Makefile.in in iodev folder have to be regerated !
2008-12-29 20:16:08 +00:00
Stanislav Shwartsman
aff71784fc Fixed possible mmory bug 2008-12-29 19:18:21 +00:00
Stanislav Shwartsman
6134ece1a2 hardware reset on triple fault 2008-12-29 17:46:42 +00:00
Stanislav Shwartsman
b7839dfcbe Optimize repeat I/O calls 2008-12-29 17:35:35 +00:00
Stanislav Shwartsman
e182e74a4d Added ability to define user MSRs spec for emulated CPU 2008-12-28 20:30:48 +00:00
Stanislav Shwartsman
a794bef607 optimize invlpg for split large pages 2008-12-19 16:03:25 +00:00
Stanislav Shwartsman
7f65e6b9ed change PANIC to ERROR 2008-12-13 18:40:39 +00:00
Stanislav Shwartsman
2682738968 added ifdefs around 1G paging implementation 2008-12-11 21:30:37 +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
69bd21bf1d 1G pages support for CPU 2008-12-11 21:00:01 +00:00
Stanislav Shwartsman
5174f9fe82 Fixed debian i386 image freeze 2008-12-08 20:01:26 +00:00
Stanislav Shwartsman
1231f64d79 move function to cpu.cc 2008-12-07 19:47:34 +00:00
Stanislav Shwartsman
24f9a22550 Fixed compilation when not in x86-64 2008-12-07 06:15:26 +00:00
Stanislav Shwartsman
35487c3ebd get/set_segment_ar_data prepared for future reuse in other than SMM mode 2008-12-06 18:52:02 +00:00
Stanislav Shwartsman
15fa42963f get/set_segment_ar_data prepared for future reuse in other than SMM mode 2008-12-06 18:01:00 +00:00
Stanislav Shwartsman
f9ce1171fe rename crreg accessors 2008-12-06 10:21:55 +00:00
Stanislav Shwartsman
25e05d9a60 forgot to mark code access as code 2008-12-06 07:14:40 +00:00
Stanislav Shwartsman
d7fa44d270 optimize code access detection 2008-12-05 22:34:42 +00:00
Stanislav Shwartsman
b3bbf8ded2 define generic MSR 2008-12-05 13:10:51 +00:00
Stanislav Shwartsman
70e9f4c161 preparing to different way of handling MSR registers 2008-12-05 12:48:36 +00:00
Stanislav Shwartsman
ae4e5cea65 Fixed param tree overflow 2008-12-04 20:26:06 +00:00
Stanislav Shwartsman
ef36cec716 moving definition to config.h 2008-12-01 19:35:25 +00:00
Stanislav Shwartsman
098308dd9f some variable renames + comp warn fix 2008-12-01 19:06:14 +00:00
Stanislav Shwartsman
f69ac41e59 added infrastructure for init disable 2008-12-01 18:54:24 +00:00
Stanislav Shwartsman
e402062499 -Fixes for INVLPG 2008-11-29 19:28:10 +00:00
Stanislav Shwartsman
cde9595e86 implement cluster addressing model in local apic
deliver INIT IPI through local apic
2008-11-20 18:44:15 +00:00
Stanislav Shwartsman
fbd078cb70 updates for instrumentation 2008-11-18 20:58:09 +00:00
Stanislav Shwartsman
3d60e1e20d Fixed CPU state after software reset (INIT).
Update instrumentation.
Clean extra space from plugin.h biosdev device name
2008-11-18 20:55:59 +00:00
Stanislav Shwartsman
d12e1fc290 Fixed CPU runway after pressing reset button 2008-11-13 22:58:54 +00:00
Stanislav Shwartsman
dbca1fb130 Fix another corner case in prefetch() 2008-11-11 17:44:19 +00:00
Stanislav Shwartsman
5f9afb550a Fix in cpu.cc 2008-11-09 22:33:44 +00:00
Stanislav Shwartsman
857392583a - Fixed exceptions handling in v8086 mode 2008-11-09 22:08:21 +00:00
Stanislav Shwartsman
0f5f075e4d - Fixed theoretically possible pageWriteStamp overflow 2008-10-21 19:50:05 +00:00
Stanislav Shwartsman
82815c4bef Put back simple hash function for icache and trace cache - more cache misses but still ~3% speedup 2008-10-14 17:23:53 +00:00
Stanislav Shwartsman
c11ad9405d one more 2008-10-10 21:09:25 +00:00
Stanislav Shwartsman
5261e6f73a Optimize prefetch() method 2008-10-10 20:49:16 +00:00
Stanislav Shwartsman
577c8c7969 another way to do the same optimization 2008-10-08 20:40:26 +00:00
Stanislav Shwartsman
17040303f7 Optimization of repeat string 2008-10-08 20:15:37 +00:00
Stanislav Shwartsman
ab716f62aa inline prepareMMX method 2008-10-08 11:14:35 +00:00
Stanislav Shwartsman
489447ae57 Fixed FPU2MMX state transition - should be done only fater all memory faults already checked 2008-10-08 10:51:38 +00:00
Alexander Krisak
e108fe0d58 Yet another win32 build fix. cpu/resolve.cc renamed to cpu/resolver.cc
because it conflicts with disasm/resolve.cc.
2008-10-07 07:47:56 +00:00
Stanislav Shwartsman
52a0eb2143 - Avoid 32-bit EIP wrap in prefetch() 2008-10-06 22:19:22 +00:00
Stanislav Shwartsman
3b0e84d9e3 The same again 2008-10-06 20:41:28 +00:00
Stanislav Shwartsman
367116ee3d Do not access 64-bit vars when guaranteed to be in 32-bit mode with upper part of ther RIP/RSP cleared 2008-10-06 20:26:14 +00:00
Stanislav Shwartsman
67fae3ab41 Fixed compilation 2008-10-06 20:06:30 +00:00
Stanislav Shwartsman
4cf63f4804 Delete unused file 2008-10-06 20:05:23 +00:00
Stanislav Shwartsman
2066d8b594 Fixed compilation issues 2008-10-06 17:50:06 +00:00
Stanislav Shwartsman
fe0456d519 Remove extra ;; 2008-10-03 17:00:46 +00:00
Stanislav Shwartsman
fb71c07b15 Fixes for MONITOR/MWAIT - the feature is still EXPERIMENTAL ONLY ! 2008-10-03 16:53:08 +00:00
Stanislav Shwartsman
5d0a807f0e CR1 is not exists 2008-10-02 18:14:52 +00:00
Stanislav Shwartsman
c009e87a81 Remove external debugger interface:
- it is closed source (!!!)
 - we have very nice replacement now
2008-10-01 09:44:40 +00:00
Stanislav Shwartsman
dee5b0a7a6 Correctly set DR6 when instr BP detected 2008-09-26 20:41:41 +00:00
Stanislav Shwartsman
8adcf06f27 Fixed bug 2008-09-25 19:19:40 +00:00
Stanislav Shwartsman
3d97374ce8 Some fixes for functionality 2008-09-24 10:39:35 +00:00
Stanislav Shwartsman
cbadccb63c Fixed DR6 handling 2008-09-23 19:33:37 +00:00
Stanislav Shwartsman
0966fe8621 Fix corruption when executing WBINVD in SMP 2008-09-23 17:33:18 +00:00
Alexander Krisak
a6cce95418 fixed compillation 2008-09-23 13:25:32 +00:00
Stanislav Shwartsman
5aaeb331fe Fixed typo 2008-09-22 21:41:22 +00:00
Stanislav Shwartsman
3b276bc9fe Implement modern BIOS mode for limiting max reported CPUID function to 3.
This mode is required in order to correctly boot and install WinNT guest
2008-09-22 21:38:15 +00:00
Stanislav Shwartsman
b0abb5d6a6 task switch fixes 2008-09-22 19:53:47 +00:00
Stanislav Shwartsman
bc381e51da very small cleanups 2008-09-19 19:18:57 +00:00
Stanislav Shwartsman
39d4db5564 - No alignment check required for 16-byte 'unaligned' access 2008-09-18 17:37:28 +00:00
Stanislav Shwartsman
db664c4012 more optimizations after fetchdecode 2008-09-16 20:57:16 +00:00
Stanislav Shwartsman
d7fdaaad5b remove not needed index set 2008-09-16 19:22:13 +00:00
Stanislav Shwartsman
a9c77eb75d Try to optimize individual instructions after fetchdecode 2008-09-16 19:20:03 +00:00
Stanislav Shwartsman
7566faf948 A bit simplify FPU decoding 2008-09-16 18:28:53 +00:00
Stanislav Shwartsman
7657ae626e Change error message level 2008-09-14 20:58:20 +00:00
Stanislav Shwartsman
d57a211df9 Fixed handling of prefixes for EMMS
Small FPU optimization
2008-09-12 20:59:31 +00:00
Stanislav Shwartsman
2b2fd6e810 Fixed SMM valid bit save/restore for sregs 2008-09-11 21:54:57 +00:00
Stanislav Shwartsman
23933d731c Remove 4G limit optimization that didn't work quite well 2008-09-08 20:47:33 +00:00
Stanislav Shwartsman
b03f940807 optimize seg_override decoding 2008-09-08 16:15:59 +00:00
Stanislav Shwartsman
f5ba90da55 Misaligned check small optimization 2008-09-08 15:45:57 +00:00
Stanislav Shwartsman
a95c24b019 Some functions could be called only from 32 bit 2008-09-06 21:18:08 +00:00
Stanislav Shwartsman
c1306f7d75 small non-significant speedups 2008-09-06 21:10:40 +00:00
Stanislav Shwartsman
b3b2f77675 Reduce size of Bochs static tables by changing from bx_bool (which is 32bit) to Bit8u 2008-09-06 18:21:29 +00:00
Stanislav Shwartsman
0cd11fd385 Updated instrumentation callbacks - removed fetchdecode_completed callback 2008-09-06 17:49:32 +00:00
Stanislav Shwartsman
7145d240f4 Optimize system read using Guest2Host TLB 2008-09-06 17:44:02 +00:00
Stanislav Shwartsman
f6531f6df9 -Fixed alignment chek to be on laddr instead of eaddr for CMPXCHG16B 2008-09-05 21:43:12 +00:00
Stanislav Shwartsman
7a57ccd435 - Partially fixed x87 Underflow/Overflow (#P) unmasked responce 2008-09-02 19:46:55 +00:00
Stanislav Shwartsman
bdf25fa3ca Inexact Result (#P) unmasked responce
CVS ----------------------------------------------------------------------
2008-09-02 05:38:36 +00:00
Stanislav Shwartsman
398f80a214 - Fixed CALL FAR between legacy and 64-bit modes 2008-08-31 06:04:14 +00:00
Stanislav Shwartsman
bf9eea4fa5 - Fixed segment limit violations with 4G segment limit 2008-08-30 15:00:38 +00:00