Skip to content

Commit 6bc9982

Browse files
committed
Merge in 'release/6.0' changes
2 parents 7d04aee + 2f324b3 commit 6bc9982

21 files changed

+10
-54
lines changed

src/mono/mono/mini/cpu-amd64.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@ float_cgt_membase: dest:i src1:f src2:b len:35
284284
float_cgt_un_membase: dest:i src1:f src2:b len:48
285285
float_clt_membase: dest:i src1:f src2:b len:35
286286
float_clt_un_membase: dest:i src1:f src2:b len:42
287-
float_conv_to_u: dest:i src1:f len:46
288287

289288
# R4 opcodes
290289
r4_conv_to_i1: dest:i src1:f len:32

src/mono/mono/mini/cpu-arm.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,6 @@ float_clt_un: dest:i src1:f src2:f len:20
220220
float_cneq: dest:y src1:f src2:f len:20
221221
float_cge: dest:y src1:f src2:f len:20
222222
float_cle: dest:y src1:f src2:f len:20
223-
float_conv_to_u: dest:i src1:f len:36
224223

225224
# R4 opcodes
226225
rmove: dest:f src1:f len:4

src/mono/mono/mini/cpu-arm64.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@ float_clt_un: dest:i src1:f src2:f len:20
218218
float_cneq: dest:i src1:f src2:f len:20
219219
float_cge: dest:i src1:f src2:f len:20
220220
float_cle: dest:i src1:f src2:f len:20
221-
float_conv_to_u: dest:i src1:f len:36
222221
setfret: src1:f len:12
223222

224223
# R4 opcodes

src/mono/mono/mini/cpu-mips.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,6 @@ float_cgt: dest:i src1:f src2:f len:20
383383
float_cgt_un: dest:i src1:f src2:f len:20
384384
float_clt: dest:i src1:f src2:f len:20
385385
float_clt_un: dest:i src1:f src2:f len:20
386-
float_conv_to_u: dest:i src1:f len:36
387386
call_handler: len:20 clob:c
388387
endfilter: src1:i len:16
389388
aotconst: dest:i len:8

src/mono/mono/mini/cpu-ppc.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ float_cgt: dest:i src1:f src2:f len:16
200200
float_cgt_un: dest:i src1:f src2:f len:20
201201
float_clt: dest:i src1:f src2:f len:16
202202
float_clt_un: dest:i src1:f src2:f len:20
203-
float_conv_to_u: dest:i src1:f len:36
204203
float_cneq: dest:i src1:f src2:f len:16
205204
float_cge: dest:i src1:f src2:f len:16
206205
float_cle: dest:i src1:f src2:f len:16

src/mono/mono/mini/cpu-ppc64.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,6 @@ float_cgt: dest:i src1:f src2:f len:16
204204
float_cgt_un: dest:i src1:f src2:f len:20
205205
float_clt: dest:i src1:f src2:f len:16
206206
float_clt_un: dest:i src1:f src2:f len:20
207-
float_conv_to_u: dest:i src1:f len:36
208207
float_cneq: dest:i src1:f src2:f len:16
209208
float_cge: dest:i src1:f src2:f len:16
210209
float_cle: dest:i src1:f src2:f len:16

src/mono/mono/mini/cpu-s390x.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,6 @@ float_conv_to_u1: dest:i src1:f len:72
128128
float_conv_to_u2: dest:i src1:f len:72
129129
float_conv_to_u4: dest:i src1:f len:72
130130
float_conv_to_u8: dest:i src1:f len:72
131-
float_conv_to_u: dest:i src1:f len:36
132131
float_div: dest:f src1:f src2:f len:24
133132
float_div_un: dest:f src1:f src2:f len:30
134133
float_mul: dest:f src1:f src2:f len:8

src/mono/mono/mini/cpu-sparc.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ float_cgt: dest:i src1:f src2:f len:64
180180
float_cgt_un: dest:i src1:f src2:f len:64
181181
float_clt: dest:i src1:f src2:f len:64
182182
float_clt_un: dest:i src1:f src2:f len:64
183-
float_conv_to_u: dest:i src1:f len:64
184183
call_handler: len:64 clob:c
185184
aotconst: dest:i len:64
186185
adc: dest:i src1:i src2:i len:4

src/mono/mono/mini/cpu-x86.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,6 @@ float_clt_un: dest:y src1:f src2:f len:32
266266
float_cneq: dest:y src1:f src2:f len:25
267267
float_cge: dest:y src1:f src2:f len:37
268268
float_cle: dest:y src1:f src2:f len:37
269-
float_conv_to_u: dest:i src1:f len:36
270269
call_handler: len:11 clob:c
271270
aotconst: dest:i len:5
272271
load_gotaddr: dest:i len:64

src/mono/mono/mini/interp/interp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4877,7 +4877,7 @@ MINT_IN_CASE(MINT_BRTRUE_I8_SP) ZEROP_SP(gint64, !=); MINT_IN_BREAK;
48774877
MINT_IN_BREAK;
48784878
MINT_IN_CASE(MINT_CONV_U4_R8)
48794879
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U4
4880-
LOCAL_VAR (ip [1], gint32) = mono_fconv_u4_2 (LOCAL_VAR (ip [2], double));
4880+
LOCAL_VAR (ip [1], gint32) = mono_fconv_u4 (LOCAL_VAR (ip [2], double));
48814881
#else
48824882
LOCAL_VAR (ip [1], gint32) = (guint32) LOCAL_VAR (ip [2], double);
48834883
#endif
@@ -4933,7 +4933,7 @@ MINT_IN_CASE(MINT_BRTRUE_I8_SP) ZEROP_SP(gint64, !=); MINT_IN_BREAK;
49334933
MINT_IN_BREAK;
49344934
MINT_IN_CASE(MINT_CONV_U8_R8)
49354935
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U8
4936-
LOCAL_VAR (ip [1], gint64) = mono_fconv_u8_2 (LOCAL_VAR (ip [2], double));
4936+
LOCAL_VAR (ip [1], gint64) = mono_fconv_u8 (LOCAL_VAR (ip [2], double));
49374937
#else
49384938
LOCAL_VAR (ip [1], gint64) = (guint64) LOCAL_VAR (ip [2], double);
49394939
#endif

src/mono/mono/mini/jit-icalls.c

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,7 @@ mono_ldtoken_wrapper_generic_shared (MonoImage *image, int token, MonoMethod *me
868868
return mono_ldtoken_wrapper (image, token, generic_context);
869869
}
870870

871+
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U8
871872
guint64
872873
mono_fconv_u8 (double v)
873874
{
@@ -885,18 +886,6 @@ mono_fconv_u8 (double v)
885886
#endif
886887
}
887888

888-
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U8
889-
guint64
890-
mono_fconv_u8_2 (double v)
891-
{
892-
// Separate from mono_fconv_u8 to avoid duplicate JIT icall.
893-
//
894-
// When there are duplicates, there is single instancing
895-
// against function address that breaks stuff. For example,
896-
// wrappers are only produced for one of them, breaking FullAOT.
897-
return mono_fconv_u8 (v);
898-
}
899-
900889
guint64
901890
mono_rconv_u8 (float v)
902891
{
@@ -923,6 +912,7 @@ mono_fconv_i8 (double v)
923912
}
924913
#endif
925914

915+
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U4
926916
guint32
927917
mono_fconv_u4 (double v)
928918
{
@@ -932,18 +922,6 @@ mono_fconv_u4 (double v)
932922
return (guint32)v;
933923
}
934924

935-
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U4
936-
guint32
937-
mono_fconv_u4_2 (double v)
938-
{
939-
// Separate from mono_fconv_u4 to avoid duplicate JIT icall.
940-
//
941-
// When there are duplicates, there is single instancing
942-
// against function address that breaks stuff. For example,
943-
// wrappers are only produced for one of them, breaking FullAOT.
944-
return mono_fconv_u4 (v);
945-
}
946-
947925
guint32
948926
mono_rconv_u4 (float v)
949927
{

src/mono/mono/mini/jit-icalls.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,12 @@ ICALL_EXPORT gpointer mono_ldtoken_wrapper (MonoImage *image, int token, MonoGen
7373
ICALL_EXPORT gpointer mono_ldtoken_wrapper_generic_shared (MonoImage *image, int token, MonoMethod *method);
7474

7575
ICALL_EXPORT guint64 mono_fconv_u8 (double v);
76-
ICALL_EXPORT guint64 mono_fconv_u8_2 (double v);
7776

7877
ICALL_EXPORT guint64 mono_rconv_u8 (float v);
7978

8079
ICALL_EXPORT gint64 mono_fconv_i8 (double v);
8180

8281
ICALL_EXPORT guint32 mono_fconv_u4 (double v);
83-
ICALL_EXPORT guint32 mono_fconv_u4_2 (double v);
8482

8583
ICALL_EXPORT guint32 mono_rconv_u4 (float v);
8684

src/mono/mono/mini/method-to-ir.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,10 @@ type_from_op (MonoCompile *cfg, MonoInst *ins, MonoInst *src1, MonoInst *src2)
11491149
ins->opcode = OP_LCONV_TO_U;
11501150
break;
11511151
case STACK_R8:
1152-
ins->opcode = OP_FCONV_TO_U;
1152+
if (TARGET_SIZEOF_VOID_P == 8)
1153+
ins->opcode = OP_FCONV_TO_U8;
1154+
else
1155+
ins->opcode = OP_FCONV_TO_U4;
11531156
break;
11541157
case STACK_R4:
11551158
if (TARGET_SIZEOF_VOID_P == 8)

src/mono/mono/mini/mini-arm.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5685,7 +5685,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
56855685
code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, TRUE);
56865686
break;
56875687
case OP_FCONV_TO_U4:
5688-
case OP_FCONV_TO_U:
56895688
code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, FALSE);
56905689
break;
56915690
case OP_FCONV_TO_I8:

src/mono/mono/mini/mini-llvm.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,6 @@ op_to_llvm_type (int opcode)
975975
case OP_RCONV_TO_U8:
976976
return LLVMInt64Type ();
977977
case OP_FCONV_TO_I:
978-
case OP_FCONV_TO_U:
979978
return TARGET_SIZEOF_VOID_P == 8 ? LLVMInt64Type () : LLVMInt32Type ();
980979
case OP_IADD_OVF:
981980
case OP_IADD_OVF_UN:

src/mono/mono/mini/mini-mips.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4270,7 +4270,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
42704270
code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, TRUE);
42714271
break;
42724272
case OP_FCONV_TO_U4:
4273-
case OP_FCONV_TO_U:
42744273
code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, FALSE);
42754274
break;
42764275
case OP_SQRT:

src/mono/mono/mini/mini-ops.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,6 @@ MINI_OP(OP_FCGT_UN_MEMBASE,"float_cgt_un_membase", IREG, FREG, IREG)
583583
MINI_OP(OP_FCLT_MEMBASE, "float_clt_membase", IREG, FREG, IREG)
584584
MINI_OP(OP_FCLT_UN_MEMBASE,"float_clt_un_membase", IREG, FREG, IREG)
585585

586-
MINI_OP(OP_FCONV_TO_U, "float_conv_to_u", IREG, FREG, NONE)
587586
MINI_OP(OP_CKFINITE, "ckfinite", FREG, FREG, NONE)
588587

589588
/* r4 opcodes: must be in the same order as the matching CEE_ opcodes: ovfops_op_map */

src/mono/mono/mini/mini-ppc.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4163,7 +4163,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
41634163
code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, TRUE);
41644164
break;
41654165
case OP_FCONV_TO_U4:
4166-
case OP_FCONV_TO_U:
41674166
code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, FALSE);
41684167
break;
41694168
case OP_LCONV_TO_R_UN:

src/mono/mono/mini/mini-runtime.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4747,11 +4747,11 @@ register_icalls (void)
47474747
#endif
47484748

47494749
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U8
4750-
register_opcode_emulation (OP_FCONV_TO_U8, __emul_fconv_to_u8, mono_icall_sig_ulong_double, mono_fconv_u8_2, FALSE);
4750+
register_opcode_emulation (OP_FCONV_TO_U8, __emul_fconv_to_u8, mono_icall_sig_ulong_double, mono_fconv_u8, FALSE);
47514751
register_opcode_emulation (OP_RCONV_TO_U8, __emul_rconv_to_u8, mono_icall_sig_ulong_float, mono_rconv_u8, FALSE);
47524752
#endif
47534753
#ifdef MONO_ARCH_EMULATE_FCONV_TO_U4
4754-
register_opcode_emulation (OP_FCONV_TO_U4, __emul_fconv_to_u4, mono_icall_sig_uint32_double, mono_fconv_u4_2, FALSE);
4754+
register_opcode_emulation (OP_FCONV_TO_U4, __emul_fconv_to_u4, mono_icall_sig_uint32_double, mono_fconv_u4, FALSE);
47554755
register_opcode_emulation (OP_RCONV_TO_U4, __emul_rconv_to_u4, mono_icall_sig_uint32_float, mono_rconv_u4, FALSE);
47564756
#endif
47574757
register_opcode_emulation (OP_FCONV_TO_OVF_I8, __emul_fconv_to_ovf_i8, mono_icall_sig_long_double, mono_fconv_ovf_i8, FALSE);
@@ -4829,13 +4829,6 @@ register_icalls (void)
48294829
register_icall (mono_class_interface_match, mono_icall_sig_uint32_ptr_int32, TRUE);
48304830
#endif
48314831

4832-
// FIXME Elsewhere these are registered with no_wrapper = FALSE
4833-
#if SIZEOF_REGISTER == 4
4834-
register_opcode_emulation (OP_FCONV_TO_U, __emul_fconv_to_u, mono_icall_sig_uint32_double, mono_fconv_u4, TRUE);
4835-
#else
4836-
register_opcode_emulation (OP_FCONV_TO_U, __emul_fconv_to_u, mono_icall_sig_ulong_double, mono_fconv_u8, TRUE);
4837-
#endif
4838-
48394832
/* other jit icalls */
48404833
register_icall (ves_icall_mono_delegate_ctor, mono_icall_sig_void_object_object_ptr, FALSE);
48414834
register_icall (ves_icall_mono_delegate_ctor_interp, mono_icall_sig_void_object_object_ptr, FALSE);

src/mono/mono/mini/mini-s390x.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4286,7 +4286,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
42864286
s390_cfdbr (code, ins->dreg, 5, ins->sreg1);
42874287
break;
42884288
case OP_FCONV_TO_U4:
4289-
case OP_FCONV_TO_U:
42904289
if (mono_hwcap_s390x_has_fpe) {
42914290
s390_clgdbr (code, ins->dreg, 5, ins->sreg1, 0);
42924291
} else {

src/mono/mono/mini/mini-sparc.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3395,7 +3395,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
33953395
case OP_FCONV_TO_U2:
33963396
#ifndef SPARCV9
33973397
case OP_FCONV_TO_I:
3398-
case OP_FCONV_TO_U:
33993398
#endif
34003399
case OP_FCONV_TO_I4:
34013400
case OP_FCONV_TO_U4: {

0 commit comments

Comments
 (0)