<ExcludeList Include="$(XunitTestBinBase)/JIT/HardwareIntrinsics/X86/Regression/GitHub_17957/GitHub_17957_ro/**">
<Issue>needs triage</Issue>
</ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_r8_i/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_r8_i4/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_r8_i8/**">
<Issue>needs triage</Issue>
</ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_r8_i/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_r8_i4/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_r8_i8/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Intrinsics/TypeIntrinsics_il/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/NaN/r4nanconv_il_r/**">
<Issue>https://github.com/dotnet/runtime/issues/34380</Issue>
</ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/NaN/r8nanconv_il_d/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/NaN/r8nanconv_il_r/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/refany/_il_dbgarray2/**">
<Issue>https://github.com/dotnet/runtime/issues/34378</Issue>
</ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/Dev11/Dev11_468598/Test_HndIndex_10_Reordered/**">
<Issue>needs triage</Issue>
</ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/JitBlue/DevDiv_487699/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
- <ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/JitBlue/DevDiv_544983/**">
- <Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
- </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/JitBlue/DevDiv_545500/**">
<Issue>https://github.com/dotnet/runtime/issues/34084</Issue>
</ExcludeList>
MONO_JIT_ICALL (__emul_fconv_to_i8) \
MONO_JIT_ICALL (__emul_fconv_to_ovf_i8) \
MONO_JIT_ICALL (__emul_fconv_to_ovf_u8) \
-MONO_JIT_ICALL (__emul_fconv_to_ovf_u8_un) \
MONO_JIT_ICALL (__emul_fconv_to_r4) \
MONO_JIT_ICALL (__emul_fconv_to_u) \
MONO_JIT_ICALL (__emul_fconv_to_u1) \
MONO_JIT_ICALL (__emul_rconv_to_i8) \
MONO_JIT_ICALL (__emul_rconv_to_ovf_i8) \
MONO_JIT_ICALL (__emul_rconv_to_ovf_u8) \
-MONO_JIT_ICALL (__emul_rconv_to_ovf_u8_un) \
MONO_JIT_ICALL (__emul_rconv_to_u4) \
MONO_JIT_ICALL (__emul_rconv_to_u8) \
MONO_JIT_ICALL (__emul_rrem) \
ins->opcode = OP_FMOVE;
break;
- case OP_FCONV_TO_OVF_I1_UN:
- case OP_FCONV_TO_OVF_I2_UN:
- case OP_FCONV_TO_OVF_I4_UN:
- case OP_FCONV_TO_OVF_I8_UN:
- case OP_FCONV_TO_OVF_U1_UN:
- case OP_FCONV_TO_OVF_U2_UN:
- case OP_FCONV_TO_OVF_U4_UN:
- case OP_FCONV_TO_OVF_I_UN:
- case OP_FCONV_TO_OVF_U_UN:
- mono_cfg_set_exception_invalid_program (cfg, g_strdup_printf ("float conv.ovf.un opcodes not supported."));
- break;
-
case OP_IDIV:
case OP_IREM:
case OP_IDIV_UN:
return res;
}
-guint64
-mono_fconv_ovf_u8_un (double v)
-{
- return mono_fconv_ovf_u8 (v);
-}
-
#ifdef MONO_ARCH_EMULATE_FCONV_TO_I8
gint64
mono_rconv_i8 (float v)
return res;
}
-guint64
-mono_rconv_ovf_u8_un (float v)
-{
- return mono_rconv_ovf_u8 (v);
-}
-
#ifdef MONO_ARCH_EMULATE_LCONV_TO_R8
double
mono_lconv_to_r8 (gint64 a)
ICALL_EXTERN_C guint64 mono_fconv_ovf_u8 (double v);
-ICALL_EXTERN_C guint64 mono_fconv_ovf_u8_un (double v);
-
ICALL_EXTERN_C gint64 mono_rconv_i8 (float v);
ICALL_EXTERN_C gint64 mono_rconv_ovf_i8 (float v);
ICALL_EXTERN_C guint64 mono_rconv_ovf_u8 (float v);
-ICALL_EXTERN_C guint64 mono_rconv_ovf_u8_un (float v);
-
ICALL_EXTERN_C double mono_lconv_to_r8 (gint64 a);
ICALL_EXTERN_C double mono_conv_to_r8 (gint32 a);
case STACK_I8:
ins->opcode = OP_LCONV_TO_R_UN;
break;
+ case STACK_R4:
+ ins->opcode = OP_RCONV_TO_R8;
+ break;
case STACK_R8:
ins->opcode = OP_FMOVE;
break;
case MONO_CEE_CONV_OVF_I1:
case MONO_CEE_CONV_OVF_I2:
case MONO_CEE_CONV_OVF_I:
- case MONO_CEE_CONV_OVF_U:
+ case MONO_CEE_CONV_OVF_I1_UN:
+ case MONO_CEE_CONV_OVF_I2_UN:
+ case MONO_CEE_CONV_OVF_I4_UN:
+ case MONO_CEE_CONV_OVF_I8_UN:
+ case MONO_CEE_CONV_OVF_I_UN:
if (sp [-1]->type == STACK_R8 || sp [-1]->type == STACK_R4) {
+ /* floats are always signed, _UN has no effect */
ADD_UNOP (CEE_CONV_OVF_I8);
ADD_UNOP (il_op);
} else {
case MONO_CEE_CONV_OVF_U1:
case MONO_CEE_CONV_OVF_U2:
case MONO_CEE_CONV_OVF_U4:
+ case MONO_CEE_CONV_OVF_U:
+ case MONO_CEE_CONV_OVF_U1_UN:
+ case MONO_CEE_CONV_OVF_U2_UN:
+ case MONO_CEE_CONV_OVF_U4_UN:
+ case MONO_CEE_CONV_OVF_U8_UN:
+ case MONO_CEE_CONV_OVF_U_UN:
if (sp [-1]->type == STACK_R8 || sp [-1]->type == STACK_R4) {
+ /* floats are always signed, _UN has no effect */
ADD_UNOP (CEE_CONV_OVF_U8);
ADD_UNOP (il_op);
} else {
ADD_UNOP (il_op);
}
break;
- case MONO_CEE_CONV_OVF_I1_UN:
- case MONO_CEE_CONV_OVF_I2_UN:
- case MONO_CEE_CONV_OVF_I4_UN:
- case MONO_CEE_CONV_OVF_I8_UN:
- case MONO_CEE_CONV_OVF_U1_UN:
- case MONO_CEE_CONV_OVF_U2_UN:
- case MONO_CEE_CONV_OVF_U4_UN:
- case MONO_CEE_CONV_OVF_U8_UN:
- case MONO_CEE_CONV_OVF_I_UN:
- case MONO_CEE_CONV_OVF_U_UN:
case MONO_CEE_CONV_U2:
case MONO_CEE_CONV_U1:
case MONO_CEE_CONV_I:
#endif
register_opcode_emulation (OP_FCONV_TO_OVF_I8, __emul_fconv_to_ovf_i8, mono_icall_sig_long_double, mono_fconv_ovf_i8, FALSE);
register_opcode_emulation (OP_FCONV_TO_OVF_U8, __emul_fconv_to_ovf_u8, mono_icall_sig_ulong_double, mono_fconv_ovf_u8, FALSE);
- register_opcode_emulation (OP_FCONV_TO_OVF_U8_UN, __emul_fconv_to_ovf_u8_un, mono_icall_sig_ulong_double, mono_fconv_ovf_u8_un, FALSE);
register_opcode_emulation (OP_RCONV_TO_OVF_I8, __emul_rconv_to_ovf_i8, mono_icall_sig_long_float, mono_rconv_ovf_i8, FALSE);
register_opcode_emulation (OP_RCONV_TO_OVF_U8, __emul_rconv_to_ovf_u8, mono_icall_sig_ulong_float, mono_rconv_ovf_u8, FALSE);
- register_opcode_emulation (OP_RCONV_TO_OVF_U8_UN, __emul_rconv_to_ovf_u8_un, mono_icall_sig_ulong_float, mono_rconv_ovf_u8_un, FALSE);
#ifdef MONO_ARCH_EMULATE_FCONV_TO_I8
register_opcode_emulation (OP_FCONV_TO_I8, __emul_fconv_to_i8, mono_icall_sig_long_double, mono_fconv_i8, FALSE);