Commit Graph

6363 Commits

Author SHA1 Message Date
Stanislav Shwartsman
7593d9d7e2 Fixed exception name 2008-04-16 21:49:46 +00:00
Stanislav Shwartsman
c611d9aca0 Fixed LEAVE in 64-bit mode 2008-04-16 21:35:43 +00:00
Stanislav Shwartsman
892fa99c6f - prefetch hint should be NOP when use in register mode
- #GP when trying to set reserved bits of CR4_HI in 64-bit mode
- #GP when trying to set reserved bits of EFER MSR
- clear upper part of RSI/RDI when executing rep instructions with 32-bit asize
  even if no repeat iterations were executed (because of RCX=0 for example)
- write SYSENTER_EIP_MSR and SYSENTER_ESP_MSR as 64-bit when x86_64 supported
- set MSR_FMASK reset value
- MSR_FMASK should be 32-bit only
- check for fetch permissions when doing ITLB lookup
- #GP when trying to write non-canonical address to MSR_CSTAR or MSR_LSTAR
- correct repeat instructions timing
- mark TSS busy in TR after it is loaded
2008-04-16 16:44:06 +00:00
Stanislav Shwartsman
068276b957 - added description for debugger exceptions
- fixed EFLAGS debug print from internal debugger
2008-04-16 16:42:00 +00:00
Stanislav Shwartsman
419dc57dbd Complete MASKMOVDQU decoding fix 2008-04-16 05:56:55 +00:00
Stanislav Shwartsman
b3167d1a8f Docs for MASKMOVQ were also not correct :( 2008-04-16 05:45:45 +00:00
Stanislav Shwartsman
4f3f8608f7 Fixed MASKMOVDQU instruction decoding 2008-04-16 05:41:43 +00:00
Stanislav Shwartsman
67f02bfa12 Add debugger callback 2008-04-15 21:29:18 +00:00
Stanislav Shwartsman
6d65d82e03 Call BX_INSTR_EXIT callback instead of BX_INSTR_SHUTDOWN 2008-04-15 21:27:57 +00:00
Stanislav Shwartsman
715b553aef Rename BX_INTR_SHUTDOWN callback to BX_INSTR_EXIT 2008-04-15 21:27:11 +00:00
Stanislav Shwartsman
4c26043969 Fixed 3rd fault detection (shutdown condition) 2008-04-15 17:22:11 +00:00
Stanislav Shwartsman
8b7c128062 Update CHANGES 2008-04-15 14:45:43 +00:00
Stanislav Shwartsman
fab4042cad SYSENTER/SYSEXIT in long mode 2008-04-15 14:41:50 +00:00
Stanislav Shwartsman
e4b41764d0 Enabled #AC exception, fixed PANIC message 2008-04-14 21:48:37 +00:00
Stanislav Shwartsman
9668e735cd Inline fpu exceptions functions 2008-04-14 16:50:27 +00:00
Stanislav Shwartsman
3dc0438c43 Implemented CALL_Far64 and JMP_Far64 according to Intel docs 2008-04-13 20:57:49 +00:00
Stanislav Shwartsman
76a8812876 correct some opcode aliases 2008-04-12 10:08:43 +00:00
Stanislav Shwartsman
e5e8785973 Can't use access_linear in debugger because it has sideeffects on CPU 2008-04-11 21:59:47 +00:00
Stanislav Shwartsman
397e2b6eac fixed long mode exception handling 2008-04-11 21:40:36 +00:00
Stanislav Shwartsman
138023fbc7 Fixed priority between exceptions in call through call gate in 64-bit mode 2008-04-11 18:35:47 +00:00
Stanislav Shwartsman
a8c273c7bf Fixed disasm bug in 64-bit mode 2008-04-11 17:54:21 +00:00
Stanislav Shwartsman
20a8bf03ad Added comments for >32 bit physical address error message 2008-04-11 14:30:15 +00:00
Stanislav Shwartsman
1350b77700 Fixed 'r' command with 64-bit registers 2008-04-11 14:16:46 +00:00
Stanislav Shwartsman
ae82e981c0 Updated BIOS binaries 2008-04-10 20:30:20 +00:00
Stanislav Shwartsman
e23896e3cf Forgot to merge CDECL definition 2008-04-09 16:33:38 +00:00
Stanislav Shwartsman
1fe82e7fd1 Fixed compilation issues 2008-04-09 06:03:17 +00:00
Stanislav Shwartsman
730214a8ec Add TODO items 2008-04-08 17:59:51 +00:00
Stanislav Shwartsman
a98cd9f781 small cpu code reorganization 2008-04-08 17:58:56 +00:00
Stanislav Shwartsman
dcb392311f Merged BIOS patches from @SF tracker 2008-04-08 16:41:18 +00:00
Stanislav Shwartsman
a33d8c6008 Make get_laddr and get_segment_base BX_SMF 2008-04-08 05:36:30 +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
a851cfd8f0 Re-implemented modebp debugger function in simple and more clean way 2008-04-07 19:59:53 +00:00
Stanislav Shwartsman
44f04a93da Fixed compilation issue 2008-04-07 19:00:30 +00:00
Stanislav Shwartsman
1fc892406c Indent changes 2008-04-07 18:48:11 +00:00
Stanislav Shwartsman
fea49bb270 Fixed linear address wrap in legacy (not long64) mode 2008-04-07 18:39:17 +00:00
Stanislav Shwartsman
fe59e0ae6a FIxed comment in fetchdecode 2008-04-06 18:31:10 +00:00
Stanislav Shwartsman
b1a7736514 Code cleanup 2008-04-06 18:27:24 +00:00
Stanislav Shwartsman
77d91d59aa Inline prepare_SSE and prepare_XSAVE functions 2008-04-06 18:00:20 +00:00
Stanislav Shwartsman
420f30816d inline integer saturation code - speedup for MMX/SSE integer 2008-04-06 13:56:22 +00:00
Stanislav Shwartsman
2a121e2664 Fixed compilation error with bx debugger 2008-04-05 21:41:31 +00:00
Stanislav Shwartsman
b1446727bf Fixed english grammar error 2008-04-05 21:28:11 +00:00
Stanislav Shwartsman
1b622661d7 Cleanup 2008-04-05 20:49:21 +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
c8d8eb8e52 Remove eplicit machine:I386 flag for compilation with MSVCPP
it allows to build 64-bit native Bochs under Win64 and MSVCPP
2008-04-05 19:21:52 +00:00
Stanislav Shwartsman
1bdddc1f78 Split SHRD/SHLD instructions 2008-04-05 19:08:01 +00:00
Stanislav Shwartsman
16bf4402b0 Remove wrongly committed code 2008-04-05 17:57:21 +00:00
Stanislav Shwartsman
5826e2843a Inline pop/push functions
Store only single byte of opcode in b1() - speedup shift instructions
Code cleanups
2008-04-05 17:51:55 +00:00
Stanislav Shwartsman
2aaafa76a2 Reorganize fetchdecode tables with another level of redirection - a leap toward future improvements
Currently no speedup and no slowdown - about the same results on my Bochs benchmarking
A lot of code reorganization in fetchdecode
2008-04-04 22:39:45 +00:00
Stanislav Shwartsman
b5d5e91ff7 Remove old deprecated options from configure 2008-04-04 21:12:51 +00:00
Stanislav Shwartsman
c26d9d563c Missed include file 2008-04-04 21:10:30 +00:00
Stanislav Shwartsman
3f5263a142 Compilation fixes that allow to disable FPU by just setting BX_SUPPORT_FPU=0 2008-04-04 21:05:37 +00:00
Stanislav Shwartsman
026c333fa9 move handleDAZ to fpu 2008-04-04 20:03:27 +00:00
Stanislav Shwartsman
bb1195f1e6 move denormals_are_zeros to fpu_specialize.h 2008-04-04 20:02:36 +00:00
Stanislav Shwartsman
858842edec Typo fix 2008-04-04 14:04:11 +00:00
Stanislav Shwartsman
671cd93966 Add CPU flags for future use 2008-04-04 12:23:45 +00:00
Stanislav Shwartsman
52770feedd Add CPUID bits comments and update CPU TODO 2008-04-04 12:23:19 +00:00
Stanislav Shwartsman
08eb20cf48 Update MSVC workspaces 2008-04-03 19:04:05 +00:00
Stanislav Shwartsman
41fe0b3ebb Fix code duplication 2008-04-03 18:59:10 +00:00
Stanislav Shwartsman
1808710881 fixed duplicate line 2008-04-03 18:13:26 +00:00
Stanislav Shwartsman
62e3728591 preparations for future optimizations - not necessary speedupo now 2008-04-03 17:56:59 +00:00
Stanislav Shwartsman
4180fd9e11 Merge resolve16/32/64.cc to single file 2008-04-03 17:44:33 +00:00
Stanislav Shwartsman
e91409704f Convert EFER to val32 register, similar to other control registers 2008-03-31 20:56:27 +00:00
Stanislav Shwartsman
3f2487a0af Enabled tracing cross repeated instructions 2008-03-31 18:53:08 +00:00
Stanislav Shwartsman
255d512e29 Organize bxInstruction fields differently 2008-03-31 17:33:34 +00:00
Stanislav Shwartsman
65adf7014b Updated CHANGES 2008-03-30 18:38:02 +00:00
Stanislav Shwartsman
661d6721dc added ldsym command to user docs 2008-03-30 18:32:41 +00:00
Stanislav Shwartsman
52a771b2c2 added load_symbols command example 2008-03-30 18:28:35 +00:00
Stanislav Shwartsman
3c40cb1610 More improvements to load-symbols in bx debugger 2008-03-30 14:32:14 +00:00
Volker Ruppert
a1950bb565 - fixed compilation error: "jump to case label crosses initialization of `Bit32u drvsel'" 2008-03-30 08:32:57 +00:00
Stanislav Shwartsman
a77b012049 Update debugger parser 2008-03-30 05:47:31 +00:00
Stanislav Shwartsman
041ae54724 Fixed lexer bug 2008-03-30 05:45:42 +00:00
Stanislav Shwartsman
231056fff4 small cleanups 2008-03-29 21:51:42 +00:00
Stanislav Shwartsman
6b6492dd36 Compiled lex/yacc output for debugger 2008-03-29 21:37:18 +00:00
Stanislav Shwartsman
46e7ca44dc dded patch with symbols support in bochs-debugger 2008-03-29 21:32:18 +00:00
Stanislav Shwartsman
b5f5e01f7e added assert to paging.cc 2008-03-29 21:12:11 +00:00
Stanislav Shwartsman
aade564f33 Correct variable name 2008-03-29 21:03:38 +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
7aef2d5892 Inline get_ZF/SF/PF lazy flags functions - gcc didn't get them inline before 2008-03-29 18:44:13 +00:00
Stanislav Shwartsman
f3a91710e4 Split access_linear to access_read_linear and access_write_linear 2008-03-29 18:18:08 +00:00
Stanislav Shwartsman
75f18c4f99 mostly indent changes 2008-03-29 17:44:13 +00:00
Stanislav Shwartsman
14ff07b482 Small code cleanup 2008-03-29 09:58:23 +00:00
Stanislav Shwartsman
e48b398bee Add NIL register and simplify more BxResolve work 2008-03-29 09:34:35 +00:00
Stanislav Shwartsman
b745be68ef Improve show param call in bochs debugger - search also in default CPU tree 2008-03-28 12:51:02 +00:00
Stanislav Shwartsman
127be5b793 Fixed race condition in QEMU - can't happen in Bochs because in Bochs all RMW are atomic (for now) 2008-03-28 09:02:57 +00:00
Stanislav Shwartsman
1a59913e2b Fixed BX_INFO message 2008-03-27 21:04:39 +00:00
Stanislav Shwartsman
a998752c9c Update CHANGES again 2008-03-26 23:03:04 +00:00
Stanislav Shwartsman
a1a37da116 Update CHANGES with recenbt closed patches and bug reports 2008-03-26 22:53:15 +00:00
Stanislav Shwartsman
142afd422f Update with new options 2008-03-26 22:52:09 +00:00
Stanislav Shwartsman
518774d2c9 Add missing check for MSVC in bx_atexit 2008-03-26 22:39:38 +00:00
Stanislav Shwartsman
15106acdba Another #SF patch merge
another patch to fix compilation with vc8 (or, more
precisely with Dimkunware STL). It corrects the usage of std::set
iterators.
2008-03-26 22:39:07 +00:00
Stanislav Shwartsman
8c24dfc01b MSVC6 compilation changes
More effort to remove can_pop function calls - almost everything is clean
2008-03-26 16:25:05 +00:00
Stanislav Shwartsman
a5544a693a indent changes 2008-03-26 16:21:46 +00:00
Stanislav Shwartsman
94f30955be Fixed compilation error 2008-03-25 16:46:39 +00:00
Stanislav Shwartsman
74b2716263 Removed redundant can_pop call - in future I want to remove can_pop as well 2008-03-24 22:35:37 +00:00
Stanislav Shwartsman
9fcbf28cea Removed can_push method - normal memory accesses will be used instead.
Fixed reset value of TR.TYPE
2008-03-24 22:13:04 +00:00
Stanislav Shwartsman
528d34f108 Forgot printf param 2008-03-23 21:40:17 +00:00
Stanislav Shwartsman
a22160959b HLT callback to Bochs internal debugger 2008-03-23 21:39:01 +00:00
Stanislav Shwartsman
7bd2cf39d3 Fixed printf format bugs 2008-03-23 21:25:13 +00:00
Stanislav Shwartsman
34e03fae43 Fixed assertion failure with exception called from compatibility mode 2008-03-23 21:24:05 +00:00
Stanislav Shwartsman
b07a46f200 Fixed CR0 reset value. Modified param tree for IDTR and GDTR segments 2008-03-23 20:18:24 +00:00