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
Stanislav Shwartsman
789db2603e
Added P4 support to CPUID instruction
...
Extracted CPUIS instructions to separate file
2003-09-26 15:32:41 +00:00
Stanislav Shwartsman
7f570b0150
Added PNI new streaming extensions instructions
...
PNI could be enabled by setting BX_SUPPORT_PNI in config.h
After the feature will be fully validation I'll also add configure option.
The implemntation is ~complete. I've missed only three FPU new opcodes of FUSTTP instruction and MONITOR/WAIT instructions.
Enjoy ! ;)
2003-08-29 21:20:52 +00:00
Stanislav Shwartsman
549eb70324
Committed CPU fixes from Vitaly Vorobyov:
...
[x] fixed bug in int01 (opcode 0xF1) emulation
[x] fixed bug in x86 debugger with dr0-dr3 registers
Committed disassembler bugfix from Dirk Thierbach:
[x] fixed bug in relative addresses in Jmp, Jcc, Call and so on
2003-08-03 16:44:53 +00:00
Stanislav Shwartsman
96984cb6cb
Added missed fetchdecode table entry for SYSENTER/SYSEXIT
2003-06-20 08:58:12 +00:00
Stanislav Shwartsman
1d45167e5b
Merged NEW-INSTRUCTIONS branch
2003-05-15 16:41:17 +00:00
Kevin Lawton
a17d06abcb
Optimized the main cpu loop iCache checks to remove a redundant
...
check.
Commented out a number of instances of invalidate_prefetch_q(),
for branches which do not change CS since the EIP window mechanism
takes care of validating that EIP lands in the current page or not
in the main cpu loop anyways.
Fixed a couple cases (v8086 mode and real mode) of loading CS where
the EIP page window was not invalidated in segment_ctrl_pro.cc.
That may fix some aliasing problems reported before (OS2).
2003-05-10 22:25:55 +00:00
Volker Ruppert
79b811f23f
- fixed warnings in these files:
...
cpu/fetchdecode.cc
cpu/mmx.cc
cpu/proc_ctrl.cc
iodev/virt_timer.cc
plugin.cc
2003-05-02 12:22:48 +00:00
Stanislav Shwartsman
cdfc3cbce4
instrumentation enchancements:
...
* renamed CPU_ID to BX_CPU_ID.
with this new name there is no possibility for name contentions and BX_CPU_ID
definition could be moved out to NEED_CPU_REG_SHORTCUTS block
* returned back `unsigned BX_CPU::which_cpu(void)` function
* added BX_CPU_ID parameter for
BX_INSTR_PHY_READ(a20addr, len);
BX_INSTR_PHY_WRITE(a20addr, len);
now it will be
BX_INSTR_PHY_READ(cpu_id, a20addr, len);
BX_INSTR_PHY_WRITE(cpu_id, a20addr, len);
2003-02-13 15:04:11 +00:00
Stanislav Shwartsman
e1b8e5b9f9
Fixed FTW save/restore in FXSAVE/FXRSTOR opcodes
2003-01-23 17:53:11 +00:00
Christophe Bothamy
939b558fdf
- apply patch.sysenterexit-mrieker:
...
- adds sysenter/sysexit support for cpu-level>=6
- enabled by ./configure --enable-sep
2003-01-20 20:10:31 +00:00
Peter Tattam
24d4a5003c
patches to CPUID required to get latest x86-64 linux kernel (2.4.20) to run.
...
I believe this patch is ok, however it should be regression tested to make sure
nothing is broken.
2003-01-14 07:46:05 +00:00
Peter Tattam
6e359d62ed
disable calling external debugger when jumping in & out of 64 bit mode.
2003-01-14 07:40:21 +00:00
Stanislav Shwartsman
5803e20240
Changed policy of SSE/SSE2 checking
2002-11-13 21:00:05 +00:00
Stanislav Shwartsman
3cd6f7282d
Alloc setting OFXCSR (bit9) of CR4 in SSE/SSE2 enabled
2002-11-08 20:26:12 +00:00
Bryce Denney
4f53ba4e39
- bx_gui is now a pointer, so it needs to be 'bx_gui->' not 'bx_gui.'
2002-10-27 22:26:34 +00:00