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
Stanislav Shwartsman
44b3ebeca2
remove BX_TRUE/BX_FALSE macros, use stdc++ true/false instead
2019-12-09 16:44:36 +00:00
Stanislav Shwartsman
f0245b5f2b
introduce special handlers for zero-idiom instructions - ~1% speedup to simulation. infra for fast string emulation in 64-bit mode
2019-10-14 06:40:19 +00:00
Stanislav Shwartsman
3da93728b3
split some opcode reference tables in new decoder between x86-64 and 32 for better perf
2019-02-17 21:22:54 +00:00
Stanislav Shwartsman
4f625b23e0
enable yet another Bochs new decoder. It is a bit slower than old one but it is much more extendable so adding new opcode won't be nightmare anymore
2019-02-16 15:23:24 +00:00
Stanislav Shwartsman
d000e21001
added MOVDIRI opcode implementation
2018-04-06 05:06:36 +00:00
Stanislav Shwartsman
3c08cfedf2
fixed buffer overflow when printing instruction disasm for opcode bytes which cannot be decoded
2017-12-31 21:22:04 +00:00
Stanislav Shwartsman
8a311515dd
correctly decode VPEXTRB/W/D/Q - these opcodes allowed to be with VEX.L=0 only
...
fixed disasm module compilation with no AVX enabled
remove duplicate opcode handlers
2017-12-13 19:51:25 +00:00
Stanislav Shwartsman
a028ef7c9c
bugfix for decoder with EVEX enabled
2017-12-11 19:29:11 +00:00
Stanislav Shwartsman
e46f37b40e
fixed disasm of memsize for sse legacy instructions
2017-12-11 18:33:33 +00:00
Stanislav Shwartsman
404a5f2c53
bugfix for previous commit
2017-12-11 16:41:48 +00:00
Stanislav Shwartsman
b03f78d652
updates for bochs decoder and decoder based disasm
2017-12-11 15:45:43 +00:00
Stanislav Shwartsman
c80e587ded
properly handle kmask registers in modrm form
2017-12-05 19:33:23 +00:00
Stanislav Shwartsman
31ea453921
fixed bogus assert
2017-12-02 16:40:03 +00:00
Stanislav Shwartsman
60591800f1
handle lock mov cr0 amd feature out decoder critical path
2017-12-01 21:18:16 +00:00
Stanislav Shwartsman
01067cb4b9
another compilation fix for new disasm stand-alone module
2017-11-29 19:24:00 +00:00
Stanislav Shwartsman
c8d9aeb377
mark blocks of code which not supposed to be compiled for stand-alone bochs cpu decoder
2017-11-27 20:25:04 +00:00
Stanislav Shwartsman
596b3b6eb8
reduce CPU dependencies from fetchdecode module
2017-11-25 20:20:34 +00:00
Stanislav Shwartsman
8261a91ce9
implemented GFNI instructions
2017-10-21 19:57:12 +00:00
Stanislav Shwartsman
5439647254
small change to extract ia_opcodes.h from instr.h to dedicated file. this would remove compilation dep of all files on ia_opcodes.h (now called ia_opcdes.def). regenerating dep ober all files in Makefiles.in
2017-10-19 21:27:25 +00:00
Stanislav Shwartsman
3f4f18de7a
internal disasm updates
2017-06-05 20:28:33 +00:00
Stanislav Shwartsman
46ef85ce0f
avoid using magic constants for disasm source metadata
2017-06-05 19:55:40 +00:00
Stanislav Shwartsman
bb43ac527b
fixed decoder issue when decoding opcode 8f (aka xop prefix) as well
2017-05-27 10:32:44 +00:00
Stanislav Shwartsman
54c109ceb4
VEX and EVEX opcodes should be considered as 2-byte opcode, always attempt to fetch 2nd byte even if #UD is already detected
2017-05-26 11:46:02 +00:00
Stanislav Shwartsman
862e817884
fixed typo caused compilation err
2017-03-28 19:13:20 +00:00
Stanislav Shwartsman
b7b0165d3c
new naming convention for UD opcodes
2017-03-28 19:00:00 +00:00
Volker Ruppert
9bef555f3e
Updated build test script and fixed compilation without FPU.
2017-03-19 09:50:16 +00:00
Stanislav Shwartsman
8664f8f21e
add vex.w into bxInstruction to be used in disasm
2017-01-28 19:25:30 +00:00
Stanislav Shwartsman
af1d83f35d
update (c)
2017-01-11 20:54:09 +00:00
Stanislav Shwartsman
521d2d10c4
correctly fixed x32 emu compilation err + bugfix for AVX decoder
2017-01-11 20:51:58 +00:00
Stanislav Shwartsman
72e5213ff4
compilation fix and code simplifcation
2017-01-11 19:12:06 +00:00
Stanislav Shwartsman
10eb193e01
step 1 of rewrite Bochs decoder: legacy decoder tables done. TODO: avx/evex decoder tables, merge decoder and disasm together
2017-01-10 20:15:17 +00:00
Stanislav Shwartsman
46b4a76cd3
fetchdecode rework step 0.1, no impact on correctness, small speedup
2016-12-09 12:34:37 +00:00
Stanislav Shwartsman
42b0714992
rename fetchdecode.cc -> fetchdecode32.cc
2016-09-25 18:25:47 +00:00