Commit Graph

2555 Commits

Author SHA1 Message Date
Stanislav Shwartsman
74fc3da79d conditional compile for generic cpuid 2011-07-28 19:20:16 +00:00
Stanislav Shwartsman
5da595e603 fixed OSXSAVE CPUID reporting 2011-07-28 16:38:22 +00:00
Stanislav Shwartsman
6ef7675d03 added new file 2011-07-28 16:21:18 +00:00
Stanislav Shwartsman
6ad0f5ddb2 regenerate dep for CPU 2011-07-28 16:19:30 +00:00
Stanislav Shwartsman
78327d3e5e First step toward completely configurable CPU.
Change CPUID to generic interface which could be chosen from .bochsrc.
Bochs CPU emulation will enable/disable features (like instruction sets) according to CPUID that is selected.
TODO: Add database of CPUID from real hardware CPUs
2011-07-28 16:17:42 +00:00
Stanislav Shwartsman
81f6a283e2 trim cpuid info from save/restore tree 2011-07-27 14:16:51 +00:00
Stanislav Shwartsman
f8e4e7f16b clean up/fixed instrumentation examples + removed old 2-years old configure options check (deprecated) 2011-07-23 19:58:38 +00:00
Stanislav Shwartsman
d11114ac19 Patch for emulating target with larger memory than host has available by Gary Cameron.
The patch was posted in mailing list at Thu 6/16/2011.

Desription for CHANGES:

- Memory
  - Added new configure option which enables RAM file backing for large guest
    memory with a smaller amount host memory, without causing a panic when
    host memory is exhausted (patch by Gary Cameron). To enable configure with
        --enable-large-ramfile option.
2011-07-22 17:46:06 +00:00
Stanislav Shwartsman
1e2c7de064 register state for pause-loop exiting 2011-07-22 09:28:31 +00:00
Stanislav Shwartsman
9c3a4b8dab impemented pause-loop exiting VMX2 control 2011-07-22 09:19:35 +00:00
Stanislav Shwartsman
d1780b66de typofix 2011-07-21 21:34:56 +00:00
Stanislav Shwartsman
b4118fcbfe correct natural width VMX field read/write len 2011-07-21 20:58:54 +00:00
Stanislav Shwartsman
a69eeb13f3 move cpuid defs to cpuid.h 2011-07-19 21:14:07 +00:00
Stanislav Shwartsman
cac3c836fa fixed typo 2011-07-18 21:47:14 +00:00
Stanislav Shwartsman
cddd1e3758 MONITOR/MWAIT: Do monitor on cache line granularity only + bugfix with possible TLB caching of monitored line 2011-07-18 21:44:22 +00:00
Stanislav Shwartsman
f81e47cca2 it is better to handle A20 in paging already 2011-07-18 20:22:59 +00:00
Stanislav Shwartsman
6e993adec7 small cleanup 2011-07-17 19:28:27 +00:00
Stanislav Shwartsman
041605f718 fixed corner case issue with SMP 2011-07-11 17:29:54 +00:00
Stanislav Shwartsman
28a58f4ea5 fix rdtscp code 2011-07-09 22:28:08 +00:00
Stanislav Shwartsman
432bf97197 was playing with SMP and debugger 2011-07-09 22:17:16 +00:00
Stanislav Shwartsman
92c4bd6f2b forgot to merge file 2011-07-08 14:07:45 +00:00
Stanislav Shwartsman
002c86660a reword all the CPU code in preparation for future CPU speedup implementation.
Bochs emulation can be another 10-15% faster using technique described in paper
"Fast Microcode Interpretation with Transactional Commit/Abort"
http://amas-bt.cs.virginia.edu/2011proceedings/amasbt2011-p3.pdf
2011-07-06 20:01:18 +00:00
Stanislav Shwartsman
82a2ab6325 removed wrongly committed file 2011-07-03 16:05:41 +00:00
Stanislav Shwartsman
909e750549 Implemented VMX preemption timer VMEXIT control (patch by Jianan Hao) 2011-07-03 15:59:48 +00:00
Stanislav Shwartsman
2c168b2855 bugfix 2011-06-28 18:53:20 +00:00
Stanislav Shwartsman
90c4a74362 typo fix 2011-06-28 16:29:11 +00:00
Stanislav Shwartsman
08ba847ce4 fix bug inserted with prev commit + cleanup 2011-06-28 16:04:40 +00:00
Stanislav Shwartsman
f765b9fc58 cleanup 2011-06-27 19:48:13 +00:00
Stanislav Shwartsman
f7c6bd1134 clean code dupication 2011-06-27 19:27:49 +00:00
Stanislav Shwartsman
a1a140682c cleanup 2011-06-26 20:22:04 +00:00
Stanislav Shwartsman
68f96846fe no need to define 3b opcodes on < 80x686 2011-06-26 19:39:48 +00:00
Stanislav Shwartsman
87953711b1 cleanup in mmx code 2011-06-26 19:31:42 +00:00
Stanislav Shwartsman
2f582db722 compile less stuff for cpu-level=5 2011-06-26 19:15:30 +00:00
Stanislav Shwartsman
5ef9f8acf8 cleanup 2011-06-26 17:25:25 +00:00
Stanislav Shwartsman
beafa7c88b improved x86 hw code bp handling 2011-06-24 13:38:34 +00:00
Stanislav Shwartsman
7e57d95364 Fix wrong address translation in debugger 2011-06-24 13:05:36 +00:00
Volker Ruppert
e4fe7f0c8f - add some symbols required by MSVC for device plugins 2011-06-15 21:55:48 +00:00
Stanislav Shwartsman
31be835056 bugfix + rename function 2011-06-14 19:56:28 +00:00
Stanislav Shwartsman
31914e4a26 fixed compilation with avx off 2011-06-11 20:12:15 +00:00
Stanislav Shwartsman
778154b3b2 one more fix 2011-06-11 18:27:37 +00:00
Stanislav Shwartsman
ef38c9e235 fix decode for VCVTPH2PS 2011-06-11 18:26:05 +00:00
Stanislav Shwartsman
8399dee24c implemented AVX float16 convert instructions 2011-06-11 13:12:32 +00:00
Stanislav Shwartsman
d7f19bcfd4 optimize sse DAZ feature + optimization for AVX OFF 2011-06-11 12:22:54 +00:00
Stanislav Shwartsman
3f075d1ddf disasm for invpcid 2011-06-10 12:49:52 +00:00
Stanislav Shwartsman
77e15511be AVX2 and BMI instructions were published on http://software.intel.com/en-us/avx 2011-06-10 08:46:10 +00:00
Stanislav Shwartsman
acf2175d6d paging small change 2011-06-03 20:50:55 +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
04e9254e2c AMD released new Vol4: 128 and 256 bit vector instructions, dropped SSE4A 2011-05-30 20:15:50 +00:00
Stanislav Shwartsman
1ba77b9f10 fixed defined but not used warnings 2011-05-29 20:42:47 +00:00
Stanislav Shwartsman
0de8b08f24 fixed too few arguments for format warning 2011-05-29 20:09:31 +00:00
Stanislav Shwartsman
5748c6b9f5 first fix for SMEP 2011-05-29 18:08:37 +00:00
Stanislav Shwartsman
ee3f9e36cb Implemented Supervisor Mode Execution Protection (SMEP) 2011-05-29 16:28:26 +00:00
Stanislav Shwartsman
6ace540891 update for rev39 of Intel SDM 2011-05-28 20:20:25 +00:00
Stanislav Shwartsman
75ec0f835e small bug fix for 32-bit linear addr wrap 2011-05-27 08:50:38 +00:00
Stanislav Shwartsman
e0160b4f29 ability to turn on/off AVX if compiled in 2011-05-24 20:33:36 +00:00
Stanislav Shwartsman
de95fa8e13 more changes towards configurable cpuid 2011-05-24 18:23:28 +00:00
Stanislav Shwartsman
92bb77ef1d Merge patch from SF tracker:
[3298173] Breakpoint on VMEXIT event by Jianan Hao

Patch description:

The patch provides a new command "vmexitbp" to set breakpoint when VM guest exit. The simulation will be stopped before first HOST mode instruction is executed.

Usage:
Type "vmexitbp" in debugger command window to switch it on/off (similar to modebp).


Currently, the patch has no corresponding interface on GUI debugger. Someone may add it if interested.
2011-05-06 08:19:03 +00:00
Stanislav Shwartsman
a02ddb36d2 undo a change from 2 weeks ago that cause correctness failure 2011-05-06 08:03:45 +00:00
Stanislav Shwartsman
9fbf7d2f15 small cleanups 2011-05-04 05:53:17 +00:00
Stanislav Shwartsman
d440a5eda0 avx bug fix 2011-04-29 23:06:50 +00:00
Stanislav Shwartsman
c44f82f4ac small cleanup 2011-04-25 20:26:22 +00:00
Stanislav Shwartsman
c3a31d3cf0 applied patch bochs-110423-builtinbswap.patch 2011-04-25 15:20:27 +00:00
Stanislav Shwartsman
a02d8cfe67 cleanups, simplications, copyright updates 2011-04-23 20:39:27 +00:00
Stanislav Shwartsman
4f46b6eab2 bcd flags handling change 2011-04-23 10:49:36 +00:00
Stanislav Shwartsman
610df62e93 fixed segfault with x86-64 disabled 2011-04-22 17:56:27 +00:00
Stanislav Shwartsman
a1b523dacd warning fix 2011-04-22 15:18:05 +00:00
Stanislav Shwartsman
fb360ac334 bugfix 2011-04-22 07:39:38 +00:00
Stanislav Shwartsman
5230bd27ee added/fixed comments 2011-04-21 15:51:36 +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
Stanislav Shwartsman
9aaeea3fda remove icache.h code that was added for studies in trace cache 2011-04-15 04:48:37 +00:00
Stanislav Shwartsman
74792e6841 update CHANGES 2011-04-15 04:46:27 +00:00
Stanislav Shwartsman
69b829a935 small fixes 2011-04-12 06:05:31 +00:00
Stanislav Shwartsman
6e79fdfb1e optimize data hw breakpoint 2011-04-09 05:12:28 +00:00
Stanislav Shwartsman
0de9a5f75d compilation fix 2011-04-08 16:20:26 +00:00
Volker Ruppert
c78026a9a2 - deleted executable properties from source files 2011-04-03 10:29:19 +00:00
Stanislav Shwartsman
bee5940167 fixed compilation err with trace cache off 2011-04-03 03:43:38 +00:00
Stanislav Shwartsman
734744847e fix cpuid.h (c) 2011-04-03 03:40:25 +00:00
Stanislav Shwartsman
2b596e1bc4 warning fix 2011-03-27 15:17:38 +00:00
Stanislav Shwartsman
4de76b0571 introduced victim cache for a trace cache structure.
Allows to significantly  cut trace cache miss latenct and find data in victim cahe instead of redoding it 
8 entries VC in parallel with direct map 64K entries
2011-03-25 23:06:34 +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
dd36d3c754 fixed code breakpoint hit 2011-03-24 19:06:58 +00:00
Stanislav Shwartsman
0a88065722 updated instrumentation callbacks 2011-03-22 22:18:40 +00:00
Stanislav Shwartsman
31dd6a70db small cleanups 2011-03-20 21:16:45 +00:00
Stanislav Shwartsman
7664c55b08 first fixups after AVX
(and for AVX)
2011-03-20 18:27:31 +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
Stanislav Shwartsman
16021a0ddb rename model_specific.h to be cpuid.h 2011-03-19 17:35:18 +00:00
Stanislav Shwartsman
1aaf596d79 small fixes 2011-03-19 17:19:41 +00:00
Stanislav Shwartsman
96312698f6 fixed typo 2011-03-15 20:31:49 +00:00
Stanislav Shwartsman
6deb746464 do not handle reserved bits yet 2011-03-15 20:22:17 +00:00
Stanislav Shwartsman
63fe52f601 accessors for DR6 and DR7 fields 2011-03-15 20:20:15 +00:00
Stanislav Shwartsman
edd7c2d787 small reorg in cpuid code 2011-03-14 20:28:16 +00:00
Stanislav Shwartsman
acd320699d small cleanups 2011-03-14 06:25:54 +00:00
Stanislav Shwartsman
aff763349d Fixed save/restore of segments in real mode (valid bit was corrupted) 2011-03-12 09:56:43 +00:00
Stanislav Shwartsman
93e152ef1a no need to read ignore_bad_msrs on every reset 2011-03-05 18:54:23 +00:00
Stanislav Shwartsman
3b8903e19d there is no need to duplicate ignore_bad_msrs in param tree, this knob is loaded from options anyway 2011-03-05 18:47:48 +00:00
Stanislav Shwartsman
2bef4597d6 volatile is redundant here 2011-03-03 19:51:29 +00:00
Stanislav Shwartsman
f600fcf6c1 limit family values for CPUID 2011-02-26 20:50:26 +00:00
Stanislav Shwartsman
acb83acfa7 Fixed decoding of CRC32 instr 2011-02-26 20:43:11 +00:00
Stanislav Shwartsman
c15220bdeb assertion about misconfigured cpuid family 2011-02-25 17:54:50 +00:00
Stanislav Shwartsman
2d1d41e731 CPUID is not available when cpu-level=3 2011-02-25 16:27:01 +00:00
Stanislav Shwartsman
5a8c57fe65 end trace on setbv instruction 2011-02-25 15:19:12 +00:00
Stanislav Shwartsman
66682a0ba7 added ability to configure CPU family and model through .bochsrc 2011-02-25 15:05:48 +00:00
Stanislav Shwartsman
7d80a6ebe0 Adding Id and Rev property to all files 2011-02-24 21:54:04 +00:00
Stanislav Shwartsman
e4c7e21c2c added comment (check how SVN updates $Id tag) 2011-02-24 21:34:44 +00:00
Stanislav Shwartsman
d84b2d546d Update Makefile.in (dep on vmx.h was missed) 2011-02-19 20:01:34 +00:00
Stanislav Shwartsman
57d01889b1 Fixed PCMPGTQ instruction 2011-02-19 11:00:43 +00:00
Stanislav Shwartsman
d8a2736d72 VMX pw loads should ask for RD perm 2011-02-19 08:31:05 +00:00
Stanislav Shwartsman
2d3f3668c7 Fixed IRET 64-bit mode bug
Support for 32 float copare methods for AVX
ckeanups in fetchdecode
2011-02-13 06:10:11 +00:00
Stanislav Shwartsman
faa8ee63a5 fixes to sse_move.cc 2011-02-11 10:08:42 +00:00
Stanislav Shwartsman
b5ebe5865e Fixes for incoming bug report, missed changes in CVS, repository fixups and etc 2011-02-11 09:56:23 +00:00
Stanislav Shwartsman
498b591452 quick code reorg that gives 3% speedup 2011-01-26 11:48:13 +00:00
Stanislav Shwartsman
5915d92775 very small optimizations + indent 2011-01-25 20:59:26 +00:00
Volker Ruppert
44ece7cf26 - including vga.h in iodev.h no longer necessary and symbol NO_DEVICE_INCLUDES
is useless then
- updated makefile dependenies
2011-01-24 20:35:51 +00:00
Stanislav Shwartsman
e20cbb9bf4 scan less icache entries when doing SMC flush 2011-01-23 17:21:34 +00:00
Stanislav Shwartsman
f1821fa3bf SMC invalidation only for traces that were really affected by SMC store 2011-01-23 15:54:54 +00:00
Stanislav Shwartsman
12005d92cf split more SSE ops 2011-01-21 19:46:44 +00:00
Stanislav Shwartsman
0de2b305bc split SSE opcode 2011-01-21 19:21:16 +00:00
Stanislav Shwartsman
a31103e7d8 optimize fetchdecode tables - part2 2011-01-21 16:07:51 +00:00
Stanislav Shwartsman
fbc9b8b190 phase1 of opcode tables optimization 2011-01-20 16:24:42 +00:00
Stanislav Shwartsman
5917eb29ab sse + mmx optimizations 2011-01-16 21:01:28 +00:00
Stanislav Shwartsman
8c5c078b13 optimize sse and mmx code 2011-01-16 20:42:28 +00:00
Stanislav Shwartsman
d5ec286b3f fix for SMC detection for page split 2011-01-15 22:14:44 +00:00
Stanislav Shwartsman
2dd1b67564 clenaup 2011-01-15 21:46:41 +00:00
Stanislav Shwartsman
906805bb68 fix SMC detection when trace cache is not compiled in 2011-01-15 17:08:07 +00:00
Stanislav Shwartsman
45f0c72385 remove duplicated instr 2011-01-15 15:17:28 +00:00
Stanislav Shwartsman
7511729424 cleanup 2011-01-13 21:36:56 +00:00
Stanislav Shwartsman
6a20d16562 indent 2011-01-13 20:48:29 +00:00
Stanislav Shwartsman
2ce1bd299c conditional compiling with misaligned sse 2011-01-12 20:16:25 +00:00
Stanislav Shwartsman
9a2b9296f1 bugfix in leaf[0xD] report 2011-01-12 20:12:05 +00:00
Stanislav Shwartsman
f4cd9b8ac9 flush only required entries on SMC 2011-01-12 19:53:47 +00:00
Stanislav Shwartsman
fcdadabbc4 Rewritten SMC handling, removed pageWriteStamp, now trace fetch chck only for pAddr 2011-01-12 18:49:11 +00:00
Stanislav Shwartsman
4539848451 Fixed VMX bug reported by Russ Cox 2011-01-10 22:37:05 +00:00
Stanislav Shwartsman
e31eb4a677 typo bug fixed 2011-01-10 06:27:19 +00:00
Stanislav Shwartsman
85234807d1 fixed typo 2011-01-09 20:36:13 +00:00
Stanislav Shwartsman
a80b44b6db split more sse ops 2011-01-09 20:18:02 +00:00
Stanislav Shwartsman
c5aca5ac21 move function to inline 2011-01-08 19:50:22 +00:00
Stanislav Shwartsman
37204c0aaa split more SSE ops 2011-01-08 12:28:25 +00:00
Stanislav Shwartsman
a1bc92a46b split more SSE opcodes 2011-01-08 11:20:29 +00:00
Stanislav Shwartsman
205351f44e Split R/M all SSE fetchdecode tables
- next step optimize tables
2011-01-08 09:53:52 +00:00
Stanislav Shwartsman
fe0685c7f9 fine granular SMC detection (128b granularity used)
significant reduction (>80%) of false SMC flushes
2011-01-04 16:17:20 +00:00
Stanislav Shwartsman
2946d0ac26 split more SSE ops 2010-12-30 21:45:39 +00:00
Stanislav Shwartsman
f9f868247a split more SSE ops 2010-12-30 20:35:10 +00:00
Stanislav Shwartsman
fd5558d4be another way to implement this op 2010-12-26 20:54:23 +00:00
Stanislav Shwartsman
25b1e2e58d split more SSE ops 2010-12-26 20:41:47 +00:00
Stanislav Shwartsman
cb43e52240 asize mask 2010-12-25 19:46:07 +00:00
Stanislav Shwartsman
f705cbbc63 rename functions 2010-12-25 19:34:43 +00:00
Stanislav Shwartsman
1bd512e98d split more SSE ops, optimizations in MMX code 2010-12-25 17:04:36 +00:00
Stanislav Shwartsman
d0ee1c1b80 Fixed for compilation with cpu-level=3 2010-12-25 15:00:20 +00:00
Stanislav Shwartsman
c005444d5b split more SSE opcodes 2010-12-25 07:59:15 +00:00
Stanislav Shwartsman
fee7a91d86 Fixed compilation with cpu-level=3 2010-12-24 16:34:55 +00:00
Stanislav Shwartsman
040a8e1a3a split bunch of SSE opcodes 2010-12-24 08:35:00 +00:00
Stanislav Shwartsman
709059ddcc integrate misaligned SSE into code 2010-12-22 21:24:19 +00:00
Stanislav Shwartsman
43600f3756 complete rework of SSE code
next step - split all SSE opcodes by ModC0
2010-12-22 21:16:02 +00:00
Stanislav Shwartsman
a63b9900a7 optimization 2010-12-19 22:50:28 +00:00
Stanislav Shwartsman
29a674e520 split rd/wr CR opcodes for simplicity 2010-12-19 22:36:19 +00:00
Stanislav Shwartsman
c7017b1c05 simplification 2010-12-19 21:41:15 +00:00
Stanislav Shwartsman
f2355a8249 Fixed FXSAVE/FXRSTOR exceptions order 2010-12-19 21:07:46 +00:00
Stanislav Shwartsman
4a85a8680e SSE optimization 2010-12-19 07:06:40 +00:00
Stanislav Shwartsman
48d94d6dc3 optimization 2010-12-18 11:58:16 +00:00
Stanislav Shwartsman
1047acb2cc rename SSE register param - prepare for wide SSE register (AVX) 2010-12-06 21:52:41 +00:00
Stanislav Shwartsman
d60b7c0919 rename accessor for opcodeReg() in instruction 2010-12-06 21:45:56 +00:00
Stanislav Shwartsman
dab658f136 update with AMD CPUID spec from sep2010 2010-11-27 20:20:32 +00:00
Stanislav Shwartsman
4a8d69caf6 bugfix for x86-64 mode 2010-11-23 15:42:26 +00:00
Stanislav Shwartsman
9aa503cb9d fixed warnings for win64 compilation 2010-11-23 14:59:36 +00:00
Stanislav Shwartsman
d011594114 Added option to disable MWAIT using .bochsrc 2010-11-21 12:02:12 +00:00
Stanislav Shwartsman
4feda0c3fe compilation fix w/o vmx 2010-11-19 08:39:52 +00:00
Stanislav Shwartsman
8c45aa2454 fixed buffer overflow in perv commit 2010-11-13 09:18:16 +00:00
Stanislav Shwartsman
36291b0b1d accessor to upper part of 64-bit reg 2010-11-12 20:46:59 +00:00
Stanislav Shwartsman
c676875421 vmcs read/write check 2010-11-12 20:26:01 +00:00
Stanislav Shwartsman
e6981218dc next step for fully configurable CPU + more optimal VMX execution
- check at startup time which VMX fields are accessible
- next step: simplify VMREAD and VMWRITE instructions - eliminate switch statements
2010-11-11 21:41:03 +00:00
Stanislav Shwartsman
a6d2047f4d dos2unix 2010-11-11 17:09:13 +00:00
Stanislav Shwartsman
93cc615a40 moved vmcs stuff to separate file 2010-11-11 16:25:45 +00:00
Stanislav Shwartsman
49c85b07f6 Fixed address size wrap 2010-10-18 22:19:45 +00:00
Stanislav Shwartsman
5ea2591cd9 fixes 2010-10-07 20:40:01 +00:00
Stanislav Shwartsman
13e2b6eba1 added new file 2010-10-07 16:40:00 +00:00
Stanislav Shwartsman
6d089dd238 changed CPUID constants to defines 2010-10-07 16:39:31 +00:00
Stanislav Shwartsman
e3431a98e6 Bugfix for 32-bit shift/rotate in 64-bit mode 2010-10-01 09:13:21 +00:00
Stanislav Shwartsman
dcc11e1b85 naming change 2010-09-28 14:18:58 +00:00
Stanislav Shwartsman
f2a87171c1 Fixed BX_INSTR_OPCODE callback, now its implementation closer to original definition.
New, updated definition of the callback:

	void bx_instr_opcode(unsigned cpu, const Bit8u *opcode, unsigned len, bx_bool is32, bx_bool is64);

The  callback  is  called  each  time, when Bochs completes  to  decode  a new
instruction.  Through  this callback function Bochs could provide an opcode of
the instruction, opcode length and an execution mode (16/32/64).

Please note, that Bochs uses translation  caches so each simulated instruction
might be executed multiple times but decoded only once.
2010-09-27 15:29:36 +00:00
Stanislav Shwartsman
9ed116ada7 avoid similar issues (like it was in mmx.cc) in future 2010-09-26 20:35:24 +00:00
Stanislav Shwartsman
471d33fc1d fix BE issue 2010-09-26 20:20:27 +00:00
Stanislav Shwartsman
f655e33779 imm mode2 could be only with imm_mode1 2010-09-25 10:17:04 +00:00
Stanislav Shwartsman
75f2ae9c18 fetchdecode simplification rework 2010-09-25 09:55:40 +00:00
Stanislav Shwartsman
8308a47168 trying to get rid of b1() in instruction class 2010-09-24 21:15:16 +00:00
Stanislav Shwartsman
369aba757d style change 2010-09-23 20:38:02 +00:00
Stanislav Shwartsman
e0fcc80ec3 introduce bswap functions, big endian fix for CPUID 2010-09-20 20:43:16 +00:00
Stanislav Shwartsman
a0705392d3 Fixed failure on BE hosts 2010-09-12 17:33:34 +00:00
Stanislav Shwartsman
1107ce138e small fetchdecode optimization 2010-09-07 19:54:50 +00:00
Stanislav Shwartsman
31e8bfc5a7 Fixed fsgsbase cpuid bit 2010-07-22 20:19:00 +00:00
Stanislav Shwartsman
55cb12badf fixed missed canonical failure on system access 2010-07-22 20:12:25 +00:00
Stanislav Shwartsman
91ac0df65c implemented GS/FS BASE access instructions published in _319433-007.pdf document 2010-07-22 16:41:59 +00:00
Stanislav Shwartsman
7f7c249934 disasm and some cpuid code according to recently published AVX_319433-007.pdf document 2010-07-22 15:12:08 +00:00
Stanislav Shwartsman
cd6314b65c Added ability to configure CPUID stepping through .bochsrc.
Next is CPUID model/extended model.
2010-07-16 21:03:52 +00:00
Stanislav Shwartsman
59ad9d8de8 Fixes 2010-07-15 20:18:03 +00:00
Stanislav Shwartsman
41ddb26c6f Fixed save/restore of x87 regs 2010-07-01 20:00:33 +00:00
Stanislav Shwartsman
4cf15cd18b Fixed RDTSCP VMEXIT reason 2010-07-01 16:31:46 +00:00
Stanislav Shwartsman
d47c84320a swap bits in instr 2010-06-29 19:38:56 +00:00
Stanislav Shwartsman
8e94474e03 bug fix 2010-06-21 05:35:45 +00:00
Stanislav Shwartsman
8099effaf5 typo 2010-06-18 14:24:45 +00:00
Stanislav Shwartsman
9ec1d79b8c warning fix 2010-06-18 14:15:53 +00:00
Stanislav Shwartsman
eaa2e0e0ea [PATCH] cpu/init.cc: proper CPL restore in after_restore_statE 2010-06-04 20:31:04 +00:00
Stanislav Shwartsman
23a28d2892 Fixed compilation with vs2008 2010-06-03 19:36:13 +00:00
Stanislav Shwartsman
f3980b522f bugfux 2010-06-02 05:44:12 +00:00
Stanislav Shwartsman
67aec1dc22 warning fix 2010-05-26 18:37:54 +00:00
Stanislav Shwartsman
84880793f3 optimize for speed 2010-05-26 18:34:25 +00:00
Stanislav Shwartsman
95df639614 compilation fix 2010-05-25 18:52:01 +00:00
Stanislav Shwartsman
8d8d1590f5 fetchdecide rework for AVX (0xF3 SSE prefix encoded as 2 in VEX) 2010-05-23 19:17:41 +00:00
Stanislav Shwartsman
b2dffd9258 undo incorrect change for ia32_feature_control msr init 2010-05-23 05:32:00 +00:00
Stanislav Shwartsman
c21a8fd935 sse4.2 string instruction do not required aligned mem access 2010-05-22 19:55:12 +00:00
Stanislav Shwartsman
1c00193616 cleanup 2010-05-22 10:43:39 +00:00
Stanislav Shwartsman
b6c26d394c enable VMX lock bit - required for VMXON 2010-05-22 10:21:31 +00:00
Stanislav Shwartsman
d8b1d60239 when in HLT run time faster for single cpu 2010-05-22 10:17:58 +00:00
Stanislav Shwartsman
fff0a79aea a little simpler fetchdecode 2010-05-21 21:17:32 +00:00
Stanislav Shwartsman
3dfcfd0ccd Split shift opcodes | optimize SAR opcode 2010-05-18 07:28:05 +00:00
Stanislav Shwartsman
32ff6e4879 MSR BX_DEBUG prints 2010-05-16 13:56:22 +00:00
Stanislav Shwartsman
05bbbb1a2c compilation fix 2010-05-16 05:23:18 +00:00
Volker Ruppert
cdb7e0eb96 - fixed usage of variable 'apic_id_mask' for compatibility with win32 plugin target 2010-05-15 09:23:50 +00:00
Stanislav Shwartsman
9c69b15ecb fetchdecode tables reorg phase1 2010-05-13 05:38:24 +00:00
Stanislav Shwartsman
74b87d2b68 fixes for CPUID and alloweds bits in CRs 2010-05-12 21:33:04 +00:00
Stanislav Shwartsman
f95ddc4029 Debug Extensions was introduced in Pentium 2010-05-12 18:48:51 +00:00
Stanislav Shwartsman
d849cdf128 - Determine and select max physical address size automatically at
configure time:
    - 32-bit physical address for 386/486 guests
    - 36-bit physical address for PSE-36 enabled Pentium guest
    - 40-bit physical address for PAE enabled P6 or later guests
2010-05-12 14:55:12 +00:00
Stanislav Shwartsman
49934bc853 cache page split instructions
next step - cache page split traces
2010-05-08 08:30:04 +00:00
Stanislav Shwartsman
b0d5142e18 comp fixes 2010-05-06 21:46:39 +00:00
Stanislav Shwartsman
1c47847e23 Show more fields for verbose debugger 'page'command 2010-05-05 20:10:15 +00:00
Stanislav Shwartsman
9a43a89a61 verbose page command from the debugger 2010-05-04 20:16:38 +00:00
Stanislav Shwartsman
aa76181208 Fixed debug translation 2010-05-04 19:02:51 +00:00
Stanislav Shwartsman
41e9663b89 optimization 2010-05-02 17:01:15 +00:00
Stanislav Shwartsman
4e6d7835c6 #GP/#SS priority 2010-05-02 17:00:05 +00:00
Stanislav Shwartsman
0478b326c3 remove ome ifdefs 2010-05-02 15:11:39 +00:00
Stanislav Shwartsman
acc82363cd undefined CR fault higher prio than CPL GP 2010-05-02 15:10:27 +00:00
Stanislav Shwartsman
48a461116f PUSH segment register fix to be like real CPU 2010-04-30 09:12:52 +00:00
Stanislav Shwartsman
1f0d4f9663 compilation fix 2010-04-29 21:04:23 +00:00
Stanislav Shwartsman
f5a2ca3b48 optimize for x86-64 OFF 2010-04-29 20:03:03 +00:00
Stanislav Shwartsman
50f3547dbe optimize for x86-64 OFF 2010-04-29 19:56:10 +00:00
Stanislav Shwartsman
ca95477b7f Implement x86-64 PCID extension 2010-04-29 19:34:32 +00:00
Stanislav Shwartsman
1c2fa8cd0c move 1G_pages support to runtime option 2010-04-24 09:36:04 +00:00
Stanislav Shwartsman
ea95341e05 compile fix 2010-04-22 18:48:39 +00:00
Stanislav Shwartsman
30fecf9792 changes in comments only 2010-04-22 17:51:37 +00:00
Stanislav Shwartsman
3c6a8375fd small optimization 2010-04-22 17:41:05 +00:00
Stanislav Shwartsman
c9f0779199 cleanup 2010-04-20 06:14:55 +00:00
Stanislav Shwartsman
b9be4fcd3e fix 2010-04-19 11:09:35 +00:00
Stanislav Shwartsman
7319d2eee1 FENCE instructions are SSE2 only 2010-04-18 09:21:24 +00:00
Stanislav Shwartsman
cb281a1440 typo fix 2010-04-16 20:09:23 +00:00
Stanislav Shwartsman
43bc0f1f2b optimize some of x87 tables 2010-04-16 19:52:44 +00:00
Stanislav Shwartsman
59eb1200c2 fixed IMUL eflags 2010-04-15 19:50:57 +00:00
Stanislav Shwartsman
749d6c33d2 relocate lazy_flags code from cpu.h 2010-04-15 05:51:00 +00:00
Stanislav Shwartsman
9746e16657 SSE unmasked exceptions report fix 2010-04-14 20:20:17 +00:00
Stanislav Shwartsman
89c87e2743 fixes 2010-04-14 17:33:19 +00:00
Stanislav Shwartsman
77f8857ddb Fixed dbg_linear2phy function for legacy PAE 2010-04-14 15:41:57 +00:00