diff options
Diffstat (limited to 'src/jit/codegenlinear.h')
-rw-r--r-- | src/jit/codegenlinear.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/jit/codegenlinear.h b/src/jit/codegenlinear.h index 57eac7ced4..6a030eb926 100644 --- a/src/jit/codegenlinear.h +++ b/src/jit/codegenlinear.h @@ -103,6 +103,10 @@ void genConsumeBlockOp(GenTreeBlkOp* blkNode, regNumber dstReg, regNumber srcReg, regNumber sizeReg); +#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING + void genConsumePutArgStk(GenTreePutArgStk* putArgStkNode, regNumber dstReg, regNumber srcReg, regNumber sizeReg); +#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING + void genConsumeRegs(GenTree* tree); void genConsumeOperands(GenTreeOp* tree); @@ -126,6 +130,11 @@ void genCodeForCpBlkUnroll (GenTreeCpBlk* cpBlkNode); +#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING + void genCodeForPutArgRepMovs(GenTreePutArgStk* putArgStkNode); + void genCodeForPutArgUnroll(GenTreePutArgStk* putArgStkNode); +#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING + void genCodeForLoadOffset(instruction ins, emitAttr size, regNumber dst, GenTree* base, unsigned offset); void genCodeForStoreOffset(instruction ins, emitAttr size, regNumber dst, GenTree* base, unsigned offset); @@ -150,6 +159,18 @@ void genJmpMethod(GenTreePtr jmp); +#if defined(FEATURE_UNIX_AMD64_STRUCT_PASSING) + void genGetStructTypeSizeOffset(const SYSTEMV_AMD64_CORINFO_STRUCT_REG_PASSING_DESCRIPTOR& structDesc, + var_types* type0, + var_types* type1, + emitAttr* size0, + emitAttr* size1, + unsigned __int8* offset0, + unsigned __int8* offset1); + + bool genStoreRegisterReturnInLclVar(GenTreePtr treeNode); +#endif // defined(FEATURE_UNIX_AMD64_STRUCT_PASSING) + void genLclHeap(GenTreePtr tree); bool genIsRegCandidateLocal (GenTreePtr tree) |