File tree Expand file tree Collapse file tree 2 files changed +4
-7
lines changed Expand file tree Collapse file tree 2 files changed +4
-7
lines changed Original file line number Diff line number Diff line change @@ -59,7 +59,7 @@ inline UINT32 CeilOfLog2(size_t x)
59
59
return (UINT32 )result ;
60
60
#else // _MSC_VER
61
61
// LZCNT returns index starting from MSB, whereas BSR gives the index from LSB.
62
- // 63 ^ BSR here is equivalent to 63 - BSR since the BSR result is always between 0 and 63.
62
+ // 63 ^ LZCNT here is equivalent to 63 - LZCNT since the LZCNT result is always between 0 and 63.
63
63
// This saves an instruction, as subtraction from constant requires either MOV/SUB or NEG/ADD.
64
64
return (UINT32 )63 ^ (UINT32 )__builtin_clzl ((unsigned long )x );
65
65
#endif // _MSC_VER
Original file line number Diff line number Diff line change @@ -350,6 +350,7 @@ GcInfoDecoder::GcInfoDecoder(
350
350
351
351
#ifdef PARTIALLY_INTERRUPTIBLE_GC_SUPPORTED
352
352
m_NumSafePoints = (UINT32) DENORMALIZE_NUM_SAFE_POINTS (m_Reader.DecodeVarLengthUnsigned (NUM_SAFE_POINTS_ENCBASE));
353
+ m_SafePointIndex = m_NumSafePoints;
353
354
#endif
354
355
355
356
if (slimHeader)
@@ -362,18 +363,14 @@ GcInfoDecoder::GcInfoDecoder(
362
363
}
363
364
364
365
#ifdef PARTIALLY_INTERRUPTIBLE_GC_SUPPORTED
365
- if (flags & (DECODE_INTERRUPTIBILITY | DECODE_GC_LIFETIMES))
366
+ if (flags & (DECODE_GC_LIFETIMES))
366
367
{
367
368
if (m_NumSafePoints)
368
369
{
369
370
m_SafePointIndex = FindSafePoint (m_InstructionOffset);
370
371
}
371
- else
372
- {
373
- m_SafePointIndex = 0 ;
374
- }
375
372
}
376
- else if (flags & DECODE_FOR_RANGES_CALLBACK)
373
+ else if (flags & ( DECODE_FOR_RANGES_CALLBACK | DECODE_INTERRUPTIBILITY) )
377
374
{
378
375
// Note that normalization as a code offset can be different than
379
376
// normalization as code length
You can’t perform that action at this time.
0 commit comments