@@ -22,6 +22,10 @@ open Arch
22
22
23
23
let arch_bits = Arch. size_int * 8
24
24
25
+ let size_addr = size_addr
26
+
27
+ let size_float = size_float
28
+
25
29
type arity =
26
30
{ function_kind : Lambda .function_kind ;
27
31
params_layout : Lambda .layout list ;
@@ -1123,12 +1127,6 @@ let log2_size_addr = Misc.log2 size_addr
1123
1127
1124
1128
let log2_size_float = Misc. log2 size_float
1125
1129
1126
- let wordsize_shift = 9
1127
-
1128
- let numfloat_shift = 9 + log2_size_float - log2_size_addr
1129
-
1130
- let addr_array_length_shifted hdr dbg = lsr_const hdr wordsize_shift dbg
1131
-
1132
1130
(* Produces a pointer to the element of the array [ptr] on the position [ofs]
1133
1131
with the given element [log2size] log2 element size.
1134
1132
@@ -1261,7 +1259,7 @@ let unboxed_packed_array_length arr dbg ~custom_ops_base_symbol
1261
1259
dbg)
1262
1260
(Cvar custom_ops_index_var) dbg ) ) ))
1263
1261
in
1264
- tag_int res dbg
1262
+ res
1265
1263
1266
1264
let unboxed_int32_array_length =
1267
1265
unboxed_packed_array_length
@@ -1278,15 +1276,15 @@ let unboxed_int64_or_nativeint_array_length arr dbg =
1278
1276
(* need to subtract so as not to count the custom_operations field *)
1279
1277
sub_int (get_size arr dbg) (int ~dbg 1 ) dbg)
1280
1278
in
1281
- tag_int res dbg
1279
+ res
1282
1280
1283
1281
let unboxed_vec128_array_length arr dbg =
1284
1282
let res =
1285
1283
bind " arr" arr (fun arr ->
1286
1284
(* need to subtract so as not to count the custom_operations field *)
1287
1285
sub_int (get_size arr dbg) (int ~dbg 1 ) dbg)
1288
1286
in
1289
- tag_int ( lsr_int res (int ~dbg 1 ) dbg ) dbg
1287
+ lsr_int res (int ~dbg 1 ) dbg
1290
1288
1291
1289
let addr_array_ref arr ofs dbg =
1292
1290
Cop (mk_load_mut Word_val , [array_indexing log2_size_addr arr ofs dbg], dbg)
@@ -3407,9 +3405,7 @@ let raise_prim raise_kind arg dbg =
3407
3405
3408
3406
let negint arg dbg = Cop (Csubi , [Cconst_int (2 , dbg); arg], dbg)
3409
3407
3410
- let addr_array_length arg dbg =
3411
- let hdr = get_header_masked arg dbg in
3412
- Cop (Cor , [addr_array_length_shifted hdr dbg; Cconst_int (1 , dbg)], dbg)
3408
+ let addr_array_length arg dbg = get_size arg dbg
3413
3409
3414
3410
(* CR-soon gyorsh: effects and coeffects for primitives are set conservatively
3415
3411
to Arbitrary_effects and Has_coeffects, resp. Check if this can be improved
0 commit comments