/* * Handle a unary opcode. */ static void JITCoder_Unary(ILCoder *coder, int opcode, ILEngineType type) { ILJITCoder *jitCoder = _ILCoderToILJITCoder(coder); _ILJitStackItemNew(value); ILJitValue result = 0; _ILJitStackPop(jitCoder, value); switch(opcode) { case IL_OP_NEG: { result = jit_insn_neg(jitCoder->jitFunction, _ILJitStackItemValue(value)); } break; case IL_OP_NOT: { result = jit_insn_not(jitCoder->jitFunction, _ILJitStackItemValue(value)); } break; case IL_OP_CKFINITE: { /* Check the stack Top-most F value to see if it is finite */ result = jit_insn_is_finite(jitCoder->jitFunction, _ILJitStackItemValue(value)); } break; } _ILJitStackPushValue(jitCoder, result); }
jit_value jit_function::insn_is_finite(const jit_value& value1) { value_wrap(jit_insn_is_finite(func, value1.raw())); }