File tree Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Original file line number Diff line number Diff line change @@ -1264,6 +1264,8 @@ template <typename GcInfoEncoding> void GcSlotDecoder<GcInfoEncoding>::DecodeSlo
1264
1264
{
1265
1265
// We have untracked stack slots left and more room to predecode
1266
1266
1267
+ // Interpreter-TODO: Add a configurable way to skip encoding/decoding the base for the interpreter, because
1268
+ // all interpreter locals are at positive offsets relative to FP.
1267
1269
GcStackSlotBase spBase = (GcStackSlotBase) reader.Read (2 );
1268
1270
UINT32 normSpOffset = (INT32) reader.DecodeVarLengthSigned (GcInfoEncoding::STACK_SLOT_ENCBASE);
1269
1271
INT32 spOffset = GcInfoEncoding::DENORMALIZE_STACK_SLOT (normSpOffset);
@@ -2202,6 +2204,8 @@ template <> OBJECTREF* TGcInfoDecoder<InterpreterGcInfoEncoding>::GetStackSlot(
2202
2204
}
2203
2205
else
2204
2206
{
2207
+ // Interpreter-TODO: Enhance GcInfoEncoder/Decoder to allow omitting the stack slot base register for interpreted
2208
+ // methods, since only one base (fp) is ever used for interpreter locals. See Interpreter-TODO in DecodeSlotTable.
2205
2209
_ASSERTE ( GC_FRAMEREG_REL == spBase );
2206
2210
uint8_t * fp = (uint8_t *)GetFP (pRD->pCurrentContext );
2207
2211
_ASSERTE (fp);
You can’t perform that action at this time.
0 commit comments