Add missing check in the JIT to generate correct code for direct call ReadyToRun helpers. I have run into this bug while experimenting with ReadyToRun optimizations. It is not observable bug today because of crossgen happens to always emit ReadyToRun helpers as indirect calls.
#if defined(_TARGET_AMD64_) && defined(FEATURE_READYTORUN_COMPILER)
else if (call->gtEntryPoint.addr != nullptr)
{
- genEmitCall(emitter::EC_FUNC_TOKEN_INDIR,
+ genEmitCall((call->gtEntryPoint.accessType == IAT_VALUE) ? emitter::EC_FUNC_TOKEN : emitter::EC_FUNC_TOKEN_INDIR,
methHnd,
INDEBUG_LDISASM_COMMA(sigInfo)
(void*) call->gtEntryPoint.addr,