Bochs/bochs/cpu/todo
Stanislav Shwartsman f90e5f4f44 Add initial implementation of the CET (Control Flow Enforcement Technology) emulation according to SDM071
Only missing items (to be added soon):
  - Supervisor Shadow Stack EPT Control is not implemented yet
  - SMM placing for SSP
Currently have to be added manually to some CPUID model, for example to ICL-U
To enable configure with --enable-cet
2019-12-20 07:42:07 +00:00

77 lines
2.2 KiB
Plaintext

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.
[!] 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 Intel version.
Do we need to support both ?
[!] VMX:
- Dual-monitor treatment of SMIs and SMM not implemented yet
- Posted Interrupts Processing is not implemented yet
- MTF is not implemented yet
[!] SVM:
- Decoding assists, pause filter, VMCB clean are not implemented yet
- Advanced Virtual Interrupt Controller (AVIC) not implemented yet
- More?
[!] AMD misaligned SSE mode should convert #GP on misaligned SSE access to #AC
exception when #AC is enabled
[!] TODO: Convert CPUDB to plugins and search for them in runtime
[!] TODO: Find a way to implement HLE and RTM extensions
------------------------------------------------------------------------------------
[!] No plans for MPX, Intel Processor Trace, LWP.
Their emulation would greatly affect emulation performance.
Could be implemented through instrumentation if ***really*** needed.
------------------------------------------------------------------------------------
[!]: Some system operations have to be done atomically.
This is the list for future reference:
- A/D bit update in page table
- A bit update in segment descriptor
- BUSY bit in TSS
- Busy bit in shadow stack
- RSTORSSP