diff options
author | Pat Gavlin <pgavlin@gmail.com> | 2017-07-25 21:04:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-25 21:04:23 -0700 |
commit | 644d7c5535380ef465f64f99f14cb4e2dd9873d6 (patch) | |
tree | c2ad82c431d2f4fe02343db00d4791d0bb32943c /src/jit/codegenlegacy.cpp | |
parent | d7beeabe050c4f7971ee0104ac3d1bc251d3278d (diff) | |
parent | 1117a29450714d4752f79704c1ffb9e7c215af0f (diff) | |
download | coreclr-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.cpp | 11 |
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) |