Fix jitting of real->double-flonum.
Merge to 5.1.2.
This commit is contained in:
parent
427eaca513
commit
09b6616bfa
|
@ -1111,7 +1111,8 @@ int scheme_generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in
|
|||
|| IS_NAMED_PRIM(rator, "fllog")) {
|
||||
scheme_generate_arith(jitter, rator, app->rand, NULL, 1, ARITH_FLUNOP, 0, 0, NULL, 1, 0, -1, NULL);
|
||||
return 1;
|
||||
} else if (IS_NAMED_PRIM(rator, "exact->inexact")) {
|
||||
} else if (IS_NAMED_PRIM(rator, "exact->inexact")
|
||||
|| IS_NAMED_PRIM(rator, "real->double-flonum")) {
|
||||
scheme_generate_arith(jitter, rator, app->rand, NULL, 1, ARITH_EX_INEX, 0, 0, NULL, 1, 0, 0, NULL);
|
||||
return 1;
|
||||
} else if (IS_NAMED_PRIM(rator, "unsafe-fx->fl")) {
|
||||
|
|
|
@ -377,6 +377,10 @@ scheme_init_number (Scheme_Env *env)
|
|||
scheme_add_global_constant("real->single-flonum", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(real_to_double_flonum, "real->double-flonum", 1, 1, 1);
|
||||
if (scheme_can_inline_fp_op())
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
else
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_SOMETIMES_INLINED;
|
||||
scheme_add_global_constant("real->double-flonum", p, env);
|
||||
|
||||
scheme_add_global_constant("exact?",
|
||||
|
|
Loading…
Reference in New Issue
Block a user