Skip to content

Commit 62e8cdd

Browse files
committed
Compiler: missing special primitive handling
1 parent 7a40390 commit 62e8cdd

File tree

2 files changed

+38
-31
lines changed

2 files changed

+38
-31
lines changed

compiler/lib/generate.ml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,10 @@ module Share = struct
191191
; "caml_list_of_js_array"
192192
; "caml_maybe_attach_backtrace"
193193
; "jsoo_effect_not_supported"
194+
; "caml_int64_create_lo_mi_hi"
195+
; "caml_stack_check_depth"
196+
; "caml_call_gen"
197+
; "caml_call_gen_cps"
194198
]
195199
~init:count
196200
~f:(fun acc x -> add_special_prim_if_exists x acc)

compiler/tests-full/stdlib.cma.expected.js

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,7 @@
360360
caml_atomic_load = runtime.caml_atomic_load,
361361
caml_create_bytes = runtime.caml_create_bytes,
362362
caml_float_of_string = runtime.caml_float_of_string,
363+
caml_int64_create_lo_mi_hi = runtime.caml_int64_create_lo_mi_hi,
363364
caml_int64_float_of_bits = runtime.caml_int64_float_of_bits,
364365
caml_int_of_string = runtime.caml_int_of_string,
365366
caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace,
@@ -435,22 +436,22 @@
435436
var
436437
infinity =
437438
/*<<stdlib.ml:180:2>>*/ caml_int64_float_of_bits
438-
(runtime.caml_int64_create_lo_mi_hi(0, 0, 32752)),
439+
(caml_int64_create_lo_mi_hi(0, 0, 32752)),
439440
neg_infinity =
440441
/*<<stdlib.ml:182:2>>*/ caml_int64_float_of_bits
441-
(runtime.caml_int64_create_lo_mi_hi(0, 0, 65520)),
442+
(caml_int64_create_lo_mi_hi(0, 0, 65520)),
442443
nan =
443444
/*<<stdlib.ml:184:2>>*/ caml_int64_float_of_bits
444-
(runtime.caml_int64_create_lo_mi_hi(1, 0, 32760)),
445+
(caml_int64_create_lo_mi_hi(1, 0, 32760)),
445446
max_float =
446447
/*<<stdlib.ml:186:2>>*/ caml_int64_float_of_bits
447-
(runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32751)),
448+
(caml_int64_create_lo_mi_hi(16777215, 16777215, 32751)),
448449
min_float =
449450
/*<<stdlib.ml:188:2>>*/ caml_int64_float_of_bits
450-
(runtime.caml_int64_create_lo_mi_hi(0, 0, 16)),
451+
(caml_int64_create_lo_mi_hi(0, 0, 16)),
451452
epsilon_float =
452453
/*<<stdlib.ml:190:2>>*/ caml_int64_float_of_bits
453-
(runtime.caml_int64_create_lo_mi_hi(0, 0, 15536)),
454+
(caml_int64_create_lo_mi_hi(0, 0, 15536)),
454455
symbol_concat = /*<<stdlib.ml:190:42>>*/ caml_string_concat,
455456
cst_char_of_int = "char_of_int",
456457
cst_true = cst_true$0,
@@ -8065,6 +8066,7 @@
80658066
caml_floatarray_make = runtime.caml_floatarray_make,
80668067
caml_floatarray_sub = runtime.caml_floatarray_sub,
80678068
caml_hash = runtime.caml_hash,
8069+
caml_int64_create_lo_mi_hi = runtime.caml_int64_create_lo_mi_hi,
80688070
caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace,
80698071
caml_nextafter_float = runtime.caml_nextafter_float,
80708072
caml_signbit_float = runtime.caml_signbit_float,
@@ -8095,7 +8097,7 @@
80958097
nan = Stdlib[24],
80968098
signaling_nan =
80978099
/*<<float.ml:38:20>>*/ runtime.caml_int64_float_of_bits
8098-
(runtime.caml_int64_create_lo_mi_hi(1, 0, 32752));
8100+
(caml_int64_create_lo_mi_hi(1, 0, 32752));
80998101
function is_finite(x){
81008102
/*<<float.ml:39:33>>*/ return x - x === 0. ? 1 : 0;
81018103
/*<<float.ml:39:38>>*/ }
@@ -9298,23 +9300,24 @@
92989300
caml_hash = runtime.caml_hash,
92999301
caml_int64_add = runtime.caml_int64_add,
93009302
caml_int64_compare = runtime.caml_int64_compare,
9303+
caml_int64_create_lo_mi_hi = runtime.caml_int64_create_lo_mi_hi,
93019304
caml_int64_mul = runtime.caml_int64_mul,
93029305
caml_int64_sub = runtime.caml_int64_sub,
93039306
caml_lessequal = runtime.caml_lessequal,
93049307
caml_lessthan = runtime.caml_lessthan,
93059308
caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace,
93069309
caml_wrap_exception = runtime.caml_wrap_exception,
93079310
global_data = runtime.caml_get_global_data(),
9308-
_a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0),
9309-
zero = runtime.caml_int64_create_lo_mi_hi(0, 0, 0),
9310-
one = runtime.caml_int64_create_lo_mi_hi(1, 0, 0),
9311-
minus_one = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535),
9312-
min_int = runtime.caml_int64_create_lo_mi_hi(0, 0, 32768),
9313-
max_int = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32767),
9311+
_a_ = caml_int64_create_lo_mi_hi(1, 0, 0),
9312+
zero = caml_int64_create_lo_mi_hi(0, 0, 0),
9313+
one = caml_int64_create_lo_mi_hi(1, 0, 0),
9314+
minus_one = caml_int64_create_lo_mi_hi(16777215, 16777215, 65535),
9315+
min_int = caml_int64_create_lo_mi_hi(0, 0, 32768),
9316+
max_int = caml_int64_create_lo_mi_hi(16777215, 16777215, 32767),
93149317
Stdlib = global_data.Stdlib,
9315-
_b_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0),
9316-
_c_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0),
9317-
_d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535);
9318+
_b_ = caml_int64_create_lo_mi_hi(1, 0, 0),
9319+
_c_ = caml_int64_create_lo_mi_hi(0, 0, 0),
9320+
_d_ = caml_int64_create_lo_mi_hi(16777215, 16777215, 65535);
93189321
function succ(n){
93199322
/*<<int64.ml:46:13>>*/ return caml_int64_add(n, _a_) /*<<int64.ml:46:21>>*/ ;
93209323
}
@@ -9332,7 +9335,7 @@
93329335
var
93339336
max_int$0 =
93349337
/*<<int64.ml:54:16>>*/ runtime.caml_int64_of_int32(Stdlib[19]),
9335-
_e_ = /*<<int64.ml:55:2>>*/ runtime.caml_int64_create_lo_mi_hi(0, 0, 0);
9338+
_e_ = /*<<int64.ml:55:2>>*/ caml_int64_create_lo_mi_hi(0, 0, 0);
93369339
function unsigned_to_int(n){
93379340
/*<<int64.ml:56:7>>*/ if
93389341
(caml_greaterequal(n, _e_)
@@ -24306,6 +24309,7 @@
2430624309
caml_create_bytes = runtime.caml_create_bytes,
2430724310
caml_greaterthan = runtime.caml_greaterthan,
2430824311
caml_int64_add = runtime.caml_int64_add,
24312+
caml_int64_create_lo_mi_hi = runtime.caml_int64_create_lo_mi_hi,
2430924313
caml_int64_of_int32 = runtime.caml_int64_of_int32,
2431024314
caml_int64_shift_right_unsigne = runtime.caml_int64_shift_right_unsigned,
2431124315
caml_int64_sub = runtime.caml_int64_sub,
@@ -24349,11 +24353,11 @@
2434924353
Stdlib_String = global_data.Stdlib__String,
2435024354
Stdlib_Bigarray = global_data.Stdlib__Bigarray,
2435124355
Stdlib_Nativeint = global_data.Stdlib__Nativeint,
24352-
_a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0),
24353-
_b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0),
24354-
_c_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0),
24355-
_d_ = runtime.caml_int64_create_lo_mi_hi(2, 0, 0),
24356-
_e_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0);
24356+
_a_ = caml_int64_create_lo_mi_hi(1, 0, 0),
24357+
_b_ = caml_int64_create_lo_mi_hi(0, 0, 0),
24358+
_c_ = caml_int64_create_lo_mi_hi(0, 0, 0),
24359+
_d_ = caml_int64_create_lo_mi_hi(2, 0, 0),
24360+
_e_ = caml_int64_create_lo_mi_hi(1, 0, 0);
2435724361
function create(param){
2435824362
/*<<random.ml:31:4>>*/ return caml_call3(Stdlib_Bigarray[20][1], 7, 0, 4) /*<<random.ml:31:34>>*/ ;
2435924363
}
@@ -24581,8 +24585,8 @@
2458124585
/*<<random.ml:254:39>>*/ }
2458224586
var
2458324587
bits64 = /*<<?>>*/ caml_lxm_next,
24584-
_f_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0),
24585-
_g_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0),
24588+
_f_ = caml_int64_create_lo_mi_hi(1, 0, 0),
24589+
_g_ = caml_int64_create_lo_mi_hi(0, 0, 0),
2458624590
cst_Random_int64 = "Random.int64",
2458724591
cst_Random_int64_in_range = "Random.int64_in_range";
2458824592
function int64aux(s, n){
@@ -24627,13 +24631,12 @@
2462724631
}
2462824632
/*<<random.ml:289:39>>*/ }
2462924633
var
24630-
_j_ =
24631-
/*<<?>>*/ runtime.caml_int64_create_lo_mi_hi(14371852, 15349651, 22696),
24632-
_k_ = runtime.caml_int64_create_lo_mi_hi(12230193, 11438743, 35013),
24633-
_l_ = runtime.caml_int64_create_lo_mi_hi(1424933, 15549263, 2083),
24634-
_m_ = runtime.caml_int64_create_lo_mi_hi(9492471, 4696708, 43520),
24635-
_h_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0),
24636-
_i_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0),
24634+
_j_ = /*<<?>>*/ caml_int64_create_lo_mi_hi(14371852, 15349651, 22696),
24635+
_k_ = caml_int64_create_lo_mi_hi(12230193, 11438743, 35013),
24636+
_l_ = caml_int64_create_lo_mi_hi(1424933, 15549263, 2083),
24637+
_m_ = caml_int64_create_lo_mi_hi(9492471, 4696708, 43520),
24638+
_h_ = caml_int64_create_lo_mi_hi(0, 0, 0),
24639+
_i_ = caml_int64_create_lo_mi_hi(0, 0, 0),
2463724640
nativebits =
2463824641
32 === Stdlib_Nativeint[9]
2463924642
? function

0 commit comments

Comments
 (0)