1b72e66bb3
separate between I/O apic and local apic
58 lines
1.5 KiB
Plaintext
Executable File
58 lines
1.5 KiB
Plaintext
Executable File
TODO (know issues in CPU model):
|
|
-------------------------------
|
|
|
|
[!] The following 3DNow! instructions still not implemented:
|
|
PF2IW_PqQq
|
|
PFNACC_PqQq
|
|
PFPNACC_PqQq
|
|
PFCMPGE_PqQq
|
|
PFCMPGT_PqQq
|
|
PFCMPEQ_PqQq
|
|
PFMIN_PqQq
|
|
PFMAX_PqQq
|
|
PFRCP_PqQq
|
|
PFRSQRT_PqQq
|
|
PFSUB_PqQq
|
|
PFSUBR_PqQq
|
|
PFADD_PqQq
|
|
PFACC_PqQq,
|
|
PFMUL_PqQq
|
|
PFRCPIT1_PqQq
|
|
PFRSQIT1_PqQq
|
|
PFRCPIT2_PqQq
|
|
|
|
[!] CPUID does not report 3DNow! instruction set
|
|
|
|
[!] Some of APIC functionality still not implemented, for example
|
|
|
|
- LVT pins handling
|
|
- Filter interrupts according processor priority (PPR)
|
|
|
|
[!] REP NOP is PAUSE (on P4/XEON)
|
|
|
|
When running in SMP mode, this means that we are in a spin loop.
|
|
This processor should yield to the other one, as we are anyhow waiting
|
|
for a lock, and any other processor is responsible for this.
|
|
|
|
[!] Canonical fault in 64-bit mode not handled correctly in many many cases,
|
|
the exception is just missed.
|
|
|
|
[!] 32-bit linear address wrap when executing in legacy mode might be
|
|
not implemented correctly for system memory accesses (like descriptor
|
|
tables and etc)
|
|
|
|
[!] AMD and Intel x86_64 implementations are different.
|
|
Currently Bochs emulation is according to AMD version.
|
|
Do we need to support both ?
|
|
|
|
[!] More flexible CPUID - vendor and etc
|
|
|
|
[!] VMX:
|
|
|
|
- Dual-monitor treatment of SMIs and SMM not implemented yet
|
|
- NMI virtualization, APIC virtualization not implemented yet
|
|
- VMENTER to not-active state not supported yet
|
|
- No advanced features like Extended Page Tables (EPT) or VPID
|
|
|
|
[!] SSE4A, SSE5A, SMX, SVM, AVX
|