全部文本 #35304 原始 编辑

Unnamed

公开 text v1 · 不可变
·已发布 2005-12-30 19:19 UTC
渲染后的文本正文
static void CVMCoder_ReturnInsn(ILCoder *coder, ILEngineType engineType,
							    ILType *returnType)
{

	ILJITCoder *jitCoder = _ILCoderToILJITCoder(coder);
	
	switch(engineType)
	{
		case ILEngineType_Invalid:
		{
			jit_insn_return(jitCoder->function, 0);
		}
		break;

		case ILEngineType_M:
		case ILEngineType_O:
		case ILEngineType_T:
		case ILEngineType_I4:
	#ifdef IL_NATIVE_INT32
		case ILEngineType_I:
	#endif
		{
			jit_insn_return(jitCoder->function,
					jitCoder->jitStack[jitCoder->stackTop]);
			
			JITC_ADJUST(jitCoder, -1);
		}
		break;

		case ILEngineType_I8:
	#ifdef IL_NATIVE_INT64
		case ILEngineType_I:
	#endif
		{
			jit_insn_return(jitCoder->function,
					jitCoder->jitStack[jitCoder->stackTop]);
					
			JITC_ADJUST(jitCoder, -1);
		}
		break;

		case ILEngineType_F:
		{
			jit_insn_return(jitCoder->function,
					jitCoder->jitStack[jitCoder->stackTop]);

			JITC_ADJUST(jitCoder, -1);			
		}
		break;

		case ILEngineType_MV:
		{
			jit_insn_return(jitCoder->function,
					jitCoder->jitStack[jitCoder->stackTop]);

			JITC_ADJUST(jitCoder, -1);
		}
		break;

		case ILEngineType_TypedRef:
		{
			jit_insn_return_ptr(jitCoder->function,
				    	    jitCoder->jitStack[jitCoder->stackTop]);
					
			JITC_ADJUST(jitCoder, -1);
		}
		break;
	}
}