Stanislav Shwartsman
|
0cd49ddae4
|
fixed compilation with EVEX disabled
|
2018-03-29 08:50:38 +00:00 |
|
Stanislav Shwartsman
|
773f1b7e42
|
cleanup return value of all instruction handlers
|
2018-02-16 07:57:32 +00:00 |
|
Stanislav Shwartsman
|
769ed3ef88
|
fixed MOVBE instruction decoding
|
2018-01-23 19:53:34 +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
|
6566cab8aa
|
fixed new disasm for avx2 opcodes
|
2017-12-30 18:45:21 +00:00 |
|
Stanislav Shwartsman
|
4c03fe3e2c
|
fixed disasm of vcvtps2ph/ph2ps opcodes
|
2017-12-28 19:59:42 +00:00 |
|
Stanislav Shwartsman
|
ed8fa8ac61
|
fix compilation with no AVX enabled
|
2017-12-24 15:38:21 +00:00 |
|
Stanislav Shwartsman
|
ca034f0642
|
fixed disasm of sse insertps instruction
|
2017-12-21 18:18:10 +00:00 |
|
Stanislav Shwartsman
|
59c542fb06
|
fix disasm of FISTTP opcodes
|
2017-12-19 20:36:55 +00:00 |
|
Stanislav Shwartsman
|
4337a062e2
|
disasm memsize for gather opcodes
|
2017-12-19 19:51:55 +00:00 |
|
Stanislav Shwartsman
|
15187110ef
|
implement disasm of implicit memory reference for maskmovdqu/maskmovq opcodes. fix vmaskmovdqu disasm for legacy disasm as well
|
2017-12-19 19:45:30 +00:00 |
|
Stanislav Shwartsman
|
e086f7ba19
|
split INSERTPS opcode to reg and mem forms
|
2017-12-19 19:25:40 +00:00 |
|
Stanislav Shwartsman
|
ce3eafa535
|
disasm fix
|
2017-12-17 18:47:21 +00:00 |
|
Stanislav Shwartsman
|
79ec183ff6
|
fixup for MMX opcodes disasm
|
2017-12-17 17:21:02 +00:00 |
|
Stanislav Shwartsman
|
5dc5e01a12
|
disasm fixes and reorg of pinsr* opcodes
|
2017-12-16 18:34:20 +00:00 |
|
Stanislav Shwartsman
|
6a4e8ff2f1
|
fixed typo in prev commit
|
2017-12-13 21:08:10 +00:00 |
|
Stanislav Shwartsman
|
f362f34ed6
|
correctly decode PINSRQ instruction
|
2017-12-13 20:59:41 +00:00 |
|
Stanislav Shwartsman
|
50a799ea11
|
split handlers for PINSRD/Q opcodes. fix disasm for MULX instruction
|
2017-12-13 20:18:59 +00:00 |
|
Stanislav Shwartsman
|
07bff3be43
|
fixed decoding of VPINSRB/W/D/Q and VINSERTPS with EVEX prefix
|
2017-12-13 20:02:12 +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
|
2f3c9d3c8c
|
correct disasm for movsxd opcode
|
2017-12-13 18:44:13 +00:00 |
|
Stanislav Shwartsman
|
c1dc514c2a
|
clarify disasm of movlhps/movhlps opcodes
|
2017-12-12 08:55:09 +00:00 |
|
Stanislav Shwartsman
|
fd953421f4
|
new disasm: add correct memaccess size for FLDCW
|
2017-12-11 19:58:09 +00:00 |
|
Stanislav Shwartsman
|
a84d9cf1c7
|
disasm: fix crc32 operand description
|
2017-12-11 19:45:50 +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
|
8f15cfb514
|
fixed link err with debugger enabled
|
2017-12-05 19:23:41 +00:00 |
|
Stanislav Shwartsman
|
31ea453921
|
fixed bogus assert
|
2017-12-02 16:40:03 +00:00 |
|
Stanislav Shwartsman
|
eaa05c32e8
|
link without LOGIO for standalone decoder mode
|
2017-12-01 21:27:30 +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
|
a7e58973ce
|
fixed typo
|
2017-11-27 20:26:54 +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
|
cef6c7fb98
|
fix for new disasm
|
2017-11-26 19:38:58 +00:00 |
|
Stanislav Shwartsman
|
596b3b6eb8
|
reduce CPU dependencies from fetchdecode module
|
2017-11-25 20:20:34 +00:00 |
|
Stanislav Shwartsman
|
180386cd74
|
VMOVSS/VMOVSD are VEX.VL ignore form and not VEX.L0
|
2017-11-11 11:58:07 +00:00 |
|
Stanislav Shwartsman
|
f89b8a2742
|
fixed opcode of ADOX instr
|
2017-11-11 10:42:21 +00:00 |
|
Stanislav Shwartsman
|
8261a91ce9
|
implemented GFNI instructions
|
2017-10-21 19:57:12 +00:00 |
|
Stanislav Shwartsman
|
b7f62a291c
|
fixed compressed displ form for more avx512 instructions
|
2017-10-20 19:41:32 +00:00 |
|
Stanislav Shwartsman
|
da8d6e793f
|
fixed compilation issues
|
2017-10-20 19:24:10 +00:00 |
|
Stanislav Shwartsman
|
bca076889b
|
decode all the vbmi2 opcodes, fix vpcompress/vpexpand instruction handler names (affects disasm)
|
2017-10-20 18:50:10 +00:00 |
|
Stanislav Shwartsman
|
77a62a4dcd
|
implemented (experimental, still untested) AVX512 VBMI2 extensions
|
2017-10-20 18:38:15 +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
|
ba1e5bbffa
|
fixed accidentially broken XMM versions of AES instrructions
|
2017-10-19 20:25:05 +00:00 |
|
Stanislav Shwartsman
|
15ba88c195
|
implemented VAES/VPCLMULDQ instructions - VEX/EVEX extensions of AES/PCLMULQDQ
|
2017-10-19 19:12:55 +00:00 |
|
Stanislav Shwartsman
|
6daa1ba9ba
|
fixed compilation issue with EVEX enabled
|
2017-10-15 20:40:56 +00:00 |
|
Stanislav Shwartsman
|
944f37b1f2
|
implemented AVX-512 BITALG instructions/bugfix for VPOPCNT instructions
|
2017-10-15 20:33:19 +00:00 |
|
Stanislav Shwartsman
|
0d190eec8e
|
implemented AVX-512 VNNI instructions
|
2017-10-15 19:17:07 +00:00 |
|
Stanislav Shwartsman
|
54e969b749
|
disasm update
|
2017-06-05 21:05:47 +00:00 |
|
Stanislav Shwartsman
|
20e9e33662
|
internal disasm updates
|
2017-06-05 20:49:04 +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
|
af76e0c412
|
fixes for debugger and disasm
|
2017-05-10 18:31:59 +00:00 |
|
Stanislav Shwartsman
|
1ca366609f
|
add memsize for non-evex memory refrences in disasm
|
2017-05-09 19:49:27 +00:00 |
|
Stanislav Shwartsman
|
f8abddafcf
|
bugfix in disasm
|
2017-05-09 19:34:03 +00:00 |
|
Stanislav Shwartsman
|
1d48973c80
|
updates in fetchdecode.h to help automatic disasm to determined memaccess size
|
2017-05-09 12:06:02 +00:00 |
|
Stanislav Shwartsman
|
1abfcd39ff
|
implement FOPCODE and FDP deprecation CPU features
|
2017-05-05 20:56:13 +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 |
|
Stanislav Shwartsman
|
2b79061127
|
Implemented MONITORX/MWAITX instructions (AMD), enabled in Ryzen CPU model
|
2017-03-26 19:14:15 +00:00 |
|
Stanislav Shwartsman
|
411ea954b4
|
implemented CLZERO instruction from AMD Ryzen CPU
|
2017-03-25 20:12:31 +00:00 |
|
Volker Ruppert
|
9bef555f3e
|
Updated build test script and fixed compilation without FPU.
|
2017-03-19 09:50:16 +00:00 |
|
Stanislav Shwartsman
|
be4c6c7ae5
|
SMAP opcodes are No-SSE-Prefix
|
2017-03-16 16:20:58 +00:00 |
|
Stanislav Shwartsman
|
172b0106ac
|
imvent a bochs feature for AMD TCE and enable EFER.TCE bit
|
2017-03-15 22:52:08 +00:00 |
|
Stanislav Shwartsman
|
3a033fa6db
|
implemented xsaves/xrstors extensions (supported by Intel Skylake core and AMD Ryzen)
|
2017-03-15 21:44:15 +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
|
49c537521a
|
simplify disasm code by splitting it into functions
|
2017-01-22 19:53:42 +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
|
90c4cb31c5
|
add SVN header to newly added files
|
2017-01-10 20:16:24 +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
|
9bd99a604f
|
implemented recently announced AVX-512 extension VPOPCNT
|
2016-12-17 13:47:45 +00:00 |
|
Stanislav Shwartsman
|
e613e9ff86
|
fixed compilation err when no AVX is enabled
|
2016-12-12 06:18:57 +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 |
|
Stanislav Shwartsman
|
d9e818cd5d
|
refactoring in the Bochs decoder code
|
2016-09-25 18:19:59 +00:00 |
|
Stanislav Shwartsman
|
8f20cecbae
|
fixed code style in fetchdecode.cc, avoid code duplication
|
2016-09-08 17:29:09 +00:00 |
|
Stanislav Shwartsman
|
b7091b09f6
|
cleanup in fetchdecode functions
|
2016-09-08 15:09:29 +00:00 |
|
Stanislav Shwartsman
|
14b7fff442
|
remove unexpected change in fetchdecode.cc
|
2016-08-30 18:43:36 +00:00 |
|
Stanislav Shwartsman
|
032da78e52
|
remove SMP and AVX from Android build script. reduce the binary size and make faster binary (SMP makes binary a lot slower)
|
2016-08-30 18:42:39 +00:00 |
|
Stanislav Shwartsman
|
88637aa9ef
|
fixed potential uninitialized variable access when decoding AVX/XOP/EVEX
|
2016-07-06 09:09:49 +00:00 |
|
Stanislav Shwartsman
|
6761495f7e
|
second step if Bochs decoder refactoring: extracted assign_srcs code to separate methods
|
2016-07-05 20:42:25 +00:00 |
|
Stanislav Shwartsman
|
2a98e7bc63
|
fixed decoder bug introduced in svn rev12927
|
2016-07-05 18:04:23 +00:00 |
|
Stanislav Shwartsman
|
033303399d
|
properly set segment register for 64-bit decode
|
2016-07-03 20:07:16 +00:00 |
|
Stanislav Shwartsman
|
98da36a63f
|
extract decoding of modrm into dedicated function in decoder
|
2016-07-03 19:51:33 +00:00 |
|
Stanislav Shwartsman
|
7a34f00f99
|
extracted fetchdecode into separated folder under cpu and also out of BX_CPU_C class into stand-alone module. Next step: wrap it up nicely and define clear interace to CPU model to minimize dependencies. Ideally I need fetchdecode to not include CPU at all
|
2016-06-12 21:23:48 +00:00 |
|