Stanislav Shwartsman
fe02ecab65
Do not flood log with WBINVD/INVD messages
2005-11-27 18:36:19 +00:00
Stanislav Shwartsman
8c91790680
Redefine registers accessors in cpu.h
...
Change BxSupportPAE and BxSupportGlobalPages macros to Bochs style names
Set bx_cpu_id in BX_CPU_C constructor (safe way)
Backup cpu-level check for paging features at compile time (already checked in configure)
Some warnings and indent fixes
speed up get_segment_base method for x86-64 case
2005-11-26 21:36:51 +00:00
Stanislav Shwartsman
9314752bb1
Rewritten task_switch mechnism according to AMD docs
...
This should fix the #SF bug report
736279 Jump to Task
2005-11-21 21:10:59 +00:00
Stanislav Shwartsman
cd2a9f317d
Do not PANIC when HLT with IF=0, only BX_INFO
2005-11-04 15:15:02 +00:00
Stanislav Shwartsman
ab81296e33
Update CHANGES/TODO
...
Change BX_INFO to BX_DEBUG in read CR4 function
2005-10-23 21:11:32 +00:00
Stanislav Shwartsman
64ba97210b
INVD/WBINVD should flush caches and TLB
2005-10-18 18:07:52 +00:00
Stanislav Shwartsman
670395f1be
VME support - beta #1
2005-10-17 13:06:09 +00:00
Stanislav Shwartsman
e83c77db49
Preparing to VME implementation
...
DO NOT ENABLE VME option until the implementation will be completed !
2005-10-16 23:13:19 +00:00
Stanislav Shwartsman
469358aaf9
Move SHOW_IPS action to bx_gui object, may be some GUI will be able to print IPS online in the simulation window status bar ...
...
Small code cleanup
2005-10-13 16:22:21 +00:00
Stanislav Shwartsman
39fc11c5da
Fix compilation error
2005-10-09 18:32:36 +00:00
Stanislav Shwartsman
7869ab425f
LTR should #GP when loading NULL selector
...
fixed check for SYSENTER/SYSEXIT instructions
according to new Intel references
2005-10-01 07:47:00 +00:00
Stanislav Shwartsman
8c783bc329
Fixed cpu_mode corruption in x86-64 mode
...
Removed all potentially unsafe and duplicated code in setFLAGS methods to avoid such kind of problems in future
2005-09-29 17:32:32 +00:00
Stanislav Shwartsman
6096698393
Fixed CLTS and HLT GP0 check
2005-09-14 20:01:42 +00:00
Stanislav Shwartsman
8be190d848
Implemented RDTSCP instruction
2005-08-05 12:47:33 +00:00
Stanislav Shwartsman
954aae3f99
Speedup push/pop operations, they actually not needed to do can_push/can_pop checkes, the same checkes already done in read/write_virtial methods
...
Split push_seg_reg methods according to op size
2005-07-31 17:57:27 +00:00
Stanislav Shwartsman
5da36b7d3d
Fixed code duplication, added canonical address checking for RETF in long mode
2005-07-29 06:29:57 +00:00
Stanislav Shwartsman
4638f09b24
Added BX_INSTR_HLT instrumentation callback
2005-07-07 18:40:35 +00:00
Stanislav Shwartsman
3d2e2162f3
Code indent, no functionality changes
2005-07-01 14:06:02 +00:00
Stanislav Shwartsman
015ad92958
Added SMP status to TODO file
...
Removed abusive BX_INFO from WBINVD instruction
The PREFETCHW (3DNow!) instruction should not #UD in x86-64 even on Intel w/o 3DNow!
2005-05-27 01:53:38 +00:00
Stanislav Shwartsman
6c318bd047
SFENCE/MFENCE/LFENCE methods not defined in CPU class and they NOP in fetchdecode.cc
2005-05-18 05:05:40 +00:00
Kevin Lawton
f829c9cf93
Typo in CR8 handling in MOV_CqRq/MOV_RqCq had a typo. A switch
...
target of 7 was used instead of 8.
2005-05-17 22:22:35 +00:00
Stanislav Shwartsman
494af8b1f3
Fixed segmentation fault for 2CPU cfg
2005-04-26 19:19:58 +00:00
Stanislav Shwartsman
501cca67c2
Fix compilation err
2005-04-18 17:41:15 +00:00
Stanislav Shwartsman
8482511af3
Fix compilation errors
...
Add BX_INFO for writing to TSC_MSR (not implemented message)
2005-04-18 17:21:34 +00:00
Stanislav Shwartsman
0f7f728e86
Added debug messages for interrupt function in long mode
...
Added mode switch debug prints
2005-03-30 20:53:04 +00:00
Stanislav Shwartsman
e6e9dd3825
Extend Bochs instrumentation
...
Compatability fixes
2005-03-17 20:50:57 +00:00
Stanislav Shwartsman
6e53a54907
Extend cpu_mode for :
...
#define BX_MODE_IA32_REAL 0x0 // CR0.PE=0
#define BX_MODE_IA32_PROTECTED 0x1 // CR0.PE=1, EFLAGS.VM=0
#define BX_MODE_IA32_V8086 0x2 // CR0.PE=1, EFLAGS.VM=1
#define BX_MODE_LONG_COMPAT 0x3 // EFER.LMA = 0, EFER.LME = 1
#define BX_MODE_LONG_64 0x4 // EFER.LMA = 1, EFER.LME = 1
2005-03-15 19:00:04 +00:00
Stanislav Shwartsman
c30e89289b
Fixed R/O pages access in CPL=3 (TLB accessBits bug)
2005-03-03 20:24:52 +00:00
Stanislav Shwartsman
c583a6f9cf
move segments and descriptors definitions and macroses for new descriptor.h
2005-02-27 17:41:45 +00:00
Stanislav Shwartsman
6e773a652a
Fix SYSENTER/SYSEXIT instructions
2005-02-26 12:00:22 +00:00
Stanislav Shwartsman
830ca51b91
Merge patches:
...
1149720 critical - fix x86-64 SYSCALL RFLAGS masking
1149758 wrmsr efer fix
2005-02-23 18:00:07 +00:00
Stanislav Shwartsman
2bfc842c09
CPU fixes by Kevin Lawton
2005-02-16 21:27:21 +00:00
Stanislav Shwartsman
5701f62a42
Fix compiler warnings with -wall
2005-02-03 18:43:23 +00:00
Stanislav Shwartsman
d27e81bdac
-in case of --enable-ignore-bad-msr enabled read ignored MSRs as zeRo
...
- enabled #DE and #TSD and #MCE bits in CR4 register, previosly setting
of one of these bits generated #GP(0) (Stanislav, Volker Ruppert)
2005-02-03 18:25:10 +00:00
Stanislav Shwartsman
7eb2f0aa3e
Enable TSD in CR4 (RDTSC instruction is already implemented so it has no problem to enable TSD for CPU LEVEL >=5)
2005-01-23 21:13:49 +00:00
Stanislav Shwartsman
3cd646004f
Fixed bug "1101168 APIC base address change"
2005-01-13 19:03:40 +00:00
Volker Ruppert
48ebc288c6
- MCE is supported on Pentium or higher (exception 18 never appears in Bochs)
2005-01-09 08:14:15 +00:00
Stanislav Shwartsman
5955549a8d
Fixed bug report [ #879050 ]
...
Bochs reports enabled APIC without support
2004-12-14 20:41:55 +00:00
Stanislav Shwartsman
730b8c0243
Fix this pointers in the code
2004-11-14 21:25:42 +00:00
Stanislav Shwartsman
1a6656ce91
Fixed compilation warnings (g++, -Wall)
...
Improve speed and precision of FPATAN FPU instruction
2004-11-04 22:41:24 +00:00
Stanislav Shwartsman
f06c8b6b95
EIP > CS.limit should not be a problem
...
Manual says that GP(0) shouldd be generated in this case ALWAYS
Fixed instructions PANIC messages to ERROR for this case
And ... do not leave PANIC messages w/o taking care that user could push CONTINUE button and program should know to continue after the PANIC code line. Mainly in rerurn instructions were several problems ...
2004-11-02 16:10:02 +00:00
Stanislav Shwartsman
80ee150d83
Imlemented CR8 register for X86-64 mode
2004-10-13 20:58:16 +00:00
Stanislav Shwartsman
4988a098f5
Small optimizations
2004-10-03 21:52:10 +00:00
Stanislav Shwartsman
040be015d8
1. Added required GP(0) exception when setting conficting flags in CR0
...
2. APIC disabled compilation error fixed
2004-09-21 20:19:19 +00:00
Stanislav Shwartsman
5c5b556f24
Merge softfloat-fpu-implementation_ver4_branch branch
2004-06-18 14:11:11 +00:00
Stanislav Shwartsman
e6991f043f
pply patch
...
[ 924428 ] ET bit mismatch between CR0 and MSW
2004-06-03 17:57:29 +00:00
Stanislav Shwartsman
3274e0dd12
Commit patch
...
[ 950905 ] Do not PANIC on rare, bad input from user-mode
by h.johansson
with little changes and fixes
2004-05-10 21:05:51 +00:00
Stanislav Shwartsman
cdb68ff8c8
Reverting back the changes in data_xfer16.cc
...
Add/Fix bx_info messages in proc_ctrl.cc
2003-11-13 21:57:13 +00:00
Stanislav Shwartsman
d51aece0c1
Change BX_PANIC messages to BX_INFO when behaviour is accepted with Intel/AMD docs.
...
Instructions MOV_CxRx and MOV_RxCx are not supported in v8086 mode according to Intel manuals.
Also these instructions are treated as register-to-register regardless to MODRM byte fields (according to AMD manuals)
Also commit fix for MOV_EwSw by Kevin
2003-11-13 21:17:31 +00:00
Stanislav Shwartsman
ac20b6405a
- FXSAVE/FXRSTOR instructions should be available in P6 mode
...
- Added second UD2 opcode to fetchdecode
- Added RDPMC instruction to fetchdecode
- 'changes' updated
2003-10-24 18:34:16 +00:00