Add real->double-flonum to the JIT.

This commit is contained in:
Vincent St-Amour 2011-07-07 12:04:24 -04:00
parent 50974440f4
commit 2afff3d210
2 changed files with 6 additions and 1 deletions

View File

@ -1108,7 +1108,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, 14, 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, 12, 0, 0, NULL, 1, 0, 0, NULL);
return 1;
} else if (IS_NAMED_PRIM(rator, "unsafe-fx->fl")) {

View File

@ -374,6 +374,10 @@ scheme_init_number (Scheme_Env *env)
scheme_add_global_constant("single-flonum?", p, env);
p = scheme_make_folding_prim(real_to_single_flonum, "real->single-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->single-flonum", p, env);
p = scheme_make_folding_prim(real_to_double_flonum, "real->double-flonum", 1, 1, 1);