void jit_function::insn_start_finally(jit_label& label) { if(!jit_insn_start_finally(func, label.rawp())) { out_of_memory(); } }
/* * Handle a label. */ static void JITCoder_Label(ILCoder *coder, ILUInt32 offset) { ILJITCoder *jitCoder = _ILCoderToILJITCoder(coder); ILJITLabel *label = _ILJitLabelGet(jitCoder, offset, _IL_JIT_LABEL_NORMAL); if(label) { _ILJitValuesResetNullChecked(jitCoder); if(label->labelType == _IL_JIT_LABEL_STARTFINALLY) { #if !defined(IL_CONFIG_REDUCE_CODE) && !defined(IL_WITHOUT_TOOLS) if (jitCoder->flags & IL_CODER_FLAG_STATS) { ILMutexLock(globalTraceMutex); fprintf(stdout, "StartFinally: %i\n", offset); ILMutexUnlock(globalTraceMutex); } #endif jit_insn_start_finally(jitCoder->jitFunction, &(label->label)); } else { #if !defined(IL_CONFIG_REDUCE_CODE) && !defined(IL_WITHOUT_TOOLS) if (jitCoder->flags & IL_CODER_FLAG_STATS) { ILMutexLock(globalTraceMutex); fprintf(stdout, "Label: %i\n", offset); ILMutexUnlock(globalTraceMutex); } #endif _ILJitLabelRestoreStack(jitCoder, label); jit_insn_label(jitCoder->jitFunction, &(label->label)); } } }