Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 65cb774

Browse files
committed
Merge pull request #1896 from LLITCHEV/Issue1831-for-rc1
Fix putarg_stk for tail call functions.
2 parents 15b8bdd + 7a4bdfb commit 65cb774

File tree

3 files changed

+312
-217
lines changed

3 files changed

+312
-217
lines changed

src/jit/codegenlinear.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
void genMathIntrinsic(GenTreePtr treeNode);
4141

4242
void genPutArgStk(GenTreePtr treeNode);
43+
unsigned getBaseVarForPutArgStk(GenTreePtr treeNode);
4344

4445
#ifdef FEATURE_SIMD
4546
instruction getOpForSIMDIntrinsic(SIMDIntrinsicID intrinsicId, var_types baseType, unsigned *ival = nullptr);
@@ -104,7 +105,7 @@
104105
void genConsumeBlockOp(GenTreeBlkOp* blkNode, regNumber dstReg, regNumber srcReg, regNumber sizeReg);
105106

106107
#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
107-
void genConsumePutArgStk(GenTreePutArgStk* putArgStkNode, regNumber dstReg, regNumber srcReg, regNumber sizeReg);
108+
void genConsumePutStructArgStk(GenTreePutArgStk* putArgStkNode, regNumber dstReg, regNumber srcReg, regNumber sizeReg, unsigned baseVarNum);
108109
#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING
109110

110111
void genConsumeRegs(GenTree* tree);
@@ -131,8 +132,11 @@
131132
void genCodeForCpBlkUnroll (GenTreeCpBlk* cpBlkNode);
132133

133134
#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
134-
void genCodeForPutArgRepMovs(GenTreePutArgStk* putArgStkNode);
135-
void genCodeForPutArgUnroll(GenTreePutArgStk* putArgStkNode);
135+
void genPutStructArgStk(GenTreePtr treeNode
136+
FEATURE_UNIX_AMD64_STRUCT_PASSING_ONLY_ARG(unsigned baseVarNum));
137+
138+
void genStructPutArgRepMovs(GenTreePutArgStk* putArgStkNode, unsigned baseVarNum);
139+
void genStructPutArgUnroll(GenTreePutArgStk* putArgStkNode, unsigned baseVarNum);
136140
#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING
137141

138142
void genCodeForLoadOffset(instruction ins, emitAttr size, regNumber dst, GenTree* base, unsigned offset);

0 commit comments

Comments
 (0)