summaryrefslogtreecommitdiff
path: root/src/jit/lower.h
diff options
context:
space:
mode:
authorGleb Balykov <g.balykov@samsung.com>2018-06-29 17:25:17 +0300
committer이형주/Tizen Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com>2018-07-06 09:23:22 +0900
commit1f6ace8289c0b3c62d5ae21deb315470a51dafa3 (patch)
treee96ae03e68438ed59d7662d15781ded44f55703d /src/jit/lower.h
parentb192de29e9035467716c59187d774f2105c89521 (diff)
downloadcoreclr-1f6ace8289c0b3c62d5ae21deb315470a51dafa3.tar.gz
coreclr-1f6ace8289c0b3c62d5ae21deb315470a51dafa3.tar.bz2
coreclr-1f6ace8289c0b3c62d5ae21deb315470a51dafa3.zip
Remove relocations for vtable chunks (#17147)
* Separate sections READONLY_VCHUNKS and READONLY_DICTIONARY * Remove relocations for second-level indirection of Vtable in case FEATURE_NGEN_RELOCS_OPTIMIZATIONS is enabled. Introduce FEATURE_NGEN_RELOCS_OPTIMIZATIONS, under which NGEN specific relocations optimizations are enabled * Replace push/pop of R11 in stubs with - str/ldr of R4 in space reserved in epilog for non-tail calls - usage of R4 with hybrid-tail calls (same as for EmitShuffleThunk) * Replace push/pop of R11 for function epilog with usage of LR as helper register right before its restore from stack
Diffstat (limited to 'src/jit/lower.h')
-rw-r--r--src/jit/lower.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/jit/lower.h b/src/jit/lower.h
index 0d298e0a52..63319961be 100644
--- a/src/jit/lower.h
+++ b/src/jit/lower.h
@@ -208,6 +208,12 @@ private:
return new (comp, GT_LEA) GenTreeAddrMode(resultType, base, index, 0, 0);
}
+ GenTree* OffsetByIndexWithScale(GenTree* base, GenTree* index, unsigned scale)
+ {
+ var_types resultType = (base->TypeGet() == TYP_REF) ? TYP_BYREF : base->TypeGet();
+ return new (comp, GT_LEA) GenTreeAddrMode(resultType, base, index, scale, 0);
+ }
+
// Replace the definition of the given use with a lclVar, allocating a new temp
// if 'tempNum' is BAD_VAR_NUM.
unsigned ReplaceWithLclVar(LIR::Use& use, unsigned tempNum = BAD_VAR_NUM)