mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 07:37:46 +00:00
LibX86: Support decoding F2 SSE instructions
Previously the F2 table was generated, but not used by the instruction decoder.
This commit is contained in:
parent
a0d8990c82
commit
5557f05bb5
1 changed files with 4 additions and 1 deletions
|
@ -296,6 +296,7 @@ extern InstructionDescriptor s_table[3][256];
|
||||||
extern InstructionDescriptor s_0f_table[3][256];
|
extern InstructionDescriptor s_0f_table[3][256];
|
||||||
extern InstructionDescriptor s_sse_table_np[256];
|
extern InstructionDescriptor s_sse_table_np[256];
|
||||||
extern InstructionDescriptor s_sse_table_66[256];
|
extern InstructionDescriptor s_sse_table_66[256];
|
||||||
|
extern InstructionDescriptor s_sse_table_f2[256];
|
||||||
extern InstructionDescriptor s_sse_table_f3[256];
|
extern InstructionDescriptor s_sse_table_f3[256];
|
||||||
|
|
||||||
struct Prefix {
|
struct Prefix {
|
||||||
|
@ -1066,7 +1067,9 @@ ALWAYS_INLINE Instruction::Instruction(InstructionStreamType& stream, ProcessorM
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_descriptor->format == __SSE) {
|
if (m_descriptor->format == __SSE) {
|
||||||
if (m_rep_prefix == 0xF3) {
|
if (m_rep_prefix == 0xF2) {
|
||||||
|
m_descriptor = &s_sse_table_f2[m_sub_op];
|
||||||
|
} else if (m_rep_prefix == 0xF3) {
|
||||||
m_descriptor = &s_sse_table_f3[m_sub_op];
|
m_descriptor = &s_sse_table_f3[m_sub_op];
|
||||||
} else if (m_has_operand_size_override_prefix) {
|
} else if (m_has_operand_size_override_prefix) {
|
||||||
// This was unset while parsing the prefix initially
|
// This was unset while parsing the prefix initially
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue