diff options
Diffstat (limited to 'src/jit/codegenlinear.h')
-rw-r--r-- | src/jit/codegenlinear.h | 63 |
1 files changed, 19 insertions, 44 deletions
diff --git a/src/jit/codegenlinear.h b/src/jit/codegenlinear.h index 715e87a944..3bd0eacf0d 100644 --- a/src/jit/codegenlinear.h +++ b/src/jit/codegenlinear.h @@ -11,9 +11,7 @@ #ifndef LEGACY_BACKEND // Not necessary (it's this way in the #include location), but helpful to IntelliSense void genSetRegToConst(regNumber targetReg, var_types targetType, GenTreePtr tree); - void genCodeForTreeNode(GenTreePtr treeNode); - void genCodeForBinary(GenTreePtr treeNode); #if defined(_TARGET_X86_) @@ -21,11 +19,8 @@ void genCodeForLongUMod(GenTreeOp* node); #endif // _TARGET_X86_ void genCodeForDivMod(GenTreeOp* treeNode); - void genCodeForMulHi(GenTreeOp* treeNode); - void genLeaInstruction(GenTreeAddrMode* lea); - void genSetRegToCond(regNumber dstReg, GenTreePtr tree); #if !defined(_TARGET_64BIT_) @@ -33,26 +28,24 @@ void genLongToIntCast(GenTreePtr treeNode); #endif void genIntToIntCast(GenTreePtr treeNode); - void genFloatToFloatCast(GenTreePtr treeNode); - void genFloatToIntCast(GenTreePtr treeNode); - void genIntToFloatCast(GenTreePtr treeNode); - void genCkfinite(GenTreePtr treeNode); - +void genCodeForCompare(GenTreeOp* tree); void genIntrinsic(GenTreePtr treeNode); - void genPutArgStk(GenTreePutArgStk* treeNode); +void genPutArgReg(GenTreeOp* tree); + +#if defined(_TARGET_XARCH_) unsigned getBaseVarForPutArgStk(GenTreePtr treeNode); +#endif // _TARGET_XARCH_ #if defined(_TARGET_XARCH_) || defined(_TARGET_ARM64_) unsigned getFirstArgWithStackSlot(); #endif // _TARGET_XARCH_ || _TARGET_ARM64_ void genCompareFloat(GenTreePtr treeNode); - void genCompareInt(GenTreePtr treeNode); #if !defined(_TARGET_64BIT_) @@ -87,7 +80,6 @@ void genSIMDIntrinsicGetItem(GenTreeSIMD* simdNode); void genSIMDIntrinsicShuffleSSE2(GenTreeSIMD* simdNode); void genSIMDIntrinsicUpperSave(GenTreeSIMD* simdNode); void genSIMDIntrinsicUpperRestore(GenTreeSIMD* simdNode); - void genSIMDIntrinsic(GenTreeSIMD* simdNode); void genSIMDCheck(GenTree* treeNode); @@ -115,11 +107,8 @@ void genStoreLongLclVar(GenTree* treeNode); #endif // !defined(_TARGET_64BIT_) void genProduceReg(GenTree* tree); - void genUnspillRegIfNeeded(GenTree* tree); - regNumber genConsumeReg(GenTree* tree); - void genCopyRegIfNeeded(GenTree* tree, regNumber needReg); void genConsumeRegAndCopy(GenTree* tree, regNumber needReg); @@ -132,13 +121,9 @@ void genConsumeIfReg(GenTreePtr tree) } void genRegCopy(GenTreePtr tree); - void genTransferRegGCState(regNumber dst, regNumber src); - void genConsumeAddress(GenTree* addr); - void genConsumeAddrMode(GenTreeAddrMode* mode); - void genSetBlockSize(GenTreeBlk* blkNode, regNumber sizeReg); void genConsumeBlockSrc(GenTreeBlk* blkNode); void genSetBlockSrc(GenTreeBlk* blkNode, regNumber srcReg); @@ -149,13 +134,9 @@ void genConsumePutStructArgStk(GenTreePutArgStk* putArgStkNode, regNumber dstReg #endif // FEATURE_PUT_STRUCT_ARG_STK void genConsumeRegs(GenTree* tree); - void genConsumeOperands(GenTreeOp* tree); - void genEmitGSCookieCheck(bool pushReg); - void genSetRegToIcon(regNumber reg, ssize_t val, var_types type = TYP_INT, insFlags flags = INS_FLAGS_DONT_CARE); - void genCodeForShift(GenTreePtr tree); #if defined(_TARGET_X86_) || defined(_TARGET_ARM_) @@ -166,13 +147,24 @@ void genCodeForShiftLong(GenTreePtr tree); void genCodeForShiftRMW(GenTreeStoreInd* storeInd); #endif // _TARGET_XARCH_ +void genCodeForCast(GenTreeOp* tree); +void genCodeForLclAddr(GenTree* tree); +void genCodeForIndir(GenTreeIndir* tree); +void genCodeForNegNot(GenTree* tree); +void genCodeForLclVar(GenTreeLclVar* tree); +void genCodeForLclFld(GenTreeLclFld* tree); +void genCodeForStoreLclFld(GenTreeLclFld* tree); +void genCodeForStoreLclVar(GenTreeLclVar* tree); +void genCodeForReturnTrap(GenTreeOp* tree); +void genCodeForJcc(GenTreeJumpCC* tree); +void genCodeForStoreInd(GenTreeStoreInd* tree); +void genCodeForSwap(GenTreeOp* tree); void genCodeForCpObj(GenTreeObj* cpObjNode); - void genCodeForCpBlk(GenTreeBlk* cpBlkNode); - void genCodeForCpBlkRepMovs(GenTreeBlk* cpBlkNode); - void genCodeForCpBlkUnroll(GenTreeBlk* cpBlkNode); +void genCodeForPhysReg(GenTreePhysReg* tree); +void genCodeForNullCheck(GenTreeOp* tree); void genAlignStackBeforeCall(GenTreePutArgStk* putArgStk); void genAlignStackBeforeCall(GenTreeCall* call); @@ -231,43 +223,27 @@ void genStoreRegToStackArg(var_types type, regNumber reg, int offset); #endif // FEATURE_PUT_STRUCT_ARG_STK void genCodeForLoadOffset(instruction ins, emitAttr size, regNumber dst, GenTree* base, unsigned offset); - void genCodeForStoreOffset(instruction ins, emitAttr size, regNumber src, GenTree* base, unsigned offset); #ifdef _TARGET_ARM64_ void genCodeForLoadPairOffset(regNumber dst, regNumber dst2, GenTree* base, unsigned offset); - void genCodeForStorePairOffset(regNumber src, regNumber src2, GenTree* base, unsigned offset); #endif // _TARGET_ARM64_ void genCodeForStoreBlk(GenTreeBlk* storeBlkNode); - void genCodeForInitBlk(GenTreeBlk* initBlkNode); - void genCodeForInitBlkRepStos(GenTreeBlk* initBlkNode); - void genCodeForInitBlkUnroll(GenTreeBlk* initBlkNode); - void genJumpTable(GenTree* tree); - void genTableBasedSwitch(GenTree* tree); - void genCodeForArrIndex(GenTreeArrIndex* treeNode); - void genCodeForArrOffset(GenTreeArrOffs* treeNode); - instruction genGetInsForOper(genTreeOps oper, var_types type); - void genStoreInd(GenTreePtr node); - bool genEmitOptimizedGCWriteBarrier(GCInfo::WriteBarrierForm writeBarrierForm, GenTree* addr, GenTree* data); - void genCallInstruction(GenTreeCall* call); - void genJmpMethod(GenTreePtr jmp); - BasicBlock* genCallFinally(BasicBlock* block); - void genCodeForJumpTrue(GenTreePtr tree); #if FEATURE_EH_FUNCLETS @@ -282,7 +258,6 @@ void genMultiRegCallStoreToLocal(GenTreePtr treeNode); bool isStructReturn(GenTreePtr treeNode); void genStructReturn(GenTreePtr treeNode); -// Codegen for GT_RETURN. void genReturn(GenTreePtr treeNode); void genLclHeap(GenTreePtr tree); |