JIT-inline all of the `cXr's
This commit is contained in:
parent
6f9c197b96
commit
a77a2fb3e1
|
@ -95,6 +95,7 @@ typedef struct future_t {
|
|||
Scheme_Object *arg_s2;
|
||||
Scheme_Object **arg_S2;
|
||||
int arg_i2;
|
||||
void *arg_p2;
|
||||
|
||||
const char *arg_str0;
|
||||
const char *arg_str1;
|
||||
|
|
|
@ -193,7 +193,8 @@
|
|||
z_p
|
||||
si_s
|
||||
sis_v
|
||||
ss_i))
|
||||
ss_i
|
||||
iSp_v))
|
||||
|
||||
(with-output-to-file "jit_ts_def.c"
|
||||
#:exists 'replace
|
||||
|
|
|
@ -210,6 +210,7 @@ struct scheme_jit_common_record {
|
|||
void *call_original_nary_arith_code;
|
||||
void *bad_car_code, *bad_cdr_code;
|
||||
void *bad_caar_code, *bad_cdar_code, *bad_cadr_code, *bad_cddr_code;
|
||||
void *bad_cXr_code;
|
||||
void *bad_mcar_code, *bad_mcdr_code;
|
||||
void *bad_set_mcar_code, *bad_set_mcdr_code;
|
||||
void *imag_part_code, *real_part_code, *make_rectangular_code;
|
||||
|
|
|
@ -53,6 +53,7 @@ define_ts_iS_s(scheme_checked_caar, FSRC_MARKS)
|
|||
define_ts_iS_s(scheme_checked_cadr, FSRC_MARKS)
|
||||
define_ts_iS_s(scheme_checked_cdar, FSRC_MARKS)
|
||||
define_ts_iS_s(scheme_checked_cddr, FSRC_MARKS)
|
||||
define_ts_iSp_v(apply_prim_to_fail, FSRC_OTHER)
|
||||
define_ts_s_s(scheme_checked_length, FSRC_MARKS)
|
||||
define_ts_iS_s(scheme_checked_mcar, FSRC_MARKS)
|
||||
define_ts_iS_s(scheme_checked_mcdr, FSRC_MARKS)
|
||||
|
@ -156,6 +157,7 @@ define_ts_s_s(scheme_box, FSRC_OTHER)
|
|||
# define ts_scheme_checked_cadr scheme_checked_cadr
|
||||
# define ts_scheme_checked_cdar scheme_checked_cdar
|
||||
# define ts_scheme_checked_cddr scheme_checked_cddr
|
||||
# define ts_apply_prim_to_fail apply_prim_to_fail
|
||||
# define ts_scheme_checked_length scheme_checked_length
|
||||
# define ts_scheme_checked_mcar scheme_checked_mcar
|
||||
# define ts_scheme_checked_mcdr scheme_checked_mcdr
|
||||
|
|
|
@ -223,3 +223,12 @@ static int ts_ ## id(Scheme_Object* g51, Scheme_Object* g52) \
|
|||
else \
|
||||
return id(g51, g52); \
|
||||
}
|
||||
#define define_ts_iSp_v(id, src_type) \
|
||||
static void ts_ ## id(int g53, Scheme_Object** g54, void* g55) \
|
||||
XFORM_SKIP_PROC \
|
||||
{ \
|
||||
if (scheme_use_rtcall) \
|
||||
scheme_rtcall_iSp_v("[" #id "]", src_type, id, g53, g54, g55); \
|
||||
else \
|
||||
id(g53, g54, g55); \
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Scheme_Object* scheme_rtcall_siS_s(const char *who, int src_type, prim_siS_s f, Scheme_Object* g53, int g54, Scheme_Object** g55)
|
||||
Scheme_Object* scheme_rtcall_siS_s(const char *who, int src_type, prim_siS_s f, Scheme_Object* g56, int g57, Scheme_Object** g58)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -13,9 +13,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g53;
|
||||
future->arg_i1 = g54;
|
||||
future->arg_S2 = g55;
|
||||
future->arg_s0 = g56;
|
||||
future->arg_i1 = g57;
|
||||
future->arg_S2 = g58;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -24,7 +24,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_iSs_s(const char *who, int src_type, prim_iSs_s f, int g56, Scheme_Object** g57, Scheme_Object* g58)
|
||||
Scheme_Object* scheme_rtcall_iSs_s(const char *who, int src_type, prim_iSs_s f, int g59, Scheme_Object** g60, Scheme_Object* g61)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -39,9 +39,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_i0 = g56;
|
||||
future->arg_S1 = g57;
|
||||
future->arg_s2 = g58;
|
||||
future->arg_i0 = g59;
|
||||
future->arg_S1 = g60;
|
||||
future->arg_s2 = g61;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -50,7 +50,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_s_s(const char *who, int src_type, prim_s_s f, Scheme_Object* g59)
|
||||
Scheme_Object* scheme_rtcall_s_s(const char *who, int src_type, prim_s_s f, Scheme_Object* g62)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -65,8 +65,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g59;
|
||||
send_special_result(future, g59);
|
||||
future->arg_s0 = g62;
|
||||
send_special_result(future, g62);
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
retval = future->retval_s;
|
||||
|
@ -74,7 +74,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_n_s(const char *who, int src_type, prim_n_s f, Scheme_Native_Closure_Data* g60)
|
||||
Scheme_Object* scheme_rtcall_n_s(const char *who, int src_type, prim_n_s f, Scheme_Native_Closure_Data* g63)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -89,7 +89,7 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_n0 = g60;
|
||||
future->arg_n0 = g63;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -122,7 +122,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_ss_s(const char *who, int src_type, prim_ss_s f, Scheme_Object* g61, Scheme_Object* g62)
|
||||
Scheme_Object* scheme_rtcall_ss_s(const char *who, int src_type, prim_ss_s f, Scheme_Object* g64, Scheme_Object* g65)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -137,8 +137,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g61;
|
||||
future->arg_s1 = g62;
|
||||
future->arg_s0 = g64;
|
||||
future->arg_s1 = g65;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -147,7 +147,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_ssi_s(const char *who, int src_type, prim_ssi_s f, Scheme_Object* g63, Scheme_Object* g64, int g65)
|
||||
Scheme_Object* scheme_rtcall_ssi_s(const char *who, int src_type, prim_ssi_s f, Scheme_Object* g66, Scheme_Object* g67, int g68)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -162,9 +162,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g63;
|
||||
future->arg_s1 = g64;
|
||||
future->arg_i2 = g65;
|
||||
future->arg_s0 = g66;
|
||||
future->arg_s1 = g67;
|
||||
future->arg_i2 = g68;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -173,7 +173,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_tt_s(const char *who, int src_type, prim_tt_s f, const Scheme_Object* g66, const Scheme_Object* g67)
|
||||
Scheme_Object* scheme_rtcall_tt_s(const char *who, int src_type, prim_tt_s f, const Scheme_Object* g69, const Scheme_Object* g70)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -188,8 +188,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_t0 = g66;
|
||||
future->arg_t1 = g67;
|
||||
future->arg_t0 = g69;
|
||||
future->arg_t1 = g70;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -198,7 +198,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
MZ_MARK_STACK_TYPE scheme_rtcall_ss_m(const char *who, int src_type, prim_ss_m f, Scheme_Object* g68, Scheme_Object* g69)
|
||||
MZ_MARK_STACK_TYPE scheme_rtcall_ss_m(const char *who, int src_type, prim_ss_m f, Scheme_Object* g71, Scheme_Object* g72)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -213,8 +213,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g68;
|
||||
future->arg_s1 = g69;
|
||||
future->arg_s0 = g71;
|
||||
future->arg_s1 = g72;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -223,7 +223,7 @@
|
|||
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_Sl_s(const char *who, int src_type, prim_Sl_s f, Scheme_Object** g70, intptr_t g71)
|
||||
Scheme_Object* scheme_rtcall_Sl_s(const char *who, int src_type, prim_Sl_s f, Scheme_Object** g73, intptr_t g74)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -238,8 +238,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_S0 = g70;
|
||||
future->arg_l1 = g71;
|
||||
future->arg_S0 = g73;
|
||||
future->arg_l1 = g74;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -248,7 +248,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_l_s(const char *who, int src_type, prim_l_s f, intptr_t g72)
|
||||
Scheme_Object* scheme_rtcall_l_s(const char *who, int src_type, prim_l_s f, intptr_t g75)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -263,7 +263,7 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_l0 = g72;
|
||||
future->arg_l0 = g75;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -272,7 +272,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
void scheme_rtcall_bsi_v(const char *who, int src_type, prim_bsi_v f, Scheme_Bucket* g73, Scheme_Object* g74, int g75)
|
||||
void scheme_rtcall_bsi_v(const char *who, int src_type, prim_bsi_v f, Scheme_Bucket* g76, Scheme_Object* g77, int g78)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -287,9 +287,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_b0 = g73;
|
||||
future->arg_s1 = g74;
|
||||
future->arg_i2 = g75;
|
||||
future->arg_b0 = g76;
|
||||
future->arg_s1 = g77;
|
||||
future->arg_i2 = g78;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -298,7 +298,7 @@
|
|||
|
||||
|
||||
}
|
||||
void scheme_rtcall_iiS_v(const char *who, int src_type, prim_iiS_v f, int g76, int g77, Scheme_Object** g78)
|
||||
void scheme_rtcall_iiS_v(const char *who, int src_type, prim_iiS_v f, int g79, int g80, Scheme_Object** g81)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -313,9 +313,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_i0 = g76;
|
||||
future->arg_i1 = g77;
|
||||
future->arg_S2 = g78;
|
||||
future->arg_i0 = g79;
|
||||
future->arg_i1 = g80;
|
||||
future->arg_S2 = g81;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -324,7 +324,7 @@
|
|||
|
||||
|
||||
}
|
||||
void scheme_rtcall_ss_v(const char *who, int src_type, prim_ss_v f, Scheme_Object* g79, Scheme_Object* g80)
|
||||
void scheme_rtcall_ss_v(const char *who, int src_type, prim_ss_v f, Scheme_Object* g82, Scheme_Object* g83)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -339,8 +339,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g79;
|
||||
future->arg_s1 = g80;
|
||||
future->arg_s0 = g82;
|
||||
future->arg_s1 = g83;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -349,7 +349,7 @@
|
|||
|
||||
|
||||
}
|
||||
void scheme_rtcall_b_v(const char *who, int src_type, prim_b_v f, Scheme_Bucket* g81)
|
||||
void scheme_rtcall_b_v(const char *who, int src_type, prim_b_v f, Scheme_Bucket* g84)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -364,7 +364,7 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_b0 = g81;
|
||||
future->arg_b0 = g84;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -373,7 +373,7 @@
|
|||
|
||||
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_sl_s(const char *who, int src_type, prim_sl_s f, Scheme_Object* g82, intptr_t g83)
|
||||
Scheme_Object* scheme_rtcall_sl_s(const char *who, int src_type, prim_sl_s f, Scheme_Object* g85, intptr_t g86)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -388,8 +388,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g82;
|
||||
future->arg_l1 = g83;
|
||||
future->arg_s0 = g85;
|
||||
future->arg_l1 = g86;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -398,7 +398,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_iS_s(const char *who, int src_type, prim_iS_s f, int g84, Scheme_Object** g85)
|
||||
Scheme_Object* scheme_rtcall_iS_s(const char *who, int src_type, prim_iS_s f, int g87, Scheme_Object** g88)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -413,8 +413,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_i0 = g84;
|
||||
future->arg_S1 = g85;
|
||||
future->arg_i0 = g87;
|
||||
future->arg_S1 = g88;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -423,7 +423,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_S_s(const char *who, int src_type, prim_S_s f, Scheme_Object** g86)
|
||||
Scheme_Object* scheme_rtcall_S_s(const char *who, int src_type, prim_S_s f, Scheme_Object** g89)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -438,7 +438,7 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_S0 = g86;
|
||||
future->arg_S0 = g89;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -447,7 +447,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
void scheme_rtcall_s_v(const char *who, int src_type, prim_s_v f, Scheme_Object* g87)
|
||||
void scheme_rtcall_s_v(const char *who, int src_type, prim_s_v f, Scheme_Object* g90)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -462,8 +462,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g87;
|
||||
send_special_result(future, g87);
|
||||
future->arg_s0 = g90;
|
||||
send_special_result(future, g90);
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
||||
|
@ -471,7 +471,7 @@
|
|||
|
||||
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_iSi_s(const char *who, int src_type, prim_iSi_s f, int g88, Scheme_Object** g89, int g90)
|
||||
Scheme_Object* scheme_rtcall_iSi_s(const char *who, int src_type, prim_iSi_s f, int g91, Scheme_Object** g92, int g93)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -486,9 +486,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_i0 = g88;
|
||||
future->arg_S1 = g89;
|
||||
future->arg_i2 = g90;
|
||||
future->arg_i0 = g91;
|
||||
future->arg_S1 = g92;
|
||||
future->arg_i2 = g93;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -497,7 +497,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
void scheme_rtcall_siS_v(const char *who, int src_type, prim_siS_v f, Scheme_Object* g91, int g92, Scheme_Object** g93)
|
||||
void scheme_rtcall_siS_v(const char *who, int src_type, prim_siS_v f, Scheme_Object* g94, int g95, Scheme_Object** g96)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -512,9 +512,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g91;
|
||||
future->arg_i1 = g92;
|
||||
future->arg_S2 = g93;
|
||||
future->arg_s0 = g94;
|
||||
future->arg_i1 = g95;
|
||||
future->arg_S2 = g96;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -523,7 +523,7 @@
|
|||
|
||||
|
||||
}
|
||||
void* scheme_rtcall_z_p(const char *who, int src_type, prim_z_p f, size_t g94)
|
||||
void* scheme_rtcall_z_p(const char *who, int src_type, prim_z_p f, size_t g97)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -538,7 +538,7 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_z0 = g94;
|
||||
future->arg_z0 = g97;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -547,7 +547,7 @@
|
|||
|
||||
return retval;
|
||||
}
|
||||
Scheme_Object* scheme_rtcall_si_s(const char *who, int src_type, prim_si_s f, Scheme_Object* g95, int g96)
|
||||
Scheme_Object* scheme_rtcall_si_s(const char *who, int src_type, prim_si_s f, Scheme_Object* g98, int g99)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -562,8 +562,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g95;
|
||||
future->arg_i1 = g96;
|
||||
future->arg_s0 = g98;
|
||||
future->arg_i1 = g99;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -572,7 +572,7 @@
|
|||
receive_special_result(future, retval, 1);
|
||||
return retval;
|
||||
}
|
||||
void scheme_rtcall_sis_v(const char *who, int src_type, prim_sis_v f, Scheme_Object* g97, int g98, Scheme_Object* g99)
|
||||
void scheme_rtcall_sis_v(const char *who, int src_type, prim_sis_v f, Scheme_Object* g100, int g101, Scheme_Object* g102)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -587,9 +587,9 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g97;
|
||||
future->arg_i1 = g98;
|
||||
future->arg_s2 = g99;
|
||||
future->arg_s0 = g100;
|
||||
future->arg_i1 = g101;
|
||||
future->arg_s2 = g102;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -598,7 +598,7 @@
|
|||
|
||||
|
||||
}
|
||||
int scheme_rtcall_ss_i(const char *who, int src_type, prim_ss_i f, Scheme_Object* g100, Scheme_Object* g101)
|
||||
int scheme_rtcall_ss_i(const char *who, int src_type, prim_ss_i f, Scheme_Object* g103, Scheme_Object* g104)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
|
@ -613,8 +613,8 @@
|
|||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_s0 = g100;
|
||||
future->arg_s1 = g101;
|
||||
future->arg_s0 = g103;
|
||||
future->arg_s1 = g104;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
@ -622,4 +622,30 @@
|
|||
future->retval_i = 0;
|
||||
|
||||
return retval;
|
||||
}
|
||||
void scheme_rtcall_iSp_v(const char *who, int src_type, prim_iSp_v f, int g105, Scheme_Object** g106, void* g107)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
Scheme_Future_Thread_State *fts = scheme_future_thread_state;
|
||||
future_t *future;
|
||||
double tm;
|
||||
|
||||
|
||||
future = fts->thread->current_ft;
|
||||
future->prim_protocol = SIG_iSp_v;
|
||||
future->prim_func = f;
|
||||
tm = get_future_timestamp();
|
||||
future->time_of_request = tm;
|
||||
future->source_of_request = who;
|
||||
future->source_type = src_type;
|
||||
future->arg_i0 = g105;
|
||||
future->arg_S1 = g106;
|
||||
future->arg_p2 = g107;
|
||||
|
||||
future_do_runtimecall(fts, (void*)f, 0, 1);
|
||||
future = fts->thread->current_ft;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,75 +1,78 @@
|
|||
#define SIG_siS_s 10
|
||||
typedef Scheme_Object* (*prim_siS_s)(Scheme_Object*, int, Scheme_Object**);
|
||||
Scheme_Object* scheme_rtcall_siS_s(const char *who, int src_type, prim_siS_s f, Scheme_Object* g151, int g152, Scheme_Object** g153);
|
||||
Scheme_Object* scheme_rtcall_siS_s(const char *who, int src_type, prim_siS_s f, Scheme_Object* g160, int g161, Scheme_Object** g162);
|
||||
#define SIG_iSs_s 11
|
||||
typedef Scheme_Object* (*prim_iSs_s)(int, Scheme_Object**, Scheme_Object*);
|
||||
Scheme_Object* scheme_rtcall_iSs_s(const char *who, int src_type, prim_iSs_s f, int g154, Scheme_Object** g155, Scheme_Object* g156);
|
||||
Scheme_Object* scheme_rtcall_iSs_s(const char *who, int src_type, prim_iSs_s f, int g163, Scheme_Object** g164, Scheme_Object* g165);
|
||||
#define SIG_s_s 12
|
||||
typedef Scheme_Object* (*prim_s_s)(Scheme_Object*);
|
||||
Scheme_Object* scheme_rtcall_s_s(const char *who, int src_type, prim_s_s f, Scheme_Object* g157);
|
||||
Scheme_Object* scheme_rtcall_s_s(const char *who, int src_type, prim_s_s f, Scheme_Object* g166);
|
||||
#define SIG_n_s 13
|
||||
typedef Scheme_Object* (*prim_n_s)(Scheme_Native_Closure_Data*);
|
||||
Scheme_Object* scheme_rtcall_n_s(const char *who, int src_type, prim_n_s f, Scheme_Native_Closure_Data* g158);
|
||||
Scheme_Object* scheme_rtcall_n_s(const char *who, int src_type, prim_n_s f, Scheme_Native_Closure_Data* g167);
|
||||
#define SIG__s 14
|
||||
typedef Scheme_Object* (*prim__s)();
|
||||
Scheme_Object* scheme_rtcall__s(const char *who, int src_type, prim__s f );
|
||||
#define SIG_ss_s 15
|
||||
typedef Scheme_Object* (*prim_ss_s)(Scheme_Object*, Scheme_Object*);
|
||||
Scheme_Object* scheme_rtcall_ss_s(const char *who, int src_type, prim_ss_s f, Scheme_Object* g159, Scheme_Object* g160);
|
||||
Scheme_Object* scheme_rtcall_ss_s(const char *who, int src_type, prim_ss_s f, Scheme_Object* g168, Scheme_Object* g169);
|
||||
#define SIG_ssi_s 16
|
||||
typedef Scheme_Object* (*prim_ssi_s)(Scheme_Object*, Scheme_Object*, int);
|
||||
Scheme_Object* scheme_rtcall_ssi_s(const char *who, int src_type, prim_ssi_s f, Scheme_Object* g161, Scheme_Object* g162, int g163);
|
||||
Scheme_Object* scheme_rtcall_ssi_s(const char *who, int src_type, prim_ssi_s f, Scheme_Object* g170, Scheme_Object* g171, int g172);
|
||||
#define SIG_tt_s 17
|
||||
typedef Scheme_Object* (*prim_tt_s)(const Scheme_Object*, const Scheme_Object*);
|
||||
Scheme_Object* scheme_rtcall_tt_s(const char *who, int src_type, prim_tt_s f, const Scheme_Object* g164, const Scheme_Object* g165);
|
||||
Scheme_Object* scheme_rtcall_tt_s(const char *who, int src_type, prim_tt_s f, const Scheme_Object* g173, const Scheme_Object* g174);
|
||||
#define SIG_ss_m 18
|
||||
typedef MZ_MARK_STACK_TYPE (*prim_ss_m)(Scheme_Object*, Scheme_Object*);
|
||||
MZ_MARK_STACK_TYPE scheme_rtcall_ss_m(const char *who, int src_type, prim_ss_m f, Scheme_Object* g166, Scheme_Object* g167);
|
||||
MZ_MARK_STACK_TYPE scheme_rtcall_ss_m(const char *who, int src_type, prim_ss_m f, Scheme_Object* g175, Scheme_Object* g176);
|
||||
#define SIG_Sl_s 19
|
||||
typedef Scheme_Object* (*prim_Sl_s)(Scheme_Object**, intptr_t);
|
||||
Scheme_Object* scheme_rtcall_Sl_s(const char *who, int src_type, prim_Sl_s f, Scheme_Object** g168, intptr_t g169);
|
||||
Scheme_Object* scheme_rtcall_Sl_s(const char *who, int src_type, prim_Sl_s f, Scheme_Object** g177, intptr_t g178);
|
||||
#define SIG_l_s 20
|
||||
typedef Scheme_Object* (*prim_l_s)(intptr_t);
|
||||
Scheme_Object* scheme_rtcall_l_s(const char *who, int src_type, prim_l_s f, intptr_t g170);
|
||||
Scheme_Object* scheme_rtcall_l_s(const char *who, int src_type, prim_l_s f, intptr_t g179);
|
||||
#define SIG_bsi_v 21
|
||||
typedef void (*prim_bsi_v)(Scheme_Bucket*, Scheme_Object*, int);
|
||||
void scheme_rtcall_bsi_v(const char *who, int src_type, prim_bsi_v f, Scheme_Bucket* g171, Scheme_Object* g172, int g173);
|
||||
void scheme_rtcall_bsi_v(const char *who, int src_type, prim_bsi_v f, Scheme_Bucket* g180, Scheme_Object* g181, int g182);
|
||||
#define SIG_iiS_v 22
|
||||
typedef void (*prim_iiS_v)(int, int, Scheme_Object**);
|
||||
void scheme_rtcall_iiS_v(const char *who, int src_type, prim_iiS_v f, int g174, int g175, Scheme_Object** g176);
|
||||
void scheme_rtcall_iiS_v(const char *who, int src_type, prim_iiS_v f, int g183, int g184, Scheme_Object** g185);
|
||||
#define SIG_ss_v 23
|
||||
typedef void (*prim_ss_v)(Scheme_Object*, Scheme_Object*);
|
||||
void scheme_rtcall_ss_v(const char *who, int src_type, prim_ss_v f, Scheme_Object* g177, Scheme_Object* g178);
|
||||
void scheme_rtcall_ss_v(const char *who, int src_type, prim_ss_v f, Scheme_Object* g186, Scheme_Object* g187);
|
||||
#define SIG_b_v 24
|
||||
typedef void (*prim_b_v)(Scheme_Bucket*);
|
||||
void scheme_rtcall_b_v(const char *who, int src_type, prim_b_v f, Scheme_Bucket* g179);
|
||||
void scheme_rtcall_b_v(const char *who, int src_type, prim_b_v f, Scheme_Bucket* g188);
|
||||
#define SIG_sl_s 25
|
||||
typedef Scheme_Object* (*prim_sl_s)(Scheme_Object*, intptr_t);
|
||||
Scheme_Object* scheme_rtcall_sl_s(const char *who, int src_type, prim_sl_s f, Scheme_Object* g180, intptr_t g181);
|
||||
Scheme_Object* scheme_rtcall_sl_s(const char *who, int src_type, prim_sl_s f, Scheme_Object* g189, intptr_t g190);
|
||||
#define SIG_iS_s 26
|
||||
typedef Scheme_Object* (*prim_iS_s)(int, Scheme_Object**);
|
||||
Scheme_Object* scheme_rtcall_iS_s(const char *who, int src_type, prim_iS_s f, int g182, Scheme_Object** g183);
|
||||
Scheme_Object* scheme_rtcall_iS_s(const char *who, int src_type, prim_iS_s f, int g191, Scheme_Object** g192);
|
||||
#define SIG_S_s 27
|
||||
typedef Scheme_Object* (*prim_S_s)(Scheme_Object**);
|
||||
Scheme_Object* scheme_rtcall_S_s(const char *who, int src_type, prim_S_s f, Scheme_Object** g184);
|
||||
Scheme_Object* scheme_rtcall_S_s(const char *who, int src_type, prim_S_s f, Scheme_Object** g193);
|
||||
#define SIG_s_v 28
|
||||
typedef void (*prim_s_v)(Scheme_Object*);
|
||||
void scheme_rtcall_s_v(const char *who, int src_type, prim_s_v f, Scheme_Object* g185);
|
||||
void scheme_rtcall_s_v(const char *who, int src_type, prim_s_v f, Scheme_Object* g194);
|
||||
#define SIG_iSi_s 29
|
||||
typedef Scheme_Object* (*prim_iSi_s)(int, Scheme_Object**, int);
|
||||
Scheme_Object* scheme_rtcall_iSi_s(const char *who, int src_type, prim_iSi_s f, int g186, Scheme_Object** g187, int g188);
|
||||
Scheme_Object* scheme_rtcall_iSi_s(const char *who, int src_type, prim_iSi_s f, int g195, Scheme_Object** g196, int g197);
|
||||
#define SIG_siS_v 30
|
||||
typedef void (*prim_siS_v)(Scheme_Object*, int, Scheme_Object**);
|
||||
void scheme_rtcall_siS_v(const char *who, int src_type, prim_siS_v f, Scheme_Object* g189, int g190, Scheme_Object** g191);
|
||||
void scheme_rtcall_siS_v(const char *who, int src_type, prim_siS_v f, Scheme_Object* g198, int g199, Scheme_Object** g200);
|
||||
#define SIG_z_p 31
|
||||
typedef void* (*prim_z_p)(size_t);
|
||||
void* scheme_rtcall_z_p(const char *who, int src_type, prim_z_p f, size_t g192);
|
||||
void* scheme_rtcall_z_p(const char *who, int src_type, prim_z_p f, size_t g201);
|
||||
#define SIG_si_s 32
|
||||
typedef Scheme_Object* (*prim_si_s)(Scheme_Object*, int);
|
||||
Scheme_Object* scheme_rtcall_si_s(const char *who, int src_type, prim_si_s f, Scheme_Object* g193, int g194);
|
||||
Scheme_Object* scheme_rtcall_si_s(const char *who, int src_type, prim_si_s f, Scheme_Object* g202, int g203);
|
||||
#define SIG_sis_v 33
|
||||
typedef void (*prim_sis_v)(Scheme_Object*, int, Scheme_Object*);
|
||||
void scheme_rtcall_sis_v(const char *who, int src_type, prim_sis_v f, Scheme_Object* g195, int g196, Scheme_Object* g197);
|
||||
void scheme_rtcall_sis_v(const char *who, int src_type, prim_sis_v f, Scheme_Object* g204, int g205, Scheme_Object* g206);
|
||||
#define SIG_ss_i 34
|
||||
typedef int (*prim_ss_i)(Scheme_Object*, Scheme_Object*);
|
||||
int scheme_rtcall_ss_i(const char *who, int src_type, prim_ss_i f, Scheme_Object* g198, Scheme_Object* g199);
|
||||
int scheme_rtcall_ss_i(const char *who, int src_type, prim_ss_i f, Scheme_Object* g207, Scheme_Object* g208);
|
||||
#define SIG_iSp_v 35
|
||||
typedef void (*prim_iSp_v)(int, Scheme_Object**, void*);
|
||||
void scheme_rtcall_iSp_v(const char *who, int src_type, prim_iSp_v f, int g209, Scheme_Object** g210, void* g211);
|
||||
|
|
|
@ -346,5 +346,19 @@ case SIG_ss_i:
|
|||
f(arg_s0, arg_s1);
|
||||
future->retval_i = retval;
|
||||
|
||||
break;
|
||||
}
|
||||
case SIG_iSp_v:
|
||||
{
|
||||
prim_iSp_v f = (prim_iSp_v)future->prim_func;
|
||||
|
||||
JIT_TS_LOCALIZE(int, arg_i0); JIT_TS_LOCALIZE(Scheme_Object**, arg_S1); JIT_TS_LOCALIZE(void*, arg_p2);
|
||||
|
||||
future->arg_S1 = NULL; future->arg_p2 = NULL;
|
||||
ADJUST_RS_ARG(future, arg_S1);
|
||||
|
||||
f(arg_i0, arg_S1, arg_p2);
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -83,6 +83,12 @@ static Scheme_Object *apply_checked_fail(Scheme_Object **args)
|
|||
return _scheme_apply(args[2], 3, a);
|
||||
}
|
||||
|
||||
static void apply_prim_to_fail(int argc, Scheme_Object **argv, void *_p)
|
||||
{
|
||||
Scheme_Primitive_Closure_Proc *p = (Scheme_Primitive_Closure_Proc *)_p;
|
||||
(void)p(argc, argv, NULL);
|
||||
}
|
||||
|
||||
static Scheme_Object *vector_check_chaperone_of(Scheme_Object *o, Scheme_Object *orig, int setter)
|
||||
{
|
||||
if (!scheme_chaperone_of(o, orig))
|
||||
|
@ -288,8 +294,8 @@ static int common1(mz_jit_state *jitter, void *_data)
|
|||
GC_CAN_IGNORE jit_insn *ref;
|
||||
|
||||
/* *** [bad_][m]{car,cdr,...,{imag,real}_part}_code *** */
|
||||
/* Argument is in R0 for car/cdr, R2 otherwise */
|
||||
for (i = 0; i < 12; i++) {
|
||||
/* Argument is in R2 for cXX+r, R0 otherwise */
|
||||
for (i = 0; i < 13; i++) {
|
||||
void *code;
|
||||
|
||||
code = jit_get_ip().ptr;
|
||||
|
@ -330,11 +336,14 @@ static int common1(mz_jit_state *jitter, void *_data)
|
|||
case 11:
|
||||
sjc.bad_flimag_part_code = code;
|
||||
break;
|
||||
case 12:
|
||||
sjc.bad_cXr_code = code;
|
||||
break;
|
||||
}
|
||||
mz_prolog(JIT_R1);
|
||||
jit_subi_p(JIT_RUNSTACK, JIT_RUNSTACK, WORDS_TO_BYTES(1));
|
||||
CHECK_RUNSTACK_OVERFLOW();
|
||||
if ((i < 2) || (i > 5)) {
|
||||
if ((i != 12) && ((i < 2) || (i > 5))) {
|
||||
jit_str_p(JIT_RUNSTACK, JIT_R0);
|
||||
} else {
|
||||
jit_str_p(JIT_RUNSTACK, JIT_R2);
|
||||
|
@ -342,7 +351,12 @@ static int common1(mz_jit_state *jitter, void *_data)
|
|||
JIT_UPDATE_THREAD_RSPTR();
|
||||
CHECK_LIMIT();
|
||||
jit_movi_i(JIT_R1, 1);
|
||||
jit_prepare(2);
|
||||
if (i == 12) {
|
||||
jit_prepare(3);
|
||||
jit_pusharg_p(JIT_R0);
|
||||
} else {
|
||||
jit_prepare(2);
|
||||
}
|
||||
jit_pusharg_p(JIT_RUNSTACK);
|
||||
jit_pusharg_i(JIT_R1);
|
||||
switch (i) {
|
||||
|
@ -382,6 +396,9 @@ static int common1(mz_jit_state *jitter, void *_data)
|
|||
case 11:
|
||||
(void)mz_finish_lwe(ts_scheme_checked_flimag_part, ref);
|
||||
break;
|
||||
case 12:
|
||||
(void)mz_finish_lwe(ts_apply_prim_to_fail, ref);
|
||||
break;
|
||||
}
|
||||
CHECK_LIMIT();
|
||||
|
||||
|
|
|
@ -367,6 +367,15 @@ static int generate_inlined_struct_op(int kind, mz_jit_state *jitter,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int is_cXr_prim(const char *name)
|
||||
{
|
||||
int i;
|
||||
if (name[0] != 'c') return 0;
|
||||
for (i = 1; (name[i] == 'a') || (name[i] == 'd'); i++) { }
|
||||
if (name[i] != 'r') return 0;
|
||||
return !name[i+1];
|
||||
}
|
||||
|
||||
static int generate_vector_alloc(mz_jit_state *jitter, Scheme_Object *rator,
|
||||
Scheme_App_Rec *app, Scheme_App2_Rec *app2, Scheme_App3_Rec *app3);
|
||||
|
||||
|
@ -608,12 +617,7 @@ int scheme_generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in
|
|||
|
||||
return 1;
|
||||
} else if (!for_branch) {
|
||||
if (IS_NAMED_PRIM(rator, "car")
|
||||
|| IS_NAMED_PRIM(rator, "cdr")
|
||||
|| IS_NAMED_PRIM(rator, "cadr")
|
||||
|| IS_NAMED_PRIM(rator, "cdar")
|
||||
|| IS_NAMED_PRIM(rator, "caar")
|
||||
|| IS_NAMED_PRIM(rator, "cddr")) {
|
||||
if (is_cXr_prim(((Scheme_Primitive_Proc *)rator)->name)) {
|
||||
# define MAX_LEVELS 2
|
||||
GC_CAN_IGNORE jit_insn *reffail = NULL, *ref;
|
||||
int steps, i;
|
||||
|
@ -650,7 +654,7 @@ int scheme_generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in
|
|||
} else {
|
||||
(void)jit_calli(sjc.bad_cdr_code);
|
||||
}
|
||||
} else {
|
||||
} else if (steps == 2) {
|
||||
if (name[1] == 'a') {
|
||||
if (name[2] == 'a') {
|
||||
(void)jit_calli(sjc.bad_caar_code);
|
||||
|
@ -664,6 +668,9 @@ int scheme_generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in
|
|||
(void)jit_calli(sjc.bad_cddr_code);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
(void)jit_movi_p(JIT_R0, ((Scheme_Primitive_Proc *)rator)->prim_val);
|
||||
(void)jit_calli(sjc.bad_cXr_code);
|
||||
}
|
||||
__START_TINY_JUMPS__(1);
|
||||
mz_patch_branch(ref);
|
||||
|
|
|
@ -321,127 +321,101 @@ scheme_init_list (Scheme_Env *env)
|
|||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cddr", p, env);
|
||||
|
||||
scheme_add_global_constant ("caaar",
|
||||
scheme_make_folding_prim(caaar_prim,
|
||||
"caaar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("caadr",
|
||||
scheme_make_folding_prim(caadr_prim,
|
||||
"caadr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cadar",
|
||||
scheme_make_folding_prim(cadar_prim,
|
||||
"cadar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdaar",
|
||||
scheme_make_folding_prim(cdaar_prim,
|
||||
"cdaar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdadr",
|
||||
scheme_make_folding_prim(cdadr_prim,
|
||||
"cdadr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cddar",
|
||||
scheme_make_folding_prim(cddar_prim,
|
||||
"cddar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("caddr",
|
||||
scheme_make_folding_prim(caddr_prim,
|
||||
"caddr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdddr",
|
||||
scheme_make_folding_prim(cdddr_prim,
|
||||
"cdddr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cddddr",
|
||||
scheme_make_folding_prim(cddddr_prim,
|
||||
"cddddr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
p = scheme_make_folding_prim(caaar_prim, "caaar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caaar", p, env);
|
||||
|
||||
scheme_add_global_constant ("cadddr",
|
||||
scheme_make_folding_prim(cadddr_prim,
|
||||
"cadddr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdaddr",
|
||||
scheme_make_folding_prim(cdaddr_prim,
|
||||
"cdaddr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cddadr",
|
||||
scheme_make_folding_prim(cddadr_prim,
|
||||
"cddadr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdddar",
|
||||
scheme_make_folding_prim(cdddar_prim,
|
||||
"cdddar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("caaddr",
|
||||
scheme_make_folding_prim(caaddr_prim,
|
||||
"caaddr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cadadr",
|
||||
scheme_make_folding_prim(cadadr_prim,
|
||||
"cadadr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("caddar",
|
||||
scheme_make_folding_prim(caddar_prim,
|
||||
"caddar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdaadr",
|
||||
scheme_make_folding_prim(cdaadr_prim,
|
||||
"cdaadr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdadar",
|
||||
scheme_make_folding_prim(cdadar_prim,
|
||||
"cdadar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cddaar",
|
||||
scheme_make_folding_prim(cddaar_prim,
|
||||
"cddaar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cdaaar",
|
||||
scheme_make_folding_prim(cdaaar_prim,
|
||||
"cdaaar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("cadaar",
|
||||
scheme_make_folding_prim(cadaar_prim,
|
||||
"cadaar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("caadar",
|
||||
scheme_make_folding_prim(caadar_prim,
|
||||
"caadar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("caaadr",
|
||||
scheme_make_folding_prim(caaadr_prim,
|
||||
"caaadr",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant ("caaaar",
|
||||
scheme_make_folding_prim(caaaar_prim,
|
||||
"caaaar",
|
||||
1, 1, 1),
|
||||
env);
|
||||
p = scheme_make_folding_prim(caadr_prim, "caadr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caadr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cadar_prim, "cadar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cadar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdaar_prim, "cdaar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdaar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdadr_prim, "cdadr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdadr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cddar_prim, "cddar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cddar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(caddr_prim, "caddr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caddr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdddr_prim, "cdddr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdddr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cddddr_prim, "cddddr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cddddr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cadddr_prim, "cadddr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cadddr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdaddr_prim, "cdaddr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdaddr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cddadr_prim, "cddadr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cddadr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdddar_prim, "cdddar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdddar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(caaddr_prim, "caaddr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caaddr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cadadr_prim, "cadadr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cadadr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(caddar_prim, "caddar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caddar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdaadr_prim, "cdaadr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdaadr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdadar_prim, "cdadar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdadar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cddaar_prim, "cddaar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cddaar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cdaaar_prim, "cdaaar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cdaaar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(cadaar_prim, "cadaar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("cadaar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(caadar_prim, "caadar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caadar", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(caaadr_prim, "caaadr", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caaadr", p, env);
|
||||
|
||||
p = scheme_make_folding_prim(caaaar_prim, "caaaar", 1, 1, 1);
|
||||
SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED;
|
||||
scheme_add_global_constant ("caaaar", p, env);
|
||||
|
||||
REGISTER_SO(scheme_box_proc);
|
||||
p = scheme_make_immed_prim(box, BOX, 1, 1);
|
||||
|
|
Loading…
Reference in New Issue
Block a user