summaryrefslogtreecommitdiff
path: root/src/jit/codegenlegacy.cpp
diff options
context:
space:
mode:
authorPat Gavlin <pgavlin@gmail.com>2017-07-25 21:04:23 -0700
committerGitHub <noreply@github.com>2017-07-25 21:04:23 -0700
commit644d7c5535380ef465f64f99f14cb4e2dd9873d6 (patch)
treec2ad82c431d2f4fe02343db00d4791d0bb32943c /src/jit/codegenlegacy.cpp
parentd7beeabe050c4f7971ee0104ac3d1bc251d3278d (diff)
parent1117a29450714d4752f79704c1ffb9e7c215af0f (diff)
downloadcoreclr-644d7c5535380ef465f64f99f14cb4e2dd9873d6.tar.gz
coreclr-644d7c5535380ef465f64f99f14cb4e2dd9873d6.tar.bz2
coreclr-644d7c5535380ef465f64f99f14cb4e2dd9873d6.zip
Merge pull request #13044 from pgavlin/VSO469600
Do not get the GC layout for small structs in legacy backend.
Diffstat (limited to 'src/jit/codegenlegacy.cpp')
-rw-r--r--src/jit/codegenlegacy.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/jit/codegenlegacy.cpp b/src/jit/codegenlegacy.cpp
index 21dbd3eb2c..b84c30b23b 100644
--- a/src/jit/codegenlegacy.cpp
+++ b/src/jit/codegenlegacy.cpp
@@ -17699,7 +17699,16 @@ void CodeGen::SetupLateArgs(GenTreeCall* call)
getEmitter()->emitIns_R_S(INS_lea, EA_PTRSIZE, regSrc, varNum, 0);
regTracker.rsTrackRegTrash(regSrc);
- gcLayout = compiler->lvaGetGcLayout(varNum);
+
+ if (varDsc->lvExactSize >= TARGET_POINTER_SIZE)
+ {
+ gcLayout = compiler->lvaGetGcLayout(varNum);
+ }
+ else
+ {
+ gcLayout = new (compiler, CMK_Codegen) BYTE[1];
+ gcLayout[0] = TYPE_GC_NONE;
+ }
}
}
else if (arg->gtOper == GT_MKREFANY)