1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 06:07:44 +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:
Hediadyoin1 2021-09-02 14:04:15 +02:00 committed by Brian Gianforcaro
parent d91f194ddd
commit 3ad6d87a45
5 changed files with 617 additions and 0 deletions

View file

@ -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;