Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 0 additions & 24 deletions src/coreclr/tests/issues.targets
Original file line number Diff line number Diff line change
Expand Up @@ -1232,24 +1232,12 @@
<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>
Expand Down Expand Up @@ -1430,12 +1418,6 @@
<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>
Expand Down Expand Up @@ -1496,12 +1478,6 @@
<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>
Expand Down
2 changes: 0 additions & 2 deletions src/mono/mono/metadata/jit-icall-reg.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ MONO_JIT_ICALL (__emul_fconv_to_i4) \
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) \
Expand Down Expand Up @@ -115,7 +114,6 @@ MONO_JIT_ICALL (__emul_op_irem_un) \
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) \
Expand Down
12 changes: 0 additions & 12 deletions src/mono/mono/mini/decompose.c
Original file line number Diff line number Diff line change
Expand Up @@ -430,18 +430,6 @@ mono_decompose_opcode (MonoCompile *cfg, MonoInst *ins)
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:
Expand Down
12 changes: 0 additions & 12 deletions src/mono/mono/mini/jit-icalls.c
Original file line number Diff line number Diff line change
Expand Up @@ -983,12 +983,6 @@ mono_fconv_ovf_u8 (double v)
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)
Expand Down Expand Up @@ -1026,12 +1020,6 @@ mono_rconv_ovf_u8 (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)
Expand Down
4 changes: 0 additions & 4 deletions src/mono/mono/mini/jit-icalls.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,16 +86,12 @@ ICALL_EXTERN_C gint64 mono_fconv_ovf_i8 (double v);

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);
Expand Down
27 changes: 16 additions & 11 deletions src/mono/mono/mini/method-to-ir.c
Original file line number Diff line number Diff line change
Expand Up @@ -1101,6 +1101,9 @@ type_from_op (MonoCompile *cfg, MonoInst *ins, MonoInst *src1, MonoInst *src2)
case STACK_I8:
ins->opcode = OP_LCONV_TO_R_UN;
break;
case STACK_R4:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should also fix #34382 (I arrived here just now while looking into this). My only feedback here is that it'd be nice to have a g_assert_not_reached () default case.

ins->opcode = OP_RCONV_TO_R8;
break;
case STACK_R8:
ins->opcode = OP_FMOVE;
break;
Expand Down Expand Up @@ -8430,8 +8433,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
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 {
Expand All @@ -8441,23 +8449,20 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
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:
Expand Down
2 changes: 0 additions & 2 deletions src/mono/mono/mini/mini-runtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -4711,10 +4711,8 @@ register_icalls (void)
#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);
Expand Down