Skip to content

Commit e79d7c1

Browse files
committed
[mono][jit] Remove OP_FCONV_TO_I/OP_RCONV_TO_I from the back ends, convert them to TO_I4/TO_I8 in the front end.
1 parent 04be7a9 commit e79d7c1

20 files changed

+14
-41
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,6 @@ float_conv_to_u4: dest:i src1:f len:49
267267
float_conv_to_u8: dest:i src1:f len:49
268268
float_conv_to_u2: dest:i src1:f len:49
269269
float_conv_to_u1: dest:i src1:f len:49
270-
float_conv_to_i: dest:i src1:f len:49
271270
float_conv_to_ovf_i: dest:a src1:f len:40
272271
float_conv_to_ovd_u: dest:a src1:f len:40
273272
float_mul_ovf:
@@ -293,7 +292,6 @@ r4_conv_to_u2: dest:i src1:f len:32
293292
r4_conv_to_i4: dest:i src1:f len:16
294293
r4_conv_to_u4: dest:i src1:f len:32
295294
r4_conv_to_i8: dest:i src1:f len:32
296-
r4_conv_to_i: dest:i src1:f len:32
297295
r4_conv_to_r8: dest:f src1:f len:17
298296
r4_conv_to_r4: dest:f src1:f len:17
299297
r4_add: dest:f src1:f src2:f clob:1 len:5

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,6 @@ float_conv_to_u4: dest:i src1:f len:88
211211
float_conv_to_u8: dest:l src1:f len:88
212212
float_conv_to_u2: dest:i src1:f len:88
213213
float_conv_to_u1: dest:i src1:f len:88
214-
float_conv_to_i: dest:i src1:f len:40
215214
float_ceq: dest:i src1:f src2:f len:16
216215
float_cgt: dest:i src1:f src2:f len:16
217216
float_cgt_un: dest:i src1:f src2:f len:20
@@ -226,7 +225,6 @@ rmove: dest:f src1:f len:4
226225
r4_conv_to_i1: dest:i src1:f len:88
227226
r4_conv_to_i2: dest:i src1:f len:88
228227
r4_conv_to_i4: dest:i src1:f len:88
229-
r4_conv_to_i: dest:i src1:f len:88
230228
r4_conv_to_u1: dest:i src1:f len:88
231229
r4_conv_to_u2: dest:i src1:f len:88
232230
r4_conv_to_u4: dest:i src1:f len:88

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,6 @@ float_conv_to_u4: dest:i src1:f len:40
209209
float_conv_to_u8: dest:l src1:f len:40
210210
float_conv_to_u2: dest:i src1:f len:40
211211
float_conv_to_u1: dest:i src1:f len:40
212-
float_conv_to_i: dest:i src1:f len:40
213212
float_ceq: dest:i src1:f src2:f len:16
214213
float_cgt: dest:i src1:f src2:f len:16
215214
float_cgt_un: dest:i src1:f src2:f len:20
@@ -228,7 +227,6 @@ r4_conv_to_u2: dest:i src1:f len:8
228227
r4_conv_to_i4: dest:i src1:f len:8
229228
r4_conv_to_u4: dest:i src1:f len:8
230229
r4_conv_to_i8: dest:l src1:f len:8
231-
r4_conv_to_i: dest:l src1:f len:8
232230
r4_conv_to_u8: dest:l src1:f len:8
233231
r4_conv_to_r4: dest:f src1:f len:4
234232
r4_conv_to_r8: dest:f src1:f len:4

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,6 @@ float_conv_to_u4: dest:i src1:f len:40
377377
float_conv_to_u8: dest:l src1:f len:40
378378
float_conv_to_u2: dest:i src1:f len:40
379379
float_conv_to_u1: dest:i src1:f len:40
380-
float_conv_to_i: dest:i src1:f len:40
381380
float_ceq: dest:i src1:f src2:f len:20
382381
float_cgt: dest:i src1:f src2:f len:20
383382
float_cgt_un: dest:i src1:f src2:f len:20

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ float_conv_to_u4: dest:i src1:f len:40
194194
float_conv_to_u8: dest:l src1:f len:40
195195
float_conv_to_u2: dest:i src1:f len:40
196196
float_conv_to_u1: dest:i src1:f len:40
197-
float_conv_to_i: dest:i src1:f len:40
198197
float_ceq: dest:i src1:f src2:f len:16
199198
float_cgt: dest:i src1:f src2:f len:16
200199
float_cgt_un: dest:i src1:f src2:f len:20

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,6 @@ float_conv_to_u4: dest:i src1:f len:40
198198
float_conv_to_u8: dest:i src1:f len:40
199199
float_conv_to_u2: dest:i src1:f len:40
200200
float_conv_to_u1: dest:i src1:f len:40
201-
float_conv_to_i: dest:i src1:f len:40
202201
float_ceq: dest:i src1:f src2:f len:16
203202
float_cgt: dest:i src1:f src2:f len:16
204203
float_cgt_un: dest:i src1:f src2:f len:20

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ float_conv_to_i1: dest:i src1:f len:50
122122
float_conv_to_i2: dest:i src1:f len:50
123123
float_conv_to_i4: dest:i src1:f len:50
124124
float_conv_to_i8: dest:l src1:f len:50
125-
float_conv_to_i: dest:i src1:f len:52
126125
float_conv_to_r4: dest:f src1:f len:8
127126
float_conv_to_u1: dest:i src1:f len:72
128127
float_conv_to_u2: dest:i src1:f len:72
@@ -143,7 +142,6 @@ r4_conv_to_u1: dest:i src1:f len:32
143142
r4_conv_to_i2: dest:i src1:f len:32
144143
r4_conv_to_u2: dest:i src1:f len:32
145144
r4_conv_to_i4: dest:i src1:f len:16
146-
r4_conv_to_i: dest:i src1:f len:16
147145
r4_conv_to_u4: dest:i src1:f len:32
148146
r4_conv_to_i8: dest:i src1:f len:32
149147
r4_conv_to_r8: dest:f src1:f len:17

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,6 @@ float_conv_to_u4: dest:i src1:f len:40
174174
float_conv_to_u8: dest:L src1:f len:40
175175
float_conv_to_u2: dest:i src1:f len:40
176176
float_conv_to_u1: dest:i src1:f len:40
177-
float_conv_to_i: dest:i src1:f len:40
178177
float_ceq: dest:i src1:f src2:f len:64
179178
float_cgt: dest:i src1:f src2:f len:64
180179
float_cgt_un: dest:i src1:f src2:f len:64

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@ float_conv_to_u4: dest:i src1:f len:39
254254
float_conv_to_u8: dest:L src1:f len:39
255255
float_conv_to_u2: dest:y src1:f len:39
256256
float_conv_to_u1: dest:y src1:f len:39
257-
float_conv_to_i: dest:i src1:f len:39
258257
float_conv_to_ovf_i: dest:a src1:f len:30
259258
float_conv_to_ovd_u: dest:a src1:f len:30
260259
float_mul_ovf:

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1182,6 +1182,17 @@ type_from_op (MonoCompile *cfg, MonoInst *ins, MonoInst *src1, MonoInst *src2)
11821182
case MONO_CEE_CONV_OVF_U:
11831183
ins->type = STACK_PTR;
11841184
ins->opcode += ovfops_op_map [src1->type];
1185+
1186+
switch (ins->opcode) {
1187+
case OP_FCONV_TO_I:
1188+
ins->opcode = TARGET_SIZEOF_VOID_P == 4 ? OP_FCONV_TO_I4 : OP_FCONV_TO_I8;
1189+
break;
1190+
case OP_RCONV_TO_I:
1191+
ins->opcode = TARGET_SIZEOF_VOID_P == 4 ? OP_RCONV_TO_I4 : OP_RCONV_TO_I8;
1192+
break;
1193+
default:
1194+
break;
1195+
}
11851196
break;
11861197
case MONO_CEE_ADD_OVF:
11871198
case MONO_CEE_ADD_OVF_UN:
@@ -8723,8 +8734,8 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
87238734
break;
87248735
case MONO_CEE_CONV_U2:
87258736
case MONO_CEE_CONV_U1:
8726-
case MONO_CEE_CONV_I:
87278737
case MONO_CEE_CONV_U:
8738+
case MONO_CEE_CONV_I:
87288739
ADD_UNOP (il_op);
87298740
CHECK_CFG_EXCEPTION;
87308741
break;

0 commit comments

Comments
 (0)