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;
|
GC_CAN_IGNORE jit_insn *ref, *ref2;
|
||||||
|
|
||||||
/* *** check_arity_code *** */
|
/* *** check_arity_code *** */
|
||||||
|
@ -261,6 +261,14 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
||||||
__END_SHORT_JUMPS__(1);
|
__END_SHORT_JUMPS__(1);
|
||||||
mz_epilog(JIT_V1);
|
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 *** */
|
/* *** [bad_][m]{car,cdr,...,{imag,real}_part}_code *** */
|
||||||
/* Argument is in R0 for car/cdr, R2 otherwise */
|
/* Argument is in R0 for car/cdr, R2 otherwise */
|
||||||
for (i = 0; i < 12; i++) {
|
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);
|
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_set_{car,cdr}_code and make_[fl]rectangular_code *** */
|
||||||
/* Bad argument is in R0, other is in R1 */
|
/* Bad argument is in R0, other is in R1 */
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
|
@ -494,6 +510,14 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
scheme_jit_register_sub_func(jitter, sjc.bad_fxvector_length_code, scheme_false);
|
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 *** */
|
/* *** call_original_unary_arith_code *** */
|
||||||
/* R0 is arg, R2 is code pointer, V1 is return address (for false);
|
/* R0 is arg, R2 is code pointer, V1 is return address (for false);
|
||||||
if for branch, LOCAL2 is target address for true */
|
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();
|
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 *** */
|
/* *** {vector,string,bytes}_{ref,set}_[check_index_]code *** */
|
||||||
/* R0 is vector/string/bytes, R1 is index (Scheme number in check-index mode),
|
/* 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
|
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 *** */
|
/* *** {flvector}_{ref,set}_check_index_code *** */
|
||||||
/* Same calling convention as for vector ops. */
|
/* Same calling convention as for vector ops. */
|
||||||
for (i = 0; i < 3; i++) {
|
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
|
#ifdef CAN_INLINE_ALLOC
|
||||||
/* *** retry_alloc_code[{_keep_r0_r1,_keep_fpr1}] *** */
|
/* *** retry_alloc_code[{_keep_r0_r1,_keep_fpr1}] *** */
|
||||||
for (i = 0; i < 3; i++) {
|
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 */
|
/* wcm_[nontail_]code */
|
||||||
/* key and value are on runstack */
|
/* key and value are on runstack */
|
||||||
{
|
{
|
||||||
|
@ -1763,7 +1815,20 @@ int scheme_do_generate_common(mz_jit_state *jitter, void *_data)
|
||||||
return 1;
|
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 *** */
|
/* *** check_proc_extract_code *** */
|
||||||
/* arguments are on the Scheme stack */
|
/* 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);
|
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 */
|
/* apply_to_list_tail_code */
|
||||||
/* argc is in V1 */
|
/* argc is in V1 */
|
||||||
{
|
{
|
||||||
|
@ -2396,4 +2466,11 @@ int scheme_do_generate_more_common(mz_jit_state *jitter, void *_data)
|
||||||
return 1;
|
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
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user