Commit Graph

1450 Commits

Author SHA1 Message Date
Stanislav Shwartsman
6c8241da9a Added debug prints in case of exceptions 2007-12-16 21:46:39 +00:00
Stanislav Shwartsman
a545bf63ce push_64 and pop_64 could happen only in 64-bit mode 2007-12-16 21:40:44 +00:00
Stanislav Shwartsman
4f78ff2153 Code cleanup 2007-12-16 21:21:29 +00:00
Stanislav Shwartsman
46366b5064 Speedup simulation by eliminating CPL==3 check from read/write_virtual* functions 2007-12-16 21:03:46 +00:00
Stanislav Shwartsman
de5838ce80 cleanups and fixes for Immediate_IbIb of SSE4A 2007-12-16 20:47:10 +00:00
Stanislav Shwartsman
8b5eaa5820 Make functions inline 2007-12-16 20:37:59 +00:00
Stanislav Shwartsman
1e843cb462 Decode SSE4A
Rework immediate bytes decoding to make it faster
2007-12-15 17:42:24 +00:00
Stanislav Shwartsman
3a6d714398 Split for JMP_Ew/Ed opcodes from Grp5 2007-12-14 23:15:52 +00:00
Stanislav Shwartsman
fd73390ca5 Split 64-bit CMOVcc opcode 2007-12-14 22:41:43 +00:00
Stanislav Shwartsman
903f6dea35 Split setCC functions - makes code faster and simpler 2007-12-14 21:29:36 +00:00
Stanislav Shwartsman
d9a59c7a1f Added ability to merge traces cross JCC branch instructions
Makes traces longer -> emulation faster in average
2007-12-14 20:41:09 +00:00
Stanislav Shwartsman
db69a25c36 Trace cache instrumentation methods
Next step will be tracing cross non-taken branches
2007-12-14 11:27:44 +00:00
Stanislav Shwartsman
48d815427c According to AMD docs INVLD/WBINVLD instructions not required to flush TLBs 2007-12-14 10:15:12 +00:00
Stanislav Shwartsman
c3e5c71000 post exceptions and print BX_ERROR messages in tasking.cc 2007-12-13 23:17:50 +00:00
Stanislav Shwartsman
85d10e4f72 Added MWAIT callback 2007-12-13 21:41:32 +00:00
Stanislav Shwartsman
f145f4c847 Unify BX_INSTR_MEM_READ and BX_INSTR_MEM_WRITE callbacks to single callback BX_INSTR_MEM_ACCESS
Enable the callback with guest-to-host TLB enabled
Update instrumentation docs
2007-12-13 21:30:05 +00:00
Stanislav Shwartsman
05c7a1e61b Fixed problem with trace cache enabled
String instructions might confise trace cache by finishing instruction execution method without actually completing an instruction (and advancing eip)
2007-12-13 18:42:31 +00:00
Stanislav Shwartsman
05a5923971 Merged Bochs instrumentation patch by Lluis Vilanova 2007-12-13 17:16:21 +00:00
Stanislav Shwartsman
da19b9447a All Jq instructions in 64-bit mode have fixed 64-bit osize 2007-12-10 23:04:18 +00:00
Stanislav Shwartsman
e15f7445f8 Faster memory access for 4G limit cases
A bit slower for <4G but usually it is 4G
2007-12-10 19:08:13 +00:00
Stanislav Shwartsman
adda3befd3 Trace cache optimization merged 2007-12-09 18:36:05 +00:00
Stanislav Shwartsman
ee465a7714 misaligned SSE support works only for loads 2007-12-09 17:40:23 +00:00
Stanislav Shwartsman
29267577f0 Fixed HLT problem in SMP binary which runs with single processor only 2007-12-08 09:26:13 +00:00
Stanislav Shwartsman
976af56f6d Split bit.cc to 4 files - new files bit16/32/64.cc 2007-12-07 10:59:18 +00:00
Stanislav Shwartsman
4c16dd71a8 Fixed compilation error in SMP mode 2007-12-07 09:38:42 +00:00
Stanislav Shwartsman
6fcc7d34ab Next step in lazy flags optimization by Darek MihockA -
get rid of shifts from lazy flags code
2007-12-06 20:39:11 +00:00
Stanislav Shwartsman
d739cca282 small cleanup 2007-12-06 18:35:33 +00:00
Stanislav Shwartsman
d54d537f81 One more step for lazy flags optimization 2007-12-06 16:57:59 +00:00
Stanislav Shwartsman
a835e3f8ff get_FLAG_Lazy not always returns 0/1 2007-12-05 06:27:01 +00:00
Stanislav Shwartsman
295a36ef58 2nd step of lazy flags optimization 2007-12-05 06:17:09 +00:00
Stanislav Shwartsman
88899cf617 Changes for lazy flags handling -> 1st stap in transition to new lazy flags handling by Darek Mihocka (www.emulators.com) 2007-12-04 19:27:23 +00:00
Stanislav Shwartsman
40fc0a3e42 Reduce ICACHE back to 32K entries - reduce ICACHE size from 4M to 2M
Not everybody already have C2D CPU with 4M L2 cache on die ...
2007-12-04 17:34:20 +00:00
Stanislav Shwartsman
91e0db63c4 no need to invalidate prefetch queue for RDMSR/WRMSR 2007-12-03 21:43:14 +00:00
Stanislav Shwartsman
c58e95f611 Make hw breakpoint match check a function - normally it should be called from read/write_virtual as well 2007-12-03 20:49:24 +00:00
Stanislav Shwartsman
dbfa7a51e9 Do not affect CPU state if any exception occured - in this case do not write to MEM and flags 2007-12-03 20:48:02 +00:00
Stanislav Shwartsman
1bcf42baec oops, fixed incorrect checkin 2007-12-01 16:59:36 +00:00
Stanislav Shwartsman
7ca78b88e9 configure/compile changes + small optimizations 2007-12-01 16:45:17 +00:00
Stanislav Shwartsman
d1e71ec4a7 deliver smi should be available even if apic is OFF 2007-11-30 17:59:10 +00:00
Stanislav Shwartsman
a0147fe055 Fixed bug prevented to boot Win98 2007-11-30 08:49:12 +00:00
Stanislav Shwartsman
39b2680110 Fixed compilation error when x86-64 emualtion disabled 2007-11-29 22:22:24 +00:00
Stanislav Shwartsman
aa00d33640 BITSCAN lazy flags evaluation optimization 2007-11-29 21:52:16 +00:00
Stanislav Shwartsman
1a55835155 Optimize lazy flags for MUL/IMUL 2007-11-29 21:45:10 +00:00
Stanislav Shwartsman
8cfd17202a some simple SSE code optimizations 2007-11-27 22:12:45 +00:00
Stanislav Shwartsman
91add6a05a cleanup 2007-11-26 17:45:48 +00:00
Stanislav Shwartsman
35c3791bb7 Correctly implement EFER.FFXSR feature 2007-11-25 20:52:40 +00:00
Stanislav Shwartsman
c51888f43f Split last BxLockable opcodes -> this allows to eliminate mod==0xc0 check from fetchdecode of every instruction
reduce ACPU.CC dependencies - now that file doesn't depend of CPU
2007-11-25 20:22:10 +00:00
Stanislav Shwartsman
42d06b2d2b make some functions RSP safe so it is not needed to save/restore RSP for the anymore 2007-11-24 15:27:55 +00:00
Stanislav Shwartsman
e51184c8cf Eliminate saving of RSP from heart of cpu_loop
Now save RSP only where it is really required
2007-11-24 14:22:34 +00:00
Stanislav Shwartsman
d0052dcd3e Removed unused setFlags code 2007-11-23 22:49:54 +00:00
Stanislav Shwartsman
3daa468c02 Fixed comments in bit.cc
Revert back lock prefix changes in fetchdecode - not all lockable instructions are splitted yet ;(
2007-11-23 16:37:06 +00:00
Stanislav Shwartsman
af9a14ff3b cleanups 2007-11-22 21:52:55 +00:00
Stanislav Shwartsman
1dbe51a2fb Split ENTER_IwBw function according to os32. Fixed ENTER/LEAVE in 64-bit mode 2007-11-22 17:33:06 +00:00
Stanislav Shwartsman
e0ee0eaaaf Diplicate ICACHE size - now index to ICACHE is exactly 16 bit so ICACHE hash function could be computed more efficiently 2007-11-22 17:32:00 +00:00
Stanislav Shwartsman
8e909508c8 a bit faster SETL/SETNL code 2007-11-21 22:42:40 +00:00
Stanislav Shwartsman
0a1063ad77 Split GvEv opcode groups 2007-11-21 22:36:02 +00:00
Stanislav Shwartsman
506dc3d963 Optimize 64-bit fetchdecode prefix handling
Deparecated set_FLAG() method, setB_FLAG() method was used everywhere
Rename setB_FLAG to set_FLAG, so set_FLAG() will must receive 0/1 inly
2007-11-20 23:00:44 +00:00
Stanislav Shwartsman
48650a70b4 Optimized alignment check 2007-11-20 21:22:03 +00:00
Stanislav Shwartsman
1af7010e50 Optimized memory access for 64-bit mode
Starting convergence to new lazy flags scheme by Darek Mihocka (www.emulators.com). The new flags code is still being validated and perfected but I try to minimize the diff between 2 versionS
2007-11-20 17:15:33 +00:00
Stanislav Shwartsman
2bd8958783 Change force_flags() implementation and make lazy flags a bit more lazy :) 2007-11-19 19:55:09 +00:00
Stanislav Shwartsman
d75a69fd2e Remove BxResolve tables 2007-11-18 22:14:39 +00:00
Stanislav Shwartsman
fb61418307 optimize modrm/sib decoding 2007-11-18 21:38:58 +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
1e0db62984 bit.cc speedup (small) 2007-11-18 20:21:34 +00:00
Stanislav Shwartsman
bcaba54489 Merge resolve functions for 32 and 64-bit 2007-11-18 19:46:14 +00:00
Stanislav Shwartsman
090dd61a1e code cleanup in stack16/32.cc 2007-11-18 18:52:44 +00:00
Stanislav Shwartsman
57d2d14865 Split POP_Ev opcodes 2007-11-18 18:49:19 +00:00
Stanislav Shwartsman
e1496bb9e0 Small optimization 2007-11-18 18:40:38 +00:00
Stanislav Shwartsman
cdc9a09090 Split more opcodes 2007-11-18 18:24:46 +00:00
Stanislav Shwartsman
83f6eb6945 Changes copyrights for the files I wrote :)
Also split EqId G1 group for x86-64
2007-11-17 23:28:33 +00:00
Stanislav Shwartsman
613bad34ee split MOVZX/MOVSX opcodes 2007-11-17 18:29:00 +00:00
Stanislav Shwartsman
5ec15df46d Split more opcodes EbIb opcodes 2007-11-17 18:08:46 +00:00
Stanislav Shwartsman
d5a58e1df2 Split more opcodes - G3 group 2007-11-17 16:20:37 +00:00
Stanislav Shwartsman
d9e58bd598 split11b on opcode tables level - split almost eevery splittable instruction
will be continued
2007-11-17 12:44:10 +00:00
Stanislav Shwartsman
abe3f4c5c2 Split one more opcode 2007-11-16 21:43:23 +00:00
Stanislav Shwartsman
b4b922809a Move 3byte opcode decoding under Modrm condition 2007-11-16 20:49:51 +00:00
Stanislav Shwartsman
d4db077e48 Fixed MSVCPP warning/error 2007-11-16 20:33:21 +00:00
Stanislav Shwartsman
565e7f9868 Merge common fetchdecode groups. Add more comments to fetchdecode tables 2007-11-16 18:34:14 +00:00
Stanislav Shwartsman
393018cdf8 More split11b 2007-11-16 17:45:58 +00:00
Stanislav Shwartsman
351244d1ea Rename splitmod11b methods 2007-11-16 08:30:22 +00:00
Stanislav Shwartsman
db02731cbf Replace BxAnother attribute in fetchdecode by table lookup like it is done in disasm. This is done in preparation to feature huge fetchdecode change - all fethdecode tables will be duplicated and made separatate table for ModC0 and others.
So ALL instructions will emjoy SplitMod11b automatically (if they want).
After splitting ALL instruction I hope to get 20% speedup at least.
2007-11-15 17:57:56 +00:00
Stanislav Shwartsman
9da22f9b65 Remove redundant BxAnother attr from prefixes
The meaning of BxAnother attr - instryction has modrm byte
2007-11-14 22:52:16 +00:00
Stanislav Shwartsman
dc5c25133f Fixes in registers read/write -> fixed zero upper of register in POP_Ed 2007-11-13 21:07:08 +00:00
Stanislav Shwartsman
0fa82afe1f Bugfix and optimize BxResolve calls - bugfix in 64-bit mode 2007-11-13 17:30:54 +00:00
Stanislav Shwartsman
edfff23ca0 Split JCC methods to 16 different methods per branch condition 2007-11-12 18:20:15 +00:00
Stanislav Shwartsman
aed6640ef4 speedup JCC for 64-bit -> separate JZ/JNZ for single faster methods 2007-11-11 21:26:10 +00:00
Stanislav Shwartsman
7648101f28 Optimize metainfo data - ilen() and b1() methods get speedup 2007-11-11 21:14:24 +00:00
Stanislav Shwartsman
eea5023da8 small simplification for fetchdecode 2007-11-11 20:56:22 +00:00
Stanislav Shwartsman
9dc471bbe5 Simplify Guest2HostTLB code
Fixed APIC CPUID bit
2007-11-11 20:44:07 +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
24e1936fbb Fixed compilation warning when compiling with no x86-64 2007-11-09 12:06:34 +00:00
Stanislav Shwartsman
2653d54e96 split 32-bit modermdata variable in BxInstruction_c to 4 Bit8u variables
this way it is possible to save shifts and masking when accessing modrm fields
2007-11-08 18:21:37 +00:00
Stanislav Shwartsman
2f5fa07af3 small speedups 2007-11-07 10:40:40 +00:00
Stanislav Shwartsman
cfca3fdb8b merge gate286 and gate386 in descriptor.h 2007-11-06 19:17:42 +00:00
Stanislav Shwartsman
494189e822 Small optimization for ADD lazy flags calculations.
Because most likely flags are not needed after ADD instruction - it is better to store less data for lazy flags and reconstruct it if needed
2007-11-06 08:39:25 +00:00
Stanislav Shwartsman
6629f6dea3 Fixed macro redefinition 2007-11-05 16:36:37 +00:00
Stanislav Shwartsman
44e49f2fe2 Fixed CPU state print in debug dump 2007-11-05 16:28:03 +00:00
Volker Ruppert
56dd9fe3d9 - fixed several MSVC compilation warnings
* MSVC doesn't support localized variables (e.g. valid inside of a 'for' loop
    only). So we cannot use the variable 'i' with different types (unsigned / int)
    in the reset() method.
  * added some conversions from Bit64s to bx_bool
2007-11-03 16:55:08 +00:00
Stanislav Shwartsman
5a172541e2 Small cleanup 2007-11-01 20:43:53 +00:00
Stanislav Shwartsman
b90e97858b Update CPU TODO and CHANGES 2007-11-01 19:04:01 +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
ce0e0287fb Naturally speedup repeat execution functions, fix TLB index calculations 2007-10-30 22:15:42 +00:00
Stanislav Shwartsman
a83b8ae843 Slight speed improvement in string functions 2007-10-29 15:39:18 +00:00
Stanislav Shwartsman
a4e20e9d29 warnings fixed 2007-10-24 23:02:09 +00:00
Stanislav Shwartsman
6d7134ef99 Remove dump_cpu debugger function, CPI method and all related structures.
Extended 'info' command in debugger to have all functionality of dump_cpu if needed. Also param tree print always could be used !
2007-10-23 21:51:44 +00:00
Stanislav Shwartsman
292153b30e Fixed BranchImm cases in 64-bit mode 2007-10-22 17:41:41 +00:00
Stanislav Shwartsman
68ef783632 reduce amount of used temp variables 2007-10-21 23:35:11 +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
28a5c6741c Fix SSE4 MOVNTDQA instruction - memory access must be always aligned 2007-10-20 17:03:33 +00:00
Stanislav Shwartsman
5445de19d1 Decoding : F2 and F2 prefix could override prefix 66 when determine SSE opcode 2007-10-20 10:56:44 +00:00
Stanislav Shwartsman
679110caa9 fixed push to new stack for long mode 2007-10-19 12:40:19 +00:00
Stanislav Shwartsman
0f3fdaf94b exception was suffering from the same issue - fixed with new_stack push functtions 2007-10-19 10:59:39 +00:00
Stanislav Shwartsman
0fc32d3c81 Fixed except_chk issue in more clean way - added 3 new methods for pushing to new, still not loaded stack 2007-10-19 10:14:33 +00:00
Stanislav Shwartsman
4ec7f5df39 Optimize access to IP (16 bit) - made IP register similar to GPR 2007-10-18 22:44:39 +00:00
Stanislav Shwartsman
8065ada31f Some EIP setting cleanups.
OK, currently I see big mess with setting of CS/EIP and SS/ESP everywhere, I have to unify it and make it easier !
2007-10-18 21:27:56 +00:00
Stanislav Shwartsman
f8317d2dcd Unwrap all memory access functions, speed is still more important that code duplication in Bochs :) 2007-10-17 18:09:42 +00:00
Stanislav Shwartsman
f69a21ab2b Fix some copyright messages 2007-10-15 22:07:52 +00:00
Stanislav Shwartsman
c0640a078c INFO message about CPU reset 2007-10-14 21:42:50 +00:00
Stanislav Shwartsman
52891b501b Correct name for cpu param when only 1 cpu is used 2007-10-14 19:36:23 +00:00
Stanislav Shwartsman
e9801ef501 Support for restore cpu (and any other device from bochs root) from debugger 2007-10-14 19:04:51 +00:00
Stanislav Shwartsman
c0e7c31b7d Param name fixed to capital letters 2007-10-14 00:22:07 +00:00
Stanislav Shwartsman
ac272e9383 Changes breakpoints configure time enable macroses - reduce amount of compile-time parameters 2007-10-12 22:11:25 +00:00
Stanislav Shwartsman
2a1bcb3e21 Some fixes in CPUID by default 2007-10-12 21:45:41 +00:00
Stanislav Shwartsman
26848ad07d Change ARPL error message to BX_DEBUG (happens too offen in win98) 2007-10-12 19:45:12 +00:00
Stanislav Shwartsman
082eb05b6b First step to fully configurable CPUID
- put CPUID functions data into array, in future we could load this array from configure file
 - cpuid initialize function is more flexible now but still reuire some work
2007-10-12 19:30:51 +00:00
Stanislav Shwartsman
be9ad60ef3 cleanups 2007-10-11 22:44:17 +00:00
Stanislav Shwartsman
8adbbcf17c Started first implementation of MONITOR/MWAIT 2007-10-11 21:29:01 +00:00
Stanislav Shwartsman
f6ed95785f added cpu state param - for future use and for dbg info
started to move debugger to info bx_param interface -> info sse and info mmx commands modified
2007-10-11 18:12:00 +00:00
Stanislav Shwartsman
fbcdfa49c2 Cleanup 2007-10-10 22:20:32 +00:00
Stanislav Shwartsman
c6efc84149 Optimize building of segment ROK/WOK cache 2007-10-10 22:00:51 +00:00
Stanislav Shwartsman
82b7eaabd5 CLFLUSH do not fault when checking execute only segment 2007-10-10 21:48:46 +00:00
Stanislav Shwartsman
07739173f5 add --show-ips to all configs for future releases (it is not ON by default ?)
Bit32u -> bx_phy_address in debugger and some other places
2007-10-09 19:49:23 +00:00
Stanislav Shwartsman
2d981562c4 changes Bit32u -> bx_phy_address in dbg paging method 2007-10-08 20:45:30 +00:00
Stanislav Shwartsman
2548c05537 Enable SSE4_2 in CPUID 2007-10-01 21:08:26 +00:00
Stanislav Shwartsman
dbb91069f4 Added SSE4_2 instructions emulation 2007-10-01 19:59:37 +00:00
Stanislav Shwartsman
a0d0de9fd4 Fixed ARPL issue mentioned in
Attacks on Virtual Machine Emulators
document by Symantec
2007-09-30 18:47:41 +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
02b7d8b43d Remove 'result' variable where it is definitelly not needed - simplify sse code 2007-09-27 16:23:29 +00:00
Stanislav Shwartsman
d9005b88c1 Added error code for exception debug messages - help to debug 2007-09-27 16:22:14 +00:00
Stanislav Shwartsman
deb79e9675 [Bochs-developers] [PATCH] avoid RCX without BX_SUPPORT_X86_64 2007-09-27 16:11:32 +00:00
Stanislav Shwartsman
7e629dedad remove dbg print 2007-09-26 19:10:41 +00:00
Stanislav Shwartsman
44a04a5fa3 readability/writeability bit should not be checked in 64-bit mode 2007-09-26 19:09:10 +00:00
Stanislav Shwartsman
dcb0335ae9 Debug first instruction in exception handler after exception 2007-09-26 18:07:39 +00:00
Stanislav Shwartsman
e812f81e7b Fixes in zero upper ECX 2007-09-25 16:11:32 +00:00
Stanislav Shwartsman
3e3254ecc4 some speedup for SSE code - achived by code simplification 2007-09-20 22:55:03 +00:00
Stanislav Shwartsman
91e6ca8d5c Implemented MTRR support
Fixes in #PF exception priority
2007-09-20 17:33:35 +00:00
Stanislav Shwartsman
0dc4badfbb Added SSE4A and SSE4_2 to disassembler
Implemented POPCNT instruction
2007-09-19 19:38:10 +00:00
Stanislav Shwartsman
70f513b07b Make efer control MSR separate register 2007-09-10 20:47:08 +00:00
Stanislav Shwartsman
b4df87c9b0 Added CVS id 2007-09-10 16:04:41 +00:00
Stanislav Shwartsman
412eeeeb7c Get crregs definition to separate file from cpu.h 2007-09-10 16:00:15 +00:00
Stanislav Shwartsman
016660698e just code cleanup, preparation for future 2007-08-31 18:09:34 +00:00
Stanislav Shwartsman
5ac1bb6646 rewrite page fault 2007-08-30 16:48:10 +00:00
Stanislav Shwartsman
b64fc08c54 implement prefetch hint opcodes 2007-08-23 16:47:51 +00:00
Stanislav Shwartsman
4555cc9be3 ud2b opcode should have modrm byte 2007-08-18 13:51:16 +00:00
Stanislav Shwartsman
895891b673 Implemented #AC check under configure option
Fixes in misaligned SSE support
2007-07-31 20:25:52 +00:00
Stanislav Shwartsman
58a2595bca Misaligned SSE support 2007-07-15 19:03:39 +00:00
Stanislav Shwartsman
38d1f39c77 Converted CR0 bits to one register similar to CR4 - a bit slower but helps with other features implemntation 2007-07-09 15:16:14 +00:00
Stanislav Shwartsman
7c6c2bb520 Removed PANIC message 2007-06-08 09:25:30 +00:00
Stanislav Shwartsman
65a99eb736 Change BX_ERROR to BX_DEBUG 2007-04-25 20:14:15 +00:00
Stanislav Shwartsman
55365ba713 Minimize usage of result register 2007-04-19 19:09:52 +00:00
Stanislav Shwartsman
1c3e703394 Fixed DAZ handling by CVT instructions 2007-04-19 18:50:57 +00:00
Stanislav Shwartsman
5189cfbf10 SSE4 support 2007-04-19 16:12:21 +00:00
Stanislav Shwartsman
f6af99dead Some variables renaming + CPU vendor variable defition 2007-04-17 21:38:51 +00:00
Stanislav Shwartsman
6c139a9c8c Define LIN and PHY address size in config.h 2007-04-14 10:05:30 +00:00
Stanislav Shwartsman
3886e35bcb Clean code duplication 2007-04-09 21:55:07 +00:00
Stanislav Shwartsman
223b9fda0e Fixed RIP relative mode when in 32-bit address size 2007-04-09 21:15:00 +00:00
Stanislav Shwartsman
e26609fa97 Support for Intel LSS/LFS/LGS in 64-bit mode
TODO: have both AMD and Intelk versions
2007-04-09 20:28:15 +00:00
Stanislav Shwartsman
b6c8275cfd remove old PIT model and always use Greg Alexander's new one 2007-04-08 21:57:06 +00:00
Volker Ruppert
f8aec91820 - fixed some MSVC warnings 2007-04-06 15:22:17 +00:00
Stanislav Shwartsman
65b9b46de3 Fix for legacy compilers 2007-04-04 16:55:50 +00:00
Stanislav Shwartsman
bdc4905c8a Correctly detect SSE2 and SSE instructions and #UD when SSE2 is OFF for SSE 2007-04-02 10:46:33 +00:00
Stanislav Shwartsman
4bb19c2dc3 Fixed deciding and disasm of CALL in 64-bit mode (no 16-bit calls allowed) 2007-03-28 21:20:09 +00:00
Stanislav Shwartsman
26f08fdb2c Change my e-mail to #SF one 2007-03-23 21:27:13 +00:00
Stanislav Shwartsman
c184a3a2ba Removed redundant mem-only checks - handled in fetchdecode now 2007-03-23 14:50:45 +00:00
Stanislav Shwartsman
ef542b3790 Learn to decode and disassemble VMX opcodes
No fetchdecode support but everything is ready
2007-03-23 14:35:50 +00:00
Stanislav Shwartsman
1ec33ec518 Correctly #UD on aliased instructions when no SSE2 is configured 2007-03-22 22:51:41 +00:00
Stanislav Shwartsman
0436125d60 Some cleanup in lazy flags CF handling 2007-03-18 19:29:17 +00:00
Stanislav Shwartsman
b8787fd5a7 Some code cleanups and warning fixes 2007-03-14 21:15:15 +00:00
Stanislav Shwartsman
8ce336cad3 Fixed PANIC message 2007-03-10 09:04:39 +00:00
Stanislav Shwartsman
05ea111e1c Clean CPU debug methods in main cpu_loop 2007-03-06 17:47:18 +00:00
Stanislav Shwartsman
8067503c67 PUSHA/POP instructions rewritten, fixed PANIC message 2007-03-02 21:03:25 +00:00
Stanislav Shwartsman
d3252fbc1c Removed unneeded invalidate_prefetch_q from RDMSR instruction 2007-02-23 22:08:43 +00:00
Stanislav Shwartsman
8d2060b855 Replace access_linear by read_virtual_xword when applicable 2007-02-03 21:36:40 +00:00
Stanislav Shwartsman
2f9e1bee68 fixed code duplication and comments 2007-02-03 17:56:35 +00:00
Stanislav Shwartsman
372ac39050 Report some cache info in CPUID - port from QEMU 2007-01-29 17:56:03 +00:00
Stanislav Shwartsman
c24627c00f Implemented CLFLUSH instruction
Set of minor fixes for correctness
2007-01-28 21:27:31 +00:00
Stanislav Shwartsman
82607c4a35 Safety net - comment BX_WRITE_32BIT_REG macro - always use WRITE_32BIT_REGZ instead ! 2007-01-26 22:16:59 +00:00
Stanislav Shwartsman
8221fa6838 - Fixed zero upper 32-bit part of GPR in x86-64 mode
- CMOV_GdEd should zero upper 32-bit part of GPR register even if the
    'cmov' condition was false !
2007-01-26 22:12:05 +00:00
Stanislav Shwartsman
acd1a05f6f Fixed bugs for SSE3E execution and decoding 2007-01-25 21:44:35 +00:00
Stanislav Shwartsman
f8003098b1 Rename SSE4 to SSE3E to match intel docs. SSE4 coming later ;)
Fixed "last prefix" for REX in 64-bit mode
2007-01-25 19:09:41 +00:00
Stanislav Shwartsman
0e991964fd incorrectly committed debug code 2007-01-13 10:45:32 +00:00
Stanislav Shwartsman
dd00bc66d0 Fixed disasm in 64bit mode, added new accessor for printing 64bit values 2007-01-13 10:43:31 +00:00
Stanislav Shwartsman
9db896d100 minor x86_64 fixes and cleanups 2007-01-12 22:47:21 +00:00
Stanislav Shwartsman
9b10f209f3 Fixed typo 2007-01-12 16:09:39 +00:00
Stanislav Shwartsman
5c21f7821f Speed simulation between 3 to 5% by eliminating several checks from cpu loop.
The checks were related to repeat instructions - handle them differently
2007-01-05 13:40:47 +00:00
Stanislav Shwartsman
6e8dcbce8b Fixed 64-bit NOP problem
Patch by mvysin in patch tyracker
2006-11-26 12:53:01 +00:00
Volker Ruppert
e8cd2052c9 - improved gdbstub network efficiency (SF patch #1149659 by Avi Kivity)
- reimplemented "enter debugger" in ask dialog for gdbstub
- X11 and wxWidgets ask dialog now show "Debugger" button for gdbstub
- indent mode changes
2006-10-29 08:48:30 +00:00
Stanislav Shwartsman
905de565a9 Add debug prints for NX bit feature 2006-10-28 12:31:23 +00:00
Stanislav Shwartsman
650086669c Print 64-bit registers in 'info registers' command and in dump_regs 2006-10-21 22:06:39 +00:00
Volker Ruppert
8312d149eb - stop flooding logfile when using MS-DOS with EMM386. It seems to work correctly,
so I think this message can be changed to BX_DEBUG.
2006-10-20 15:38:39 +00:00
Stanislav Shwartsman
e3da944cd3 Fixed TLB access code duplication 2006-10-04 19:47:24 +00:00
Stanislav Shwartsman
6c63e84d23 Fixed CR3 masking in long mode
Added PANIC assertion of 32-bit physical address in PAE mode
cleanup
2006-10-04 19:08:40 +00:00
Stanislav Shwartsman
7dc808e7f9 Removed debug snapshot when entering SMM/RSM 2006-10-03 22:41:02 +00:00
Stanislav Shwartsman
1aa7ae677d Small cleanup in he APIC code, removed unused methods 2006-10-02 21:49:49 +00:00
Volker Ruppert
f091c7c0ad - SMM must be enabled until all data is read from RAM 2006-10-02 21:22:59 +00:00
Stanislav Shwartsman
14afe14a21 New BIOS expects to see 0x64 in smm revision id when in x86-64 mode 2006-10-02 18:50:34 +00:00
Volker Ruppert
0c827dcbf1 - implemented debugger access to SMRAM area 2006-10-02 17:40:20 +00:00
Stanislav Shwartsman
925ae93e22 Reveer back changes for debug.h removal from bochs.h 2006-09-26 19:16:10 +00:00
Stanislav Shwartsman
aab3feb2e0 Fixed Makefile to compile with ACPI stub disabled
Remove bx_debug.h from bochs.h to reduce compilation dependencies
2006-09-25 20:13:52 +00:00
Volker Ruppert
1f5d311ca1 - fixed memory leaks found with valgrind when trying to start a second
simulation with wxBochs:
  * cpu: delete pageWriteStampTable array
  * devices: simplified setup of initial default i/o handlers
  * ne2k: delete ethernet module in destructor
2006-09-20 20:52:23 +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
Stanislav Shwartsman
02c2fc9e89 Fixed priveledge level checks 2006-09-10 16:56:55 +00:00
Volker Ruppert
5dd0d64b11 - several changes for restart support in wx (not yet complete)
* don't initialize cpu specific parameters for the wx debugger if they already
    exist
  * separate siminterface method init_save_restore() added
  * old wx specific handling in quit_sim() removed
  * new bx_list_c method clear() deletes all parameters from the list
  * moved devices cleanup code from the pc_system to a new devices method exit()
  * pc_system init code now sets ticksTotal to 0
2006-09-07 18:50:51 +00:00
Stanislav Shwartsman
173d126763 Fixed LDTR reset vales 2006-08-31 18:21:16 +00:00
Stanislav Shwartsman
fdac9efa9b Fixed ton of code duplication.
Do not save/restore XMM8-XMM15 not in 64-bit mode
2006-08-31 18:18:17 +00:00
Volker Ruppert
3600f1af41 - fixed LDTR list size 2006-08-26 07:35:27 +00:00
Stanislav Shwartsman
65082e4a4f Handle granularity field for LDT
Next step - fix code duplication with TSS
2006-08-25 19:56:03 +00:00
Stanislav Shwartsman
54fb3b769a Fixed LDT 16-bit limit, must support all 32-bit values. 2006-08-22 19:06:03 +00:00
Stanislav Shwartsman
3ce7764fce Fixes in 64-bit decoding 2006-08-11 17:23:36 +00:00
Volker Ruppert
00a66c380a - fixed boot failures on big endian machines (thanks to the SF compile farm) 2006-08-03 21:03:21 +00:00
Volker Ruppert
8e85b8654b - fixed repeat speedup optimization on big endian machines 2006-08-01 17:09:05 +00:00
Stanislav Shwartsman
45353d5e6f Fixed DR registers handling in x86-64 mode 2006-06-26 21:07:44 +00:00
Stanislav Shwartsman
aa1a61bfde Add (when needed) or remove (when not needed) x86-64 compilation hack 2006-06-26 20:28:00 +00:00
Stanislav Shwartsman
c7aa53d044 Fixed compilation error of extdb 2006-06-25 21:44:46 +00:00
Stanislav Shwartsman
f9754dadeb Fix some code duplication 2006-06-24 18:27:11 +00:00
Stanislav Shwartsman
5ade11bae4 Added exception debug print 2006-06-22 19:53:58 +00:00
Stanislav Shwartsman
6468398104 Fixed APIC interrupt priority bug 2006-06-20 16:51:03 +00:00
Stanislav Shwartsman
070d782ec8 Move paddr_valid param of dbg_xlate_linear2phy method to return value.
This is much easier to use.
2006-06-17 12:09:55 +00:00
Stanislav Shwartsman
f44190ed27 Comment most likely redundant invalid_prefetch_q 2006-06-16 20:08:03 +00:00
Stanislav Shwartsman
9269288319 Fix SR macros mis-use. Need to add assertion into bxlist_c and check that it has no 2 params with same name inside ! 2006-06-14 16:44:33 +00:00
Stanislav Shwartsman
8ed8916ea9 Break to debugger on triple fault or panic (this time do it correctly)
Indent changes
2006-06-12 19:51:31 +00:00
Stanislav Shwartsman
49d7b4614f Fixed another bug generator - duplication between descriptor type field and four descriptor cache bits 2006-06-12 16:58:27 +00:00
Stanislav Shwartsman
5a80bf51ca Added more definitions 2006-06-11 21:55:39 +00:00
Stanislav Shwartsman
308521e7ce Fixes in SYSCALL/SYSRET instructions
Use parse_selector to avoid code duplication
2006-06-11 21:37:22 +00:00
Stanislav Shwartsman
869f74b3ee Reduce amount of dbg_get_cpu calls (I would like to remove this function) and use save/restore power in debugger 2006-06-11 16:40:37 +00:00
Stanislav Shwartsman
deab206378 More useful debug prints 2006-06-09 22:39:50 +00:00
Stanislav Shwartsman
6c3420a18b Add debug prints before any #GP excepion which only possible to be generated 2006-06-09 22:29:07 +00:00
Stanislav Shwartsman
3cb38b3c45 Indent changes 2006-06-09 21:17:26 +00:00
Stanislav Shwartsman
fea9973570 Fixed failure when running 386 simulation 2006-06-09 21:14:25 +00:00
Stanislav Shwartsman
84124f29d2 Fix FPU tos value (found with save/restore logs browsing 2006-06-08 19:56:30 +00:00
Volker Ruppert
d550d71e03 - register parameters for the wx debugger only if present (fixes memory leak)
- removed useless static variable 'counter'
2006-06-06 18:36:50 +00:00
Stanislav Shwartsman
1deddb9f0e Fix linking problem with debugger enabled 2006-06-06 16:46:08 +00:00
Stanislav Shwartsman
c8c5772f44 1. Fix BX_INFO message in config.cc
2. In init.cc save and restore BX_CPU_THIS__PTR trace value, allows to enable/disable tracing using save/restore.
3. in iret.cc - cleanup3. in iret.cc - cleanup3. in iret.cc - cleanup
2006-06-05 17:33:25 +00:00
Stanislav Shwartsman
f31e03d4cb More clear debug message 2006-06-05 16:38:43 +00:00
Stanislav Shwartsman
08d7e8e305 Fixed wrong assert_check failure found during x86-64 save/restore experiments 2006-06-05 16:36:56 +00:00
Stanislav Shwartsman
1aaf19cd09 Support for partial read/write in APIC space 2006-06-05 05:39:21 +00:00
Stanislav Shwartsman
fea15294b5 Fixed compilation error in init.cc
Move initialization of memory object to misc_mem.cc
2006-06-03 12:59:14 +00:00
Stanislav Shwartsman
d17eb99f76 fixed allocated physical memory limit check in memory.cc
Force eflags before saving them - register eflags using param handlers
2006-06-01 20:05:15 +00:00
Stanislav Shwartsman
02aa59886c Fix APIC tmr/isr/irr registers reading problem 2006-06-01 14:05:23 +00:00
Stanislav Shwartsman
32a6e4c561 Added more debug messages to apic 2006-06-01 11:59:23 +00:00
Stanislav Shwartsman
4b7e7087aa Handle more fields memory management insie the bx_param_c.
Remove more strdups
2006-05-30 17:01:27 +00:00