Files
FEX-Emu--FEX/External
Ryan Houdek 7e904056d3 OpcodeDispatcher: Fixes pextrb with high registers
Previously if the instruction was encoded to use rsp, rbp, rsi, or rdi
then due to how these were encoded in modrm this would hit the frontend
path for writing to the high 8 bits of a 16bit register.

This is because it's instruction specific if an 8-bit modrm instruction
chooses to use the high 8-bit region or the upper 4 registers.
See the ModRM.reg section of `ModRM.reg and .r/m Field Encodings`
specifically to see what each encoding stands for. Has four different
meanings per encoding depending on instruction.

This instruction doesn't actually write to registers at 8-bit size, it
extracts an element at 8-bit size and then zero extends it to the full
GPR.

When storing to memory it always stores to memory at the size of the
element extracted.

I grepped around the instruction tables to see if there were any other
instances of this mistake. This was the only one.

Fixes #1472 and also gets Psychonauts 2 running.
2022-05-24 16:23:22 -07:00
..
2021-12-06 18:27:11 -08:00
2022-05-23 10:58:50 -07:00
2022-01-13 14:48:35 -05:00
2022-03-01 03:55:16 -08:00
2020-03-06 09:08:13 +02:00
2022-02-26 00:43:43 -08:00
2020-11-29 00:30:28 -08:00
2020-03-06 09:08:13 +02:00
2022-02-24 13:46:56 -08:00
2021-11-13 01:36:09 -08:00
2021-07-05 17:39:19 -07:00