All pastes #35304 Raw Edit

Unnamed

public text v1 · immutable
#35304 ·published 2005-12-30 19:19 UTC
rendered paste body
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;
	}
}