Skip to content

Commit

Permalink
Add x87 instructions intended for use with pre-encoded registers.
Browse files Browse the repository at this point in the history
Laying groundwork for removal of x87. See #946

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
  • Loading branch information
BradleyWood committed Jun 9, 2021
1 parent b173e31 commit 059eeca
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
3 changes: 3 additions & 0 deletions compiler/x/codegen/OMRInstOpCode.enum
Original file line number Diff line number Diff line change
Expand Up @@ -303,13 +303,15 @@
FISTPMem,
DISTPMem,
FLSTPMem,
FLSTTPMem,
DLSTPMem,
FSSTMemReg,
DSSTMemReg,
FSSTPMem,
DSSTPMem,
FLDLN2,
FLDRegReg,
FLDDUP,
DLDRegReg,
FLDRegMem,
DLDRegMem,
Expand Down Expand Up @@ -339,6 +341,7 @@
FSTPMemReg,
DSTPMemReg,
FSTPReg,
FSTPST0,
DSTPReg,
STCWMem,
STSWMem,
Expand Down
3 changes: 3 additions & 0 deletions compiler/x/codegen/OMRInstOpCode.enum.temp.defines
Original file line number Diff line number Diff line change
Expand Up @@ -296,13 +296,15 @@
#define FISTPMem OMR::InstOpCode::FISTPMem
#define DISTPMem OMR::InstOpCode::DISTPMem
#define FLSTPMem OMR::InstOpCode::FLSTPMem
#define FLSTTPMem OMR::InstOpCode::FLSTTPMem
#define DLSTPMem OMR::InstOpCode::DLSTPMem
#define FSSTMemReg OMR::InstOpCode::FSSTMemReg
#define DSSTMemReg OMR::InstOpCode::DSSTMemReg
#define FSSTPMem OMR::InstOpCode::FSSTPMem
#define DSSTPMem OMR::InstOpCode::DSSTPMem
#define FLDLN2 OMR::InstOpCode::FLDLN2
#define FLDRegReg OMR::InstOpCode::FLDRegReg
#define FLDDUP OMR::InstOpCode::FLDDUP
#define DLDRegReg OMR::InstOpCode::DLDRegReg
#define FLDRegMem OMR::InstOpCode::FLDRegMem
#define DLDRegMem OMR::InstOpCode::DLDRegMem
Expand Down Expand Up @@ -332,6 +334,7 @@
#define FSTPMemReg OMR::InstOpCode::FSTPMemReg
#define DSTPMemReg OMR::InstOpCode::DSTPMemReg
#define FSTPReg OMR::InstOpCode::FSTPReg
#define FSTPST0 OMR::InstOpCode::FSTPST0
#define DSTPReg OMR::InstOpCode::DSTPReg
#define STCWMem OMR::InstOpCode::STCWMem
#define STSWMem OMR::InstOpCode::STSWMem
Expand Down
12 changes: 12 additions & 0 deletions compiler/x/codegen/X86Ops.ins
Original file line number Diff line number Diff line change
Expand Up @@ -1155,6 +1155,10 @@ INSTRUCTION(FLSTPMem, flstp,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x38)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP),
PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(FLSTTPMem, flsttp,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0x08)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP),
PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(DLSTPMem, flstp,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x38)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_DoubleFP),
Expand Down Expand Up @@ -1183,6 +1187,10 @@ INSTRUCTION(FLDRegReg, fld,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xc0)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FLDDUP, fld,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xc0)),
PROPERTY0(IA32OpProp_ModifiesTarget),
PROPERTY1(IA32OpProp1_TargetRegIsImplicit | IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DLDRegReg, fld,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xc0)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
Expand Down Expand Up @@ -1299,6 +1307,10 @@ INSTRUCTION(FSTPReg, fstp,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0xd8)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP),
PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FSTPST0, fstp,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0xd8)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP),
PROPERTY1(IA32OpProp1_TargetRegIsImplicit | IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DSTPReg, fstp,
BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0xd8)),
PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_DoubleFP),
Expand Down

0 comments on commit 059eeca

Please sign in to comment.