mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:37:36 +00:00
LibX86: Add SSE support
This only adds the decodeing support for SSE, not SSE2, etc. may contain traces of SSE2.
This commit is contained in:
parent
d91f194ddd
commit
3ad6d87a45
5 changed files with 617 additions and 0 deletions
|
@ -2891,6 +2891,85 @@ FPU_INSTRUCTION(MOVD_rm32_mm2);
|
|||
FPU_INSTRUCTION(MOVQ_rm64_mm2); // long mode
|
||||
FPU_INSTRUCTION(EMMS);
|
||||
|
||||
void SoftCPU::PREFETCHTNTA(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PREFETCHT0(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PREFETCHT1(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PREFETCHT2(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::LDMXCSR(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::STMXCSR(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVUPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVUPS_xmm1m128_xmm2(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVSS_xmm1m32_xmm2(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVLPS_xmm1_xmm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVLPS_m64_xmm2(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::UNPCKLPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::UNPCKHPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVHPS_xmm1_xmm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVHPS_m64_xmm2(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVAPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVAPS_xmm1m128_xmm2(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CVTTPS2PI_mm1_xmm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CVTTPS2PI_r32_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CVTPI2PS_xmm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CVTSI2SS_xmm1_rm32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVNTPS_xmm1m128_xmm2(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CVTPS2PI_xmm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CVTSS2SI_xmm1_rm32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::UCOMISS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::COMISS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVMSKPS_reg_xmm(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::SQRTPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::SQRTSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::RSQRTPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::RSQRTSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::RCPPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::RCPSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::ANDPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::ANDNPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::ORPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::XORPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::ADDPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::ADDSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MULPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MULSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::SUBPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::SUBSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MINPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MINSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::DIVPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::DIVSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MAXPS_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MAXSS_xmm1_xmm2m32(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PSHUFW_mm1_mm2m64_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CMPPS_xmm1_xmm2m128_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::CMPSS_xmm1_xmm2m32_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PINSRW_mm1_r32m16_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PINSRW_xmm1_r32m16_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PEXTRW_reg_mm1_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PEXTRW_reg_xmm1_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::SHUFPS_xmm1_xmm2m128_imm8(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMOVMSKB_reg_mm1(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMOVMSKB_reg_xmm1(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMINUB_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMINUB_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMAXUB_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMAXUB_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PAVGB_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PAVGB_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PAVGW_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PAVGW_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMULHUW_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMULHUW_xmm1_xmm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MOVNTQ_m64_mm1(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMINSB_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMINSB_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMAXSB_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PMAXSB_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PSADBB_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::PSADBB_xmm1_xmm2m128(X86::Instruction const&) { TODO_INSN(); };
|
||||
void SoftCPU::MASKMOVQ_mm1_mm2m64(X86::Instruction const&) { TODO_INSN(); };
|
||||
|
||||
void SoftCPU::wrap_0xC0(const X86::Instruction&) { TODO_INSN(); }
|
||||
void SoftCPU::wrap_0xC1_16(const X86::Instruction&) { TODO_INSN(); }
|
||||
void SoftCPU::wrap_0xC1_32(const X86::Instruction&) { TODO_INSN(); }
|
||||
|
|
|
@ -1111,6 +1111,86 @@ private:
|
|||
virtual void MOVD_rm32_mm2(const X86::Instruction&) override;
|
||||
virtual void MOVQ_rm64_mm2(const X86::Instruction&) override; // long mode
|
||||
virtual void EMMS(const X86::Instruction&) override;
|
||||
|
||||
virtual void PREFETCHTNTA(X86::Instruction const&) override;
|
||||
virtual void PREFETCHT0(X86::Instruction const&) override;
|
||||
virtual void PREFETCHT1(X86::Instruction const&) override;
|
||||
virtual void PREFETCHT2(X86::Instruction const&) override;
|
||||
virtual void LDMXCSR(X86::Instruction const&) override;
|
||||
virtual void STMXCSR(X86::Instruction const&) override;
|
||||
virtual void MOVUPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void MOVSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void MOVUPS_xmm1m128_xmm2(X86::Instruction const&) override;
|
||||
virtual void MOVSS_xmm1m32_xmm2(X86::Instruction const&) override;
|
||||
virtual void MOVLPS_xmm1_xmm2m64(X86::Instruction const&) override;
|
||||
virtual void MOVLPS_m64_xmm2(X86::Instruction const&) override;
|
||||
virtual void UNPCKLPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void UNPCKHPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void MOVHPS_xmm1_xmm2m64(X86::Instruction const&) override;
|
||||
virtual void MOVHPS_m64_xmm2(X86::Instruction const&) override;
|
||||
virtual void MOVAPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void MOVAPS_xmm1m128_xmm2(X86::Instruction const&) override;
|
||||
virtual void CVTPI2PS_xmm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void CVTSI2SS_xmm1_rm32(X86::Instruction const&) override;
|
||||
virtual void MOVNTPS_xmm1m128_xmm2(X86::Instruction const&) override;
|
||||
virtual void CVTTPS2PI_mm1_xmm2m64(X86::Instruction const&) override;
|
||||
virtual void CVTTPS2PI_r32_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void CVTPS2PI_xmm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void CVTSS2SI_xmm1_rm32(X86::Instruction const&) override;
|
||||
virtual void UCOMISS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void COMISS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void MOVMSKPS_reg_xmm(X86::Instruction const&) override;
|
||||
virtual void SQRTPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void SQRTSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void RSQRTPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void RSQRTSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void RCPPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void RCPSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void ANDPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void ANDNPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void ORPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void XORPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void ADDPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void ADDSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void MULPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void MULSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void SUBPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void SUBSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void MINPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void MINSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void DIVPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void DIVSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void MAXPS_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void MAXSS_xmm1_xmm2m32(X86::Instruction const&) override;
|
||||
virtual void PSHUFW_mm1_mm2m64_imm8(X86::Instruction const&) override;
|
||||
virtual void CMPPS_xmm1_xmm2m128_imm8(X86::Instruction const&) override;
|
||||
virtual void CMPSS_xmm1_xmm2m32_imm8(X86::Instruction const&) override;
|
||||
virtual void PINSRW_mm1_r32m16_imm8(X86::Instruction const&) override;
|
||||
virtual void PINSRW_xmm1_r32m16_imm8(X86::Instruction const&) override;
|
||||
virtual void PEXTRW_reg_mm1_imm8(X86::Instruction const&) override;
|
||||
virtual void PEXTRW_reg_xmm1_imm8(X86::Instruction const&) override;
|
||||
virtual void SHUFPS_xmm1_xmm2m128_imm8(X86::Instruction const&) override;
|
||||
virtual void PMOVMSKB_reg_mm1(X86::Instruction const&) override;
|
||||
virtual void PMOVMSKB_reg_xmm1(X86::Instruction const&) override;
|
||||
virtual void PMINUB_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PMINUB_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void PMAXUB_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PMAXUB_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void PAVGB_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PAVGB_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void PAVGW_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PAVGW_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void PMULHUW_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PMULHUW_xmm1_xmm2m64(X86::Instruction const&) override;
|
||||
virtual void MOVNTQ_m64_mm1(X86::Instruction const&) override;
|
||||
virtual void PMINSB_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PMINSB_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void PMAXSB_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PMAXSB_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void PSADBB_mm1_mm2m64(X86::Instruction const&) override;
|
||||
virtual void PSADBB_xmm1_xmm2m128(X86::Instruction const&) override;
|
||||
virtual void MASKMOVQ_mm1_mm2m64(X86::Instruction const&) override;
|
||||
|
||||
virtual void wrap_0xC0(const X86::Instruction&) override;
|
||||
virtual void wrap_0xC1_16(const X86::Instruction&) override;
|
||||
virtual void wrap_0xC1_32(const X86::Instruction&) override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue