Thomas Harte
|
081a2acd61
|
Fix shift group operand size.
|
2022-03-09 09:33:25 -05:00 |
|
Thomas Harte
|
de79acc790
|
Fix RegAddr/AddrRegs and group 2 decoding.
|
2022-03-09 08:38:34 -05:00 |
|
Thomas Harte
|
21d4838322
|
Fix current implementation of data_segment .
As far as it goes.
|
2022-03-08 17:08:21 -05:00 |
|
Thomas Harte
|
926a373591
|
Extend SIB test, correct decoder.
|
2022-03-08 15:03:37 -05:00 |
|
Thomas Harte
|
a954f23642
|
Attempt 32-bit modregrm + SIB parsing.
|
2022-03-08 14:39:49 -05:00 |
|
Thomas Harte
|
41a104cc10
|
Adds special test/control/debug MOVs.
This'll do; it's not ideal but avoids bloating up the `Source` enum.
|
2022-03-07 17:04:05 -05:00 |
|
Thomas Harte
|
f0b4971c7b
|
Correct SHLD format.
|
2022-03-07 16:39:02 -05:00 |
|
Thomas Harte
|
8e669a32a3
|
Take a stab at group 8.
|
2022-03-07 16:34:56 -05:00 |
|
Thomas Harte
|
0e16e7935e
|
Correct double reference to Group 6.
|
2022-03-07 16:26:17 -05:00 |
|
Thomas Harte
|
7ea84d9a4e
|
Add MOVZX, MOVSX.
|
2022-03-07 16:25:44 -05:00 |
|
Thomas Harte
|
7313c89dec
|
Add BT, BTS, BTR, BTC, BSF, BSR.
|
2022-03-07 16:23:25 -05:00 |
|
Thomas Harte
|
35a66c03c2
|
Add the SETs.
|
2022-03-07 10:32:34 -05:00 |
|
Thomas Harte
|
bbb3168bae
|
Adds the missing shift group segues at c0 and c1.
|
2022-03-07 09:18:59 -05:00 |
|
Thomas Harte
|
1ea9d3faf8
|
Introduce additional forms of IMUL.
|
2022-03-07 09:05:22 -05:00 |
|
Thomas Harte
|
4479be4fd0
|
Add the two immediate PUSHes.
|
2022-03-06 14:28:41 -05:00 |
|
Thomas Harte
|
91a6bf671d
|
Also 'easy': LSS, LFS, LGS.
Though perhaps I'm off on LES and LDS?
|
2022-03-06 09:28:43 -05:00 |
|
Thomas Harte
|
49b5889d9e
|
0x8c is available on the 8086.
|
2022-03-06 09:24:59 -05:00 |
|
Thomas Harte
|
ede61ae130
|
Flag up TODOs, for easier in-editor navigation.
|
2022-03-05 17:48:01 -05:00 |
|
Thomas Harte
|
7a79111767
|
Add the easiest 80386 extensions: PUSH/POP FS/GS and longer conditional jumps.
|
2022-03-05 17:32:21 -05:00 |
|
Thomas Harte
|
6432521b9d
|
Correct two references to JP that should be JL.
|
2022-03-05 17:16:32 -05:00 |
|
Thomas Harte
|
65f578fe61
|
Add notes on all missing opcodes.
|
2022-03-05 17:16:13 -05:00 |
|
Thomas Harte
|
3a8eb4a4f0
|
Add 80386 segment overrides.
|
2022-03-05 17:03:46 -05:00 |
|
Thomas Harte
|
eb180656bb
|
Fix $8e data size, add $8c.
|
2022-03-05 17:00:48 -05:00 |
|
Thomas Harte
|
1afcbba218
|
Clarify sign extension availability.
|
2022-03-05 16:44:26 -05:00 |
|
Thomas Harte
|
8a0902a83b
|
Adapts existing opcodes for 32-bit parsing.
|
2022-03-05 13:52:07 -05:00 |
|
Thomas Harte
|
dfb312fee6
|
Make column and row meanings overt.
|
2022-03-05 11:56:08 -05:00 |
|
Thomas Harte
|
11bb594fa2
|
Sets up [ignored] memory and data size prefixes.
|
2022-03-02 20:23:35 -05:00 |
|
Thomas Harte
|
8e3ae2c78f
|
Add opcode map as documentation.
|
2022-03-02 20:00:21 -05:00 |
|
Thomas Harte
|
4b4135e35a
|
Correct #undef.
|
2022-03-01 18:23:24 -05:00 |
|
Thomas Harte
|
d1148c4cab
|
Switch to constexpr function, for guaranteed semantics.
|
2022-03-01 17:30:41 -05:00 |
|
Thomas Harte
|
8ee62b4789
|
Simplify address size semantics.
Since it'll no longer be a mode-dependant toggle, but a fully-retained value.
|
2022-03-01 17:29:26 -05:00 |
|
Thomas Harte
|
5e7a142ff1
|
Fix is_write errors, update comment, add additional source for asserts.
|
2022-03-01 16:51:54 -05:00 |
|
Thomas Harte
|
2c816db45e
|
Refactor: (i) to expose effective address calculation; and (ii) to include address size in Instruction.
|
2022-03-01 09:36:37 -05:00 |
|
Thomas Harte
|
b920507f34
|
Double down on AddressT , add an assert on memory_mask .
|
2022-02-28 10:03:58 -05:00 |
|
Thomas Harte
|
afbc57cc0c
|
Incorporate displacement, switch macro flag.
|
2022-02-28 09:53:23 -05:00 |
|
Thomas Harte
|
9f12c009d6
|
Correct data size when accessing address registers.
|
2022-02-27 19:45:03 -05:00 |
|
Thomas Harte
|
84ac68a58b
|
Fix indirect memory read/write
|
2022-02-27 18:43:00 -05:00 |
|
Thomas Harte
|
27d1df4699
|
Introduce enough of a DataPointerResolver test to build but fail.
|
2022-02-27 18:27:58 -05:00 |
|
Thomas Harte
|
0d7a7dc7c9
|
Introduce DataPointerResolver , to codify the meaning of DataPointer and validate that enough information is present.
|
2022-02-27 11:25:02 -05:00 |
|
Thomas Harte
|
b8bff0e7f5
|
Double up eSP, eBP, eSI, eDI and AH, CH, DH, BH enums, as per Intel's encoding.
|
2022-02-24 05:16:15 -05:00 |
|
Thomas Harte
|
60bf1ef7ea
|
Rename SourceSIB to DataPointer, extend to allow for an absent base.
|
2022-02-23 08:28:20 -05:00 |
|
Thomas Harte
|
95976d8b58
|
Add missing #include.
|
2022-02-21 16:33:58 -05:00 |
|
Thomas Harte
|
ecb20cc29b
|
Improve tabbing.
|
2022-02-21 16:09:03 -05:00 |
|
Thomas Harte
|
b6183e86eb
|
Clarifies model tests by macro; adds the address size toggle.
|
2022-02-21 16:06:02 -05:00 |
|
Thomas Harte
|
229af0380c
|
This is normatively called the address size.
|
2022-02-21 15:52:16 -05:00 |
|
Thomas Harte
|
b968a662d3
|
Dump notes on intended Instruction layout, add memory size flag.
|
2022-02-21 15:48:58 -05:00 |
|
Thomas Harte
|
159e869fe6
|
Justifies the templatisation.
|
2022-02-21 15:33:08 -05:00 |
|
Thomas Harte
|
76814588b8
|
Template Instruction on its content size.
|
2022-02-21 12:36:03 -05:00 |
|
Thomas Harte
|
1934c7faa2
|
Switch Decoder into a template.
|
2022-02-21 12:21:57 -05:00 |
|
Thomas Harte
|
9e9e160c43
|
Eliminate Ind[BXPlusSI/etc] in favour of specifying everything via a ScaleIndexBase.
|
2022-02-21 11:45:46 -05:00 |
|