Ryan Houdek
7a4d0fbfd3
Fixes bug in 64bit def mod instructions that are in 16bit mode
...
These would have been forced to 64bit when they would have wanted to be
operating in 16bit mode.
Fixes that.
2020-03-06 07:55:59 +02:00
Ryan Houdek
e1cecbcfe3
Changes to the new multiblock frontend decoder
...
Simple linear scan forward of instruction decoding isn't viable to do.
We need to break up the decoding at the block boundaries.
Otherwise our decoding gets in to the weeds and decodes trash.
2020-03-06 07:55:37 +02:00
Ryan Houdek
5db8de625a
Adds a few new instructions to the X86Tables
...
I managed to hit these when messing with Multiblock.
2020-03-06 07:55:37 +02:00
Ryan Houdek
fc8c6c80fb
Makes sure in Frontend we say that Entry and ConditionalJump fallthroughs are JumpTargets
2020-03-06 07:55:37 +02:00
Ryan Houdek
012805fd72
Fixes multiblock and a few bugs in RA.
...
This makes it so multiblock can now be enabled with the JITs.
Results in a decent performance increase by itself.
2020-03-06 07:55:35 +02:00
Ryan Houdek
7a43b3150b
Fixes bug in frontend displacement calculation
...
When an instruction had a literal and also a SIB displacement then this
was causing it to be calculated incorrectly.
2020-03-06 07:55:21 +02:00
Ryan Houdek
6d92146578
Flesh out X86Tables some more
...
Adds an EVEX table and throws some ops in to an unimplemented function.
This is necessary for multiblock in the future where it will see
unsupported instructions but not actually execute them.
2020-03-06 07:55:18 +02:00
Ryan Houdek
2975161e89
Cleanup the Frontend x86 decoder
...
Makes it easier to follow the source
2020-03-06 07:54:32 +02:00
Ryan Houdek
7252050e42
Initial commit
2020-03-06 07:48:39 +02:00