@@ -258,6 +258,9 @@ struct scheme_jit_common_record {
258258 void * struct_prop_get_defl_code , * struct_prop_get_defl_tail_code , * struct_prop_get_defl_multi_code ;
259259 void * struct_prop_pred_code , * struct_prop_pred_tail_code , * struct_prop_pred_multi_code ;
260260 void * struct_proc_extract_code ;
261+ void * struct_constr_unary_code , * struct_constr_unary_tail_code , * struct_constr_unary_multi_code ;
262+ void * struct_constr_binary_code , * struct_constr_binary_tail_code , * struct_constr_binary_multi_code ;
263+ void * struct_constr_nary_code , * struct_constr_nary_tail_code , * struct_constr_nary_multi_code ;
261264 void * bad_app_vals_target ;
262265 void * app_values_slow_code , * app_values_multi_slow_code , * app_values_tail_slow_code ;
263266 void * values_code ;
@@ -1180,6 +1183,9 @@ int scheme_generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int
11801183int scheme_generate_inlined_test (mz_jit_state * jitter , Scheme_Object * obj , int branch_short ,
11811184 Branch_Info * for_branch , int need_sync );
11821185int scheme_generate_cons_alloc (mz_jit_state * jitter , int rev , int inline_retry );
1186+ int scheme_generate_struct_alloc (mz_jit_state * jitter , int num_args ,
1187+ int inline_slow , int pop_and_jump ,
1188+ int is_tail , int multi_ok );
11831189
11841190/**********************************************************************/
11851191/* jitalloc */
@@ -1232,6 +1238,8 @@ int scheme_generate_tail_call(mz_jit_state *jitter, int num_rands, int direct_na
12321238int scheme_generate_non_tail_call (mz_jit_state * jitter , int num_rands , int direct_native , int need_set_rs ,
12331239 int multi_ok , int nontail_self , int pop_and_jump , int is_inlined , int unboxed_args );
12341240int scheme_generate_finish_tail_call (mz_jit_state * jitter , int direct_native );
1241+ int scheme_generate_finish_apply (mz_jit_state * jitter );
1242+ int scheme_generate_finish_multi_apply (mz_jit_state * jitter );
12351243int scheme_generate_finish_tail_apply (mz_jit_state * jitter );
12361244void scheme_jit_register_sub_func (mz_jit_state * jitter , void * code , Scheme_Object * protocol );
12371245void scheme_jit_register_helper_func (mz_jit_state * jitter , void * code );
@@ -1281,6 +1289,7 @@ Scheme_Object **scheme_on_demand(Scheme_Object **argv);
12811289Scheme_Object * * scheme_on_demand_with_args (Scheme_Object * * in_argv , Scheme_Object * * argv , int argv_delta );
12821290
12831291void scheme_jit_allocate_values (int count , Scheme_Thread * p );
1292+ Scheme_Structure * scheme_jit_allocate_structure (int argc , Scheme_Struct_Type * stype );
12841293
12851294void scheme_prepare_branch_jump (mz_jit_state * jitter , Branch_Info * for_branch );
12861295void scheme_branch_for_true (mz_jit_state * jitter , Branch_Info * for_branch );
0 commit comments