split functions to reduce C compile time
This commit is contained in:
parent
58c3c84c1b
commit
39ebb083cc
|
@ -151,9 +151,9 @@ static void ts_scheme_on_demand(void) XFORM_SKIP_PROC
|
|||
|
||||
/* ************************************************************ */
|
||||
|
||||
int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
||||
static int common0(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
int in, i, ii, iii;
|
||||
int in;
|
||||
GC_CAN_IGNORE jit_insn *ref, *ref2;
|
||||
|
||||
/* *** check_arity_code *** */
|
||||
|
@ -261,6 +261,14 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
__END_SHORT_JUMPS__(1);
|
||||
mz_epilog(JIT_V1);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int common1(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
int i;
|
||||
GC_CAN_IGNORE jit_insn *ref, *ref2;
|
||||
|
||||
/* *** [bad_][m]{car,cdr,...,{imag,real}_part}_code *** */
|
||||
/* Argument is in R0 for car/cdr, R2 otherwise */
|
||||
for (i = 0; i < 12; i++) {
|
||||
|
@ -375,6 +383,14 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
scheme_jit_register_sub_func(jitter, code, scheme_false);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int common1b(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
int i;
|
||||
GC_CAN_IGNORE jit_insn *ref, *ref2;
|
||||
|
||||
/* *** bad_set_{car,cdr}_code and make_[fl]rectangular_code *** */
|
||||
/* Bad argument is in R0, other is in R1 */
|
||||
for (i = 0; i < 4; i++) {
|
||||
|
@ -494,6 +510,14 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
CHECK_LIMIT();
|
||||
scheme_jit_register_sub_func(jitter, sjc.bad_fxvector_length_code, scheme_false);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int common2(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
int in, i;
|
||||
GC_CAN_IGNORE jit_insn *ref, *ref2;
|
||||
|
||||
/* *** call_original_unary_arith_code *** */
|
||||
/* R0 is arg, R2 is code pointer, V1 is return address (for false);
|
||||
if for branch, LOCAL2 is target address for true */
|
||||
|
@ -831,6 +855,14 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
CHECK_LIMIT();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int common3(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
int i, ii, iii;
|
||||
GC_CAN_IGNORE jit_insn *ref;
|
||||
|
||||
/* *** {vector,string,bytes}_{ref,set}_[check_index_]code *** */
|
||||
/* R0 is vector/string/bytes, R1 is index (Scheme number in check-index mode),
|
||||
V1 is vector/string/bytes offset in non-check-index mode (and for
|
||||
|
@ -1090,6 +1122,14 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int common4(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
int i, ii, iii;
|
||||
GC_CAN_IGNORE jit_insn *ref;
|
||||
|
||||
/* *** {flvector}_{ref,set}_check_index_code *** */
|
||||
/* Same calling convention as for vector ops. */
|
||||
for (i = 0; i < 3; i++) {
|
||||
|
@ -1458,6 +1498,13 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int common5(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
int i, ii;
|
||||
|
||||
#ifdef CAN_INLINE_ALLOC
|
||||
/* *** retry_alloc_code[{_keep_r0_r1,_keep_fpr1}] *** */
|
||||
for (i = 0; i < 3; i++) {
|
||||
|
@ -1628,6 +1675,11 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int common6(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
/* wcm_[nontail_]code */
|
||||
/* key and value are on runstack */
|
||||
{
|
||||
|
@ -1763,7 +1815,20 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
|||
return 1;
|
||||
}
|
||||
|
||||
int scheme_do_generate_more_common(mz_jit_state *jitter, void *_data)
|
||||
int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
if (!common0(jitter, _data)) return 0;
|
||||
if (!common1(jitter, _data)) return 0;
|
||||
if (!common1b(jitter, _data)) return 0;
|
||||
if (!common2(jitter, _data)) return 0;
|
||||
if (!common3(jitter, _data)) return 0;
|
||||
if (!common4(jitter, _data)) return 0;
|
||||
if (!common5(jitter, _data)) return 0;
|
||||
if (!common6(jitter, _data)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int more_common0(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
/* *** check_proc_extract_code *** */
|
||||
/* arguments are on the Scheme stack */
|
||||
|
@ -1963,6 +2028,11 @@ int scheme_do_generate_more_common(mz_jit_state *jitter, void *_data)
|
|||
scheme_jit_register_sub_func(jitter, sjc.module_start_start_code, scheme_eof);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int more_common1(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
/* apply_to_list_tail_code */
|
||||
/* argc is in V1 */
|
||||
{
|
||||
|
@ -2396,4 +2466,11 @@ int scheme_do_generate_more_common(mz_jit_state *jitter, void *_data)
|
|||
return 1;
|
||||
}
|
||||
|
||||
int scheme_do_generate_more_common(mz_jit_state *jitter, void *_data)
|
||||
{
|
||||
if (!more_common0(jitter, _data)) return 0;
|
||||
if (!more_common1(jitter, _data)) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user