diff options
Diffstat (limited to 'src/jit/codegeninterface.h')
-rw-r--r-- | src/jit/codegeninterface.h | 85 |
1 files changed, 4 insertions, 81 deletions
diff --git a/src/jit/codegeninterface.h b/src/jit/codegeninterface.h index 371bb1ea23..e6948ad3ca 100644 --- a/src/jit/codegeninterface.h +++ b/src/jit/codegeninterface.h @@ -37,11 +37,8 @@ class emitter; struct RegState { regMaskTP rsCalleeRegArgMaskLiveIn; // mask of register arguments (live on entry to method) -#ifdef LEGACY_BACKEND - unsigned rsCurRegArgNum; // current argument number (for caller) -#endif - unsigned rsCalleeRegArgCount; // total number of incoming register arguments of this kind (int or float) - bool rsIsFloat; // true for float argument registers, false for integer argument registers + unsigned rsCalleeRegArgCount; // total number of incoming register arguments of this kind (int or float) + bool rsIsFloat; // true for float argument registers, false for integer argument registers }; //-------------------- CodeGenInterface --------------------------------- @@ -57,13 +54,11 @@ public: CodeGenInterface(Compiler* theCompiler); virtual void genGenerateCode(void** codePtr, ULONG* nativeSizeOfCode) = 0; -#ifndef LEGACY_BACKEND - // genSpillVar is called by compUpdateLifeVar in the RyuJIT backend case. + // genSpillVar is called by compUpdateLifeVar. // TODO-Cleanup: We should handle the spill directly in CodeGen, rather than // calling it from compUpdateLifeVar. Then this can be non-virtual. virtual void genSpillVar(GenTree* tree) = 0; -#endif // !LEGACY_BACKEND //------------------------------------------------------------------------- // The following property indicates whether to align loops. @@ -105,14 +100,6 @@ public: // in RegSet::rsUnspillOneReg, it needs to mark the new register as "trash" RegTracker regTracker; -public: -#ifdef LEGACY_BACKEND - void trashReg(regNumber reg) - { - regTracker.rsTrackRegTrash(reg); - } -#endif - protected: Compiler* compiler; bool m_genAlignLoops; @@ -128,9 +115,7 @@ public: // Liveness-related fields & methods public: void genUpdateRegLife(const LclVarDsc* varDsc, bool isBorn, bool isDying DEBUGARG(GenTree* tree)); -#ifndef LEGACY_BACKEND void genUpdateVarReg(LclVarDsc* varDsc, GenTree* tree); -#endif // !LEGACY_BACKEND protected: #ifdef DEBUG @@ -147,11 +132,6 @@ protected: void genUpdateLife(GenTree* tree); void genUpdateLife(VARSET_VALARG_TP newLife); -#ifdef LEGACY_BACKEND - regMaskTP genLiveMask(GenTree* tree); - regMaskTP genLiveMask(VARSET_VALARG_TP liveSet); -#endif - TreeLifeUpdater<true>* treeLifeUpdater; public: @@ -296,59 +276,11 @@ protected: #endif public: -#if FEATURE_STACK_FP_X87 - FlatFPStateX87 compCurFPState; - unsigned genFPregCnt; // count of current FP reg. vars (including dead but unpopped ones) - - void SetRegVarFloat(regNumber reg, var_types type, LclVarDsc* varDsc); - - void inst_FN(instruction ins, unsigned stk); - - // Keeps track of the current level of the FP coprocessor stack - // (excluding FP reg. vars). - // Do not use directly, instead use the processor agnostic accessor - // methods below - // - unsigned genFPstkLevel; - - void genResetFPstkLevel(unsigned newValue = 0); - unsigned genGetFPstkLevel(); - FlatFPStateX87* FlatFPAllocFPState(FlatFPStateX87* pInitFrom = 0); - - void genIncrementFPstkLevel(unsigned inc = 1); - void genDecrementFPstkLevel(unsigned dec = 1); - - static const char* regVarNameStackFP(regNumber reg); - - // FlatFPStateX87_ functions are the actual verbs to do stuff - // like doing a transition, loading register, etc. It's also - // responsible for emitting the x87 code to do so. We keep - // them in Compiler because we don't want to store a pointer to the - // emitter. - void FlatFPX87_MoveToTOS(FlatFPStateX87* pState, unsigned iVirtual, bool bEmitCode = true); - void FlatFPX87_SwapStack(FlatFPStateX87* pState, unsigned i, unsigned j, bool bEmitCode = true); - -#endif // FEATURE_STACK_FP_X87 - -#ifndef LEGACY_BACKEND - regNumber genGetAssignedReg(GenTree* tree); -#endif // !LEGACY_BACKEND - -#ifdef LEGACY_BACKEND - // Changes GT_LCL_VAR nodes to GT_REG_VAR nodes if possible. - bool genMarkLclVar(GenTree* tree); - - void genBashLclVar(GenTree* tree, unsigned varNum, LclVarDsc* varDsc); -#endif // LEGACY_BACKEND - -public: unsigned InferStructOpSizeAlign(GenTree* op, unsigned* alignmentWB); unsigned InferOpSizeAlign(GenTree* op, unsigned* alignmentWB); void genMarkTreeInReg(GenTree* tree, regNumber reg); -#if CPU_LONG_USES_REGPAIR - void genMarkTreeInRegPair(GenTree* tree, regPairNo regPair); -#endif + // Methods to abstract target information bool validImmForInstr(instruction ins, ssize_t val, insFlags flags = INS_FLAGS_DONT_CARE); @@ -367,10 +299,6 @@ public: void reloadReg(var_types type, TempDsc* tmp, regNumber reg); void reloadFloatReg(var_types type, TempDsc* tmp, regNumber reg); -#ifdef LEGACY_BACKEND - void SpillFloat(regNumber reg, bool bIsCall = false); -#endif // LEGACY_BACKEND - // The following method is used by xarch emitter for handling contained tree temps. TempDsc* getSpillTempDsc(GenTree* tree); @@ -401,11 +329,6 @@ public: verbose = value; } bool verbose; -#ifdef LEGACY_BACKEND - // Stress mode - int genStressFloat(); - regMaskTP genStressLockedMaskFloat(); -#endif // LEGACY_BACKEND #endif // DEBUG // The following is set to true if we've determined that the current method |