mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:17:45 +00:00
LibX86: Disassemble most remaining FPU instructions
Some of the remaining instructions have different behavior for register and non-register ops. Since we already have the two-level flags tables, model this by setting all handlers in the two-level table to the register op handler, while the first-level flags table stores the action for the non-reg handler.
This commit is contained in:
parent
06c59cce6f
commit
8593bdb711
5 changed files with 350 additions and 9 deletions
|
@ -618,6 +618,36 @@ private:
|
|||
virtual void FSCALE(const X86::Instruction&) override;
|
||||
virtual void FSIN(const X86::Instruction&) override;
|
||||
virtual void FCOS(const X86::Instruction&) override;
|
||||
virtual void FIADD_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVB(const X86::Instruction&) override;
|
||||
virtual void FIMUL_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVE(const X86::Instruction&) override;
|
||||
virtual void FICOM_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVBE(const X86::Instruction&) override;
|
||||
virtual void FICOMP_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVU(const X86::Instruction&) override;
|
||||
virtual void FISUB_RM32(const X86::Instruction&) override;
|
||||
virtual void FISUBR_RM32(const X86::Instruction&) override;
|
||||
virtual void FUCOMPP(const X86::Instruction&) override;
|
||||
virtual void FIDIV_RM32(const X86::Instruction&) override;
|
||||
virtual void FIDIVR_RM32(const X86::Instruction&) override;
|
||||
virtual void FILD_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVNB(const X86::Instruction&) override;
|
||||
virtual void FISTTP_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVNE(const X86::Instruction&) override;
|
||||
virtual void FIST_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVNBE(const X86::Instruction&) override;
|
||||
virtual void FISTP_RM32(const X86::Instruction&) override;
|
||||
virtual void FCMOVNU(const X86::Instruction&) override;
|
||||
virtual void FNENI(const X86::Instruction&) override;
|
||||
virtual void FNDISI(const X86::Instruction&) override;
|
||||
virtual void FNCLEX(const X86::Instruction&) override;
|
||||
virtual void FNINIT(const X86::Instruction&) override;
|
||||
virtual void FNSETPM(const X86::Instruction&) override;
|
||||
virtual void FLD_RM80(const X86::Instruction&) override;
|
||||
virtual void FUCOMI(const X86::Instruction&) override;
|
||||
virtual void FCOMI(const X86::Instruction&) override;
|
||||
virtual void FSTP_RM80(const X86::Instruction&) override;
|
||||
virtual void FADD_RM64(const X86::Instruction&) override;
|
||||
virtual void FMUL_RM64(const X86::Instruction&) override;
|
||||
virtual void FCOM_RM64(const X86::Instruction&) override;
|
||||
|
@ -626,6 +656,43 @@ private:
|
|||
virtual void FSUBR_RM64(const X86::Instruction&) override;
|
||||
virtual void FDIV_RM64(const X86::Instruction&) override;
|
||||
virtual void FDIVR_RM64(const X86::Instruction&) override;
|
||||
virtual void FLD_RM64(const X86::Instruction&) override;
|
||||
virtual void FFREE(const X86::Instruction&) override;
|
||||
virtual void FISTTP_RM64(const X86::Instruction&) override;
|
||||
virtual void FST_RM64(const X86::Instruction&) override;
|
||||
virtual void FSTP_RM64(const X86::Instruction&) override;
|
||||
virtual void FRSTOR(const X86::Instruction&) override;
|
||||
virtual void FUCOM(const X86::Instruction&) override;
|
||||
virtual void FUCOMP(const X86::Instruction&) override;
|
||||
virtual void FNSAVE(const X86::Instruction&) override;
|
||||
virtual void FNSTSW(const X86::Instruction&) override;
|
||||
virtual void FIADD_RM16(const X86::Instruction&) override;
|
||||
virtual void FADDP(const X86::Instruction&) override;
|
||||
virtual void FIMUL_RM16(const X86::Instruction&) override;
|
||||
virtual void FMULP(const X86::Instruction&) override;
|
||||
virtual void FICOM_RM16(const X86::Instruction&) override;
|
||||
virtual void FICOMP_RM16(const X86::Instruction&) override;
|
||||
virtual void FCOMPP(const X86::Instruction&) override;
|
||||
virtual void FISUB_RM16(const X86::Instruction&) override;
|
||||
virtual void FSUBRP(const X86::Instruction&) override;
|
||||
virtual void FISUBR_RM16(const X86::Instruction&) override;
|
||||
virtual void FSUBP(const X86::Instruction&) override;
|
||||
virtual void FIDIV_RM16(const X86::Instruction&) override;
|
||||
virtual void FDIVRP(const X86::Instruction&) override;
|
||||
virtual void FIDIVR_RM16(const X86::Instruction&) override;
|
||||
virtual void FDIVP(const X86::Instruction&) override;
|
||||
virtual void FILD_RM16(const X86::Instruction&) override;
|
||||
virtual void FFREEP(const X86::Instruction&) override;
|
||||
virtual void FISTTP_RM16(const X86::Instruction&) override;
|
||||
virtual void FIST_RM16(const X86::Instruction&) override;
|
||||
virtual void FISTP_RM16(const X86::Instruction&) override;
|
||||
virtual void FBLD_M80(const X86::Instruction&) override;
|
||||
virtual void FNSTSW_AX(const X86::Instruction&) override;
|
||||
virtual void FILD_RM64(const X86::Instruction&) override;
|
||||
virtual void FUCOMIP(const X86::Instruction&) override;
|
||||
virtual void FBSTP_M80(const X86::Instruction&) override;
|
||||
virtual void FCOMIP(const X86::Instruction&) override;
|
||||
virtual void FISTP_RM64(const X86::Instruction&) override;
|
||||
virtual void HLT(const X86::Instruction&) override;
|
||||
virtual void IDIV_RM16(const X86::Instruction&) override;
|
||||
virtual void IDIV_RM32(const X86::Instruction&) override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue