mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-14 13:21:54 -08:00
All function objects now have function pointers.
This commit is contained in:
parent
9f42309fbd
commit
e4870189d2
10 changed files with 212 additions and 145 deletions
14
src/c/cfun.d
14
src/c/cfun.d
|
|
@ -20,6 +20,16 @@
|
|||
|
||||
#include "cfun_dispatch.d"
|
||||
|
||||
cl_object
|
||||
FEnot_a_fixed_no_arguments()
|
||||
{
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
cl_object fun = env->function;
|
||||
FEerror("Internal error. Function ~S invoked as if it had a fixed number\n"
|
||||
"of arguments.", 0, fun);
|
||||
@(return)
|
||||
}
|
||||
|
||||
cl_object
|
||||
cl_make_cfun(void *c_function, cl_object name, cl_object cblock, int narg)
|
||||
{
|
||||
|
|
@ -27,7 +37,7 @@ cl_make_cfun(void *c_function, cl_object name, cl_object cblock, int narg)
|
|||
|
||||
cf = ecl_alloc_object(t_cfunfixed);
|
||||
cf->cfunfixed.entry = dispatch_table[narg];
|
||||
cf->cfunfixed.orig = c_function;
|
||||
cf->cfunfixed.entry_fixed = c_function;
|
||||
cf->cfunfixed.name = name;
|
||||
cf->cfunfixed.block = cblock;
|
||||
cf->cfunfixed.narg = narg;
|
||||
|
|
@ -43,6 +53,7 @@ cl_make_cfun_va(void *c_function, cl_object name, cl_object cblock)
|
|||
|
||||
cf = ecl_alloc_object(t_cfun);
|
||||
cf->cfun.entry = c_function;
|
||||
cf->cfun.entry_fixed = FEnot_a_fixed_no_arguments;
|
||||
cf->cfun.name = name;
|
||||
cf->cfun.block = cblock;
|
||||
cf->cfun.narg = -1;
|
||||
|
|
@ -56,6 +67,7 @@ cl_make_cclosure_va(void *c_function, cl_object env, cl_object block)
|
|||
|
||||
cc = ecl_alloc_object(t_cclosure);
|
||||
cc->cclosure.entry = c_function;
|
||||
cc->cclosure.entry_fixed = FEnot_a_fixed_no_arguments;
|
||||
cc->cclosure.env = env;
|
||||
cc->cclosure.block = block;
|
||||
return(cc);
|
||||
|
|
|
|||
|
|
@ -7,455 +7,455 @@ static cl_object dispatch0 (cl_narg narg) {
|
|||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 0) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig();
|
||||
return fun->cfunfixed.entry_fixed();
|
||||
}
|
||||
|
||||
static cl_object dispatch1 (cl_narg narg, cl_object x0) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 1) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0);
|
||||
return fun->cfunfixed.entry_fixed(x0);
|
||||
}
|
||||
|
||||
static cl_object dispatch2 (cl_narg narg, cl_object x0, cl_object x1) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 2) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1);
|
||||
}
|
||||
|
||||
static cl_object dispatch3 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 3) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2);
|
||||
}
|
||||
|
||||
static cl_object dispatch4 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 4) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3);
|
||||
}
|
||||
|
||||
static cl_object dispatch5 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 5) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4);
|
||||
}
|
||||
|
||||
static cl_object dispatch6 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 6) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5);
|
||||
}
|
||||
|
||||
static cl_object dispatch7 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 7) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6);
|
||||
}
|
||||
|
||||
static cl_object dispatch8 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 8) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7);
|
||||
}
|
||||
|
||||
static cl_object dispatch9 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 9) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8);
|
||||
}
|
||||
|
||||
static cl_object dispatch10 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 10) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
|
||||
}
|
||||
|
||||
static cl_object dispatch11 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 11) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
|
||||
}
|
||||
|
||||
static cl_object dispatch12 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 12) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11);
|
||||
}
|
||||
|
||||
static cl_object dispatch13 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 13) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
|
||||
}
|
||||
|
||||
static cl_object dispatch14 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 14) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13);
|
||||
}
|
||||
|
||||
static cl_object dispatch15 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 15) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14);
|
||||
}
|
||||
|
||||
static cl_object dispatch16 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 16) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15);
|
||||
}
|
||||
|
||||
static cl_object dispatch17 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 17) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16);
|
||||
}
|
||||
|
||||
static cl_object dispatch18 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 18) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17);
|
||||
}
|
||||
|
||||
static cl_object dispatch19 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 19) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18);
|
||||
}
|
||||
|
||||
static cl_object dispatch20 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 20) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19);
|
||||
}
|
||||
|
||||
static cl_object dispatch21 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 21) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20);
|
||||
}
|
||||
|
||||
static cl_object dispatch22 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 22) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21);
|
||||
}
|
||||
|
||||
static cl_object dispatch23 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 23) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22);
|
||||
}
|
||||
|
||||
static cl_object dispatch24 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 24) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23);
|
||||
}
|
||||
|
||||
static cl_object dispatch25 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 25) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24);
|
||||
}
|
||||
|
||||
static cl_object dispatch26 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 26) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25);
|
||||
}
|
||||
|
||||
static cl_object dispatch27 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 27) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26);
|
||||
}
|
||||
|
||||
static cl_object dispatch28 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 28) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27);
|
||||
}
|
||||
|
||||
static cl_object dispatch29 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 29) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28);
|
||||
}
|
||||
|
||||
static cl_object dispatch30 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 30) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29);
|
||||
}
|
||||
|
||||
static cl_object dispatch31 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 31) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30);
|
||||
}
|
||||
|
||||
static cl_object dispatch32 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 32) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31);
|
||||
}
|
||||
|
||||
static cl_object dispatch33 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 33) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32);
|
||||
}
|
||||
|
||||
static cl_object dispatch34 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 34) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33);
|
||||
}
|
||||
|
||||
static cl_object dispatch35 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 35) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34);
|
||||
}
|
||||
|
||||
static cl_object dispatch36 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 36) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35);
|
||||
}
|
||||
|
||||
static cl_object dispatch37 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 37) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36);
|
||||
}
|
||||
|
||||
static cl_object dispatch38 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 38) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37);
|
||||
}
|
||||
|
||||
static cl_object dispatch39 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 39) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38);
|
||||
}
|
||||
|
||||
static cl_object dispatch40 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 40) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39);
|
||||
}
|
||||
|
||||
static cl_object dispatch41 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 41) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40);
|
||||
}
|
||||
|
||||
static cl_object dispatch42 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 42) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41);
|
||||
}
|
||||
|
||||
static cl_object dispatch43 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 43) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42);
|
||||
}
|
||||
|
||||
static cl_object dispatch44 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 44) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43);
|
||||
}
|
||||
|
||||
static cl_object dispatch45 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 45) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44);
|
||||
}
|
||||
|
||||
static cl_object dispatch46 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 46) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45);
|
||||
}
|
||||
|
||||
static cl_object dispatch47 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 47) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46);
|
||||
}
|
||||
|
||||
static cl_object dispatch48 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 48) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47);
|
||||
}
|
||||
|
||||
static cl_object dispatch49 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 49) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48);
|
||||
}
|
||||
|
||||
static cl_object dispatch50 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 50) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49);
|
||||
}
|
||||
|
||||
static cl_object dispatch51 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 51) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50);
|
||||
}
|
||||
|
||||
static cl_object dispatch52 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 52) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51);
|
||||
}
|
||||
|
||||
static cl_object dispatch53 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 53) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52);
|
||||
}
|
||||
|
||||
static cl_object dispatch54 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 54) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53);
|
||||
}
|
||||
|
||||
static cl_object dispatch55 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 55) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54);
|
||||
}
|
||||
|
||||
static cl_object dispatch56 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 56) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55);
|
||||
}
|
||||
|
||||
static cl_object dispatch57 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 57) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56);
|
||||
}
|
||||
|
||||
static cl_object dispatch58 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 58) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57);
|
||||
}
|
||||
|
||||
static cl_object dispatch59 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57, cl_object x58) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 59) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58);
|
||||
}
|
||||
|
||||
static cl_object dispatch60 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57, cl_object x58, cl_object x59) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 60) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59);
|
||||
}
|
||||
|
||||
static cl_object dispatch61 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57, cl_object x58, cl_object x59, cl_object x60) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 61) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60);
|
||||
}
|
||||
|
||||
static cl_object dispatch62 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57, cl_object x58, cl_object x59, cl_object x60, cl_object x61) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 62) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61);
|
||||
}
|
||||
|
||||
static cl_object dispatch63 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57, cl_object x58, cl_object x59, cl_object x60, cl_object x61, cl_object x62) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 63) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62);
|
||||
}
|
||||
|
||||
static cl_object dispatch64 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57, cl_object x58, cl_object x59, cl_object x60, cl_object x61, cl_object x62, cl_object x63) {
|
||||
const cl_env_ptr the_env = ecl_process_env();
|
||||
cl_object fun = the_env->function;
|
||||
if (narg != 64) FEwrong_num_arguments(fun);
|
||||
return fun->cfunfixed.orig(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63);
|
||||
return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63);
|
||||
}
|
||||
|
||||
static cl_objectfn dispatch_table[64] = {
|
||||
|
|
|
|||
70
src/c/eval.d
70
src/c/eval.d
|
|
@ -74,7 +74,7 @@ ecl_apply_from_stack_frame(cl_env_ptr env, cl_object frame, cl_object x)
|
|||
env->function = fun;
|
||||
if (narg != (cl_index)fun->cfun.narg)
|
||||
FEwrong_num_arguments(fun);
|
||||
return APPLY_fixed(narg, fun->cfunfixed.orig, sp);
|
||||
return APPLY_fixed(narg, fun->cfunfixed.entry_fixed, sp);
|
||||
case t_cfun:
|
||||
env->function = fun;
|
||||
return APPLY(narg, fun->cfun.entry, sp);
|
||||
|
|
@ -109,58 +109,6 @@ ecl_apply_from_stack_frame(cl_env_ptr env, cl_object frame, cl_object x)
|
|||
}
|
||||
}
|
||||
|
||||
static cl_object
|
||||
_ecl_clos_dispatch(cl_narg narg, ...)
|
||||
{
|
||||
int i;
|
||||
cl_object output;
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
struct ecl_stack_frame frame_aux;
|
||||
const cl_object frame = ecl_stack_frame_open(env, (cl_object)&frame_aux, narg);
|
||||
cl_va_list args; cl_va_start(args, narg, narg, 0);
|
||||
for (i = 0; i < narg; i++) {
|
||||
ecl_stack_frame_elt_set(frame, i, cl_va_arg(args));
|
||||
}
|
||||
output = _ecl_standard_dispatch(env, frame, env->function);
|
||||
ecl_stack_frame_close(frame);
|
||||
return output;
|
||||
}
|
||||
|
||||
static cl_object
|
||||
_ecl_bytecodes_dispatch(cl_narg narg, ...)
|
||||
{
|
||||
int i;
|
||||
cl_object output;
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
struct ecl_stack_frame frame_aux;
|
||||
const cl_object frame = ecl_stack_frame_open(env, (cl_object)&frame_aux, narg);
|
||||
cl_va_list args; cl_va_start(args, narg, narg, 0);
|
||||
for (i = 0; i < narg; i++) {
|
||||
ecl_stack_frame_elt_set(frame, i, cl_va_arg(args));
|
||||
}
|
||||
output = ecl_interpret(frame, Cnil, env->function, 0);
|
||||
ecl_stack_frame_close(frame);
|
||||
return output;
|
||||
}
|
||||
|
||||
static cl_object
|
||||
_ecl_bclosure_dispatch(cl_narg narg, ...)
|
||||
{
|
||||
int i;
|
||||
cl_object output;
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
cl_object fun = env->function;
|
||||
struct ecl_stack_frame frame_aux;
|
||||
const cl_object frame = ecl_stack_frame_open(env, (cl_object)&frame_aux, narg);
|
||||
cl_va_list args; cl_va_start(args, narg, narg, 0);
|
||||
for (i = 0; i < narg; i++) {
|
||||
ecl_stack_frame_elt_set(frame, i, cl_va_arg(args));
|
||||
}
|
||||
output = ecl_interpret(frame, fun->bclosure.lex, fun->bclosure.code, 0);
|
||||
ecl_stack_frame_close(frame);
|
||||
return output;
|
||||
}
|
||||
|
||||
cl_objectfn
|
||||
ecl_function_dispatch(cl_env_ptr env, cl_object x)
|
||||
{
|
||||
|
|
@ -180,16 +128,8 @@ ecl_function_dispatch(cl_env_ptr env, cl_object x)
|
|||
return fun->cclosure.entry;
|
||||
#ifdef CLOS
|
||||
case t_instance:
|
||||
switch (fun->instance.isgf) {
|
||||
case ECL_STANDARD_DISPATCH:
|
||||
env->function = fun;
|
||||
return _ecl_clos_dispatch;
|
||||
case ECL_USER_DISPATCH:
|
||||
fun = fun->instance.slots[fun->instance.length - 1];
|
||||
default:
|
||||
FEinvalid_function(fun);
|
||||
}
|
||||
goto AGAIN;
|
||||
env->function = fun;
|
||||
return fun->instance.entry;
|
||||
#endif
|
||||
case t_symbol:
|
||||
if (fun->symbol.stype & stp_macro)
|
||||
|
|
@ -198,10 +138,10 @@ ecl_function_dispatch(cl_env_ptr env, cl_object x)
|
|||
goto AGAIN;
|
||||
case t_bytecodes:
|
||||
env->function = fun;
|
||||
return _ecl_bytecodes_dispatch;
|
||||
return fun->bytecodes.entry;
|
||||
case t_bclosure:
|
||||
env->function = fun;
|
||||
return _ecl_bclosure_dispatch;
|
||||
return fun->bclosure.entry;
|
||||
default:
|
||||
ERROR:
|
||||
FEinvalid_function(x);
|
||||
|
|
|
|||
68
src/c/gfun.d
68
src/c/gfun.d
|
|
@ -19,6 +19,42 @@
|
|||
#include <ecl/internal.h>
|
||||
#include "newhash.h"
|
||||
|
||||
static cl_object generic_function_dispatch_vararg(cl_narg, ...);
|
||||
|
||||
static cl_object
|
||||
not_funcallable_fixed()
|
||||
{
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
cl_object fun = env->function;
|
||||
FEerror("Not a funcallable instance ~A.", 1, fun);
|
||||
@(return);
|
||||
}
|
||||
|
||||
static cl_object
|
||||
not_funcallable_vararg(cl_narg narg, ...)
|
||||
{
|
||||
return not_funcallable_fixed();
|
||||
}
|
||||
|
||||
static cl_object
|
||||
user_function_dispatch(cl_narg narg, ...)
|
||||
{
|
||||
int i;
|
||||
cl_object output;
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
cl_object fun = env->function;
|
||||
struct ecl_stack_frame frame_aux;
|
||||
const cl_object frame = ecl_stack_frame_open(env, (cl_object)&frame_aux, narg);
|
||||
cl_va_list args; cl_va_start(args, narg, narg, 0);
|
||||
for (i = 0; i < narg; i++) {
|
||||
ecl_stack_frame_elt_set(frame, i, cl_va_arg(args));
|
||||
}
|
||||
fun = fun->instance.slots[fun->instance.length - 1];
|
||||
output = ecl_apply_from_stack_frame(env, frame, fun);
|
||||
ecl_stack_frame_close(frame);
|
||||
return output;
|
||||
}
|
||||
|
||||
static void
|
||||
reshape_instance(cl_object x, int delta)
|
||||
{
|
||||
|
|
@ -47,8 +83,10 @@ si_set_raw_funcallable(cl_object instance, cl_object function)
|
|||
instance->instance.slots = slots;
|
||||
instance->instance.length = length;
|
||||
instance->instance.isgf = 0;
|
||||
instance->instance.entry = not_funcallable_vararg;
|
||||
instance->instance.entry_fixed = not_funcallable_fixed;
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
if (instance->instance.isgf == 0) {
|
||||
int length = instance->instance.length+1;
|
||||
cl_object *slots = (cl_object*)ecl_alloc(sizeof(cl_object)*length);
|
||||
|
|
@ -56,6 +94,8 @@ si_set_raw_funcallable(cl_object instance, cl_object function)
|
|||
instance->instance.slots = slots;
|
||||
instance->instance.length = length;
|
||||
instance->instance.isgf = 2;
|
||||
instance->instance.entry = user_function_dispatch;
|
||||
instance->instance.entry_fixed = FEnot_a_fixed_no_arguments;
|
||||
}
|
||||
instance->instance.slots[instance->instance.length-1] = function;
|
||||
}
|
||||
|
|
@ -71,17 +111,22 @@ clos_set_funcallable_instance_function(cl_object x, cl_object function_or_t)
|
|||
reshape_instance(x, -1);
|
||||
x->instance.isgf = ECL_NOT_FUNCALLABLE;
|
||||
}
|
||||
if (function_or_t == Ct)
|
||||
{
|
||||
if (function_or_t == Ct) {
|
||||
x->instance.isgf = ECL_STANDARD_DISPATCH;
|
||||
x->instance.entry = generic_function_dispatch_vararg;
|
||||
x->instance.entry_fixed = FEnot_a_fixed_no_arguments;
|
||||
} else if (function_or_t == Cnil) {
|
||||
x->instance.isgf = ECL_NOT_FUNCALLABLE;
|
||||
x->instance.entry = not_funcallable_vararg;
|
||||
x->instance.entry_fixed = not_funcallable_fixed;
|
||||
} else if (Null(cl_functionp(function_or_t))) {
|
||||
FEwrong_type_argument(@'function', function_or_t);
|
||||
} else {
|
||||
reshape_instance(x, +1);
|
||||
x->instance.slots[x->instance.length - 1] = function_or_t;
|
||||
x->instance.isgf = ECL_USER_DISPATCH;
|
||||
x->instance.entry = user_function_dispatch;
|
||||
x->instance.entry_fixed = FEnot_a_fixed_no_arguments;
|
||||
}
|
||||
@(return x)
|
||||
}
|
||||
|
|
@ -385,3 +430,20 @@ _ecl_standard_dispatch(cl_env_ptr env, cl_object frame, cl_object gf)
|
|||
#endif
|
||||
return func;
|
||||
}
|
||||
|
||||
static cl_object
|
||||
generic_function_dispatch_vararg(cl_narg narg, ...)
|
||||
{
|
||||
int i;
|
||||
cl_object output;
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
struct ecl_stack_frame frame_aux;
|
||||
const cl_object frame = ecl_stack_frame_open(env, (cl_object)&frame_aux, narg);
|
||||
cl_va_list args; cl_va_start(args, narg, narg, 0);
|
||||
for (i = 0; i < narg; i++) {
|
||||
ecl_stack_frame_elt_set(frame, i, cl_va_arg(args));
|
||||
}
|
||||
output = _ecl_standard_dispatch(env, frame, env->function);
|
||||
ecl_stack_frame_close(frame);
|
||||
return output;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -432,11 +432,48 @@ lambda_bind(cl_object env, cl_narg narg, cl_object lambda, cl_object *sp)
|
|||
|
||||
/* -------------------- AIDS TO THE INTERPRETER -------------------- */
|
||||
|
||||
cl_object
|
||||
_ecl_bytecodes_dispatch_vararg(cl_narg narg, ...)
|
||||
{
|
||||
int i;
|
||||
cl_object output;
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
struct ecl_stack_frame frame_aux;
|
||||
const cl_object frame = ecl_stack_frame_open(env, (cl_object)&frame_aux, narg);
|
||||
cl_va_list args; cl_va_start(args, narg, narg, 0);
|
||||
for (i = 0; i < narg; i++) {
|
||||
ecl_stack_frame_elt_set(frame, i, cl_va_arg(args));
|
||||
}
|
||||
output = ecl_interpret(frame, Cnil, env->function, 0);
|
||||
ecl_stack_frame_close(frame);
|
||||
return output;
|
||||
}
|
||||
|
||||
cl_object
|
||||
_ecl_bclosure_dispatch_vararg(cl_narg narg, ...)
|
||||
{
|
||||
int i;
|
||||
cl_object output;
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
cl_object fun = env->function;
|
||||
struct ecl_stack_frame frame_aux;
|
||||
const cl_object frame = ecl_stack_frame_open(env, (cl_object)&frame_aux, narg);
|
||||
cl_va_list args; cl_va_start(args, narg, narg, 0);
|
||||
for (i = 0; i < narg; i++) {
|
||||
ecl_stack_frame_elt_set(frame, i, cl_va_arg(args));
|
||||
}
|
||||
output = ecl_interpret(frame, fun->bclosure.lex, fun->bclosure.code, 0);
|
||||
ecl_stack_frame_close(frame);
|
||||
return output;
|
||||
}
|
||||
|
||||
static cl_object
|
||||
close_around(cl_object fun, cl_object lex) {
|
||||
cl_object v = ecl_alloc_object(t_bclosure);
|
||||
v->bclosure.code = fun;
|
||||
v->bclosure.lex = lex;
|
||||
v->bclosure.entry = _ecl_bclosure_dispatch_vararg;
|
||||
v->bclosure.entry_fixed = FEnot_a_fixed_no_arguments;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -641,7 +678,7 @@ ecl_interpret(cl_object frame, cl_object env, cl_object bytecodes, cl_index offs
|
|||
cl_object s;
|
||||
cl_objectfn_fixed f;
|
||||
GET_DATA(s, vector, data);
|
||||
f = SYM_FUN(s)->cfunfixed.orig;
|
||||
f = SYM_FUN(s)->cfunfixed.entry_fixed;
|
||||
SETUP_ENV(the_env);
|
||||
reg0 = f(reg0);
|
||||
THREAD_NEXT;
|
||||
|
|
@ -651,7 +688,7 @@ ecl_interpret(cl_object frame, cl_object env, cl_object bytecodes, cl_index offs
|
|||
cl_object s;
|
||||
cl_objectfn_fixed f;
|
||||
GET_DATA(s, vector, data);
|
||||
f = SYM_FUN(s)->cfunfixed.orig;
|
||||
f = SYM_FUN(s)->cfunfixed.entry_fixed;
|
||||
SETUP_ENV(the_env);
|
||||
reg0 = f(STACK_POP(the_env), reg0);
|
||||
THREAD_NEXT;
|
||||
|
|
@ -713,7 +750,8 @@ ecl_interpret(cl_object frame, cl_object env, cl_object bytecodes, cl_index offs
|
|||
case t_cfunfixed:
|
||||
if (narg != (cl_index)reg0->cfunfixed.narg)
|
||||
FEwrong_num_arguments(reg0);
|
||||
reg0 = APPLY_fixed(narg, reg0->cfunfixed.orig, frame_aux.bottom);
|
||||
reg0 = APPLY_fixed(narg, reg0->cfunfixed.entry_fixed,
|
||||
frame_aux.bottom);
|
||||
break;
|
||||
case t_cfun:
|
||||
reg0 = APPLY(narg, reg0->cfun.entry, frame_aux.bottom);
|
||||
|
|
|
|||
|
|
@ -2263,7 +2263,7 @@ read_VV(cl_object block, void (*entry_point)(cl_object))
|
|||
int narg = prototype->narg;
|
||||
VV[location] = narg<0?
|
||||
cl_make_cfun_va(prototype->entry, fname, block) :
|
||||
cl_make_cfun(prototype->entry, fname, block, narg);
|
||||
cl_make_cfun(prototype->entry_fixed, fname, block, narg);
|
||||
}
|
||||
/* Execute top-level code */
|
||||
(*entry_point)(MAKE_FIXNUM(0));
|
||||
|
|
|
|||
|
|
@ -697,14 +697,15 @@
|
|||
(defun output-cfuns (stream)
|
||||
(format stream "~%#ifndef compiler_cfuns~
|
||||
~%static const struct ecl_cfun compiler_cfuns[] = {~
|
||||
~%~t/*t,m,narg,padding,name,entry,block*/");
|
||||
~%~t/*t,m,narg,padding,name,block,entry,entry_fixed*/");
|
||||
(loop for (loc fname-loc fun) in (nreverse *global-cfuns-array*)
|
||||
do (let* ((cfun (fun-cfun fun))
|
||||
(minarg (fun-minarg fun))
|
||||
(maxarg (fun-maxarg fun))
|
||||
(narg (if (= minarg maxarg) maxarg nil)))
|
||||
(format stream "~%{0,0,~D,0,MAKE_FIXNUM(~D),(cl_objectfn)~A,MAKE_FIXNUM(~D)},"
|
||||
(or narg -1) (second loc) cfun (second fname-loc))))
|
||||
(format stream "~%{0,0,~D,0,MAKE_FIXNUM(~D),MAKE_FIXNUM(~D),(cl_objectfn)~A,(cl_objectfn_fixed)~A},"
|
||||
(or narg -1) (second loc) (second fname-loc)
|
||||
cfun cfun)))
|
||||
(format stream "~%};~%#endif"))
|
||||
|
||||
;;; ----------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -355,6 +355,7 @@ extern ECL_API cl_object si_compiled_function_name(cl_object fun);
|
|||
extern ECL_API cl_object si_compiled_function_block(cl_object fun);
|
||||
extern ECL_API cl_object cl_function_lambda_expression(cl_object fun);
|
||||
|
||||
extern ECL_API cl_object FEnot_a_fixed_no_arguments();
|
||||
extern ECL_API cl_object cl_make_cfun(void *c_function, cl_object name, cl_object block, int narg);
|
||||
extern ECL_API cl_object cl_make_cfun_va(void *c_function, cl_object name, cl_object block);
|
||||
extern ECL_API cl_object cl_make_cclosure_va(void *c_function, cl_object env, cl_object block);
|
||||
|
|
@ -485,6 +486,8 @@ extern ECL_API void ecl_stack_push_n(cl_env_ptr env, cl_index n, cl_object *args
|
|||
extern ECL_API cl_index ecl_stack_push_values(cl_env_ptr env);
|
||||
extern ECL_API void ecl_stack_pop_values(cl_env_ptr env, cl_index n);
|
||||
extern ECL_API cl_object ecl_interpret(cl_object frame, cl_object env, cl_object bytecodes, cl_index offset);
|
||||
extern ECL_API cl_object _ecl_bytecodes_dispatch(cl_narg narg, ...);
|
||||
extern ECL_API cl_object _ecl_bclosure_dispatch(cl_narg narg, ...);
|
||||
|
||||
/* disassembler.c */
|
||||
|
||||
|
|
|
|||
|
|
@ -98,6 +98,9 @@ typedef struct cl_compiler_env *cl_compiler_env_ptr;
|
|||
struct ecl_stack_frame frame;\
|
||||
cl_object name = ecl_stack_frame_open(env, (cl_object)&frame, 0);
|
||||
|
||||
extern cl_object _ecl_bytecodes_dispatch_vararg(cl_narg narg, ...);
|
||||
extern cl_object _ecl_bclosure_dispatch_vararg(cl_narg narg, ...);
|
||||
|
||||
/* ffi.d */
|
||||
|
||||
struct ecl_fficall {
|
||||
|
|
|
|||
|
|
@ -645,6 +645,8 @@ struct ecl_bytecodes {
|
|||
HEADER;
|
||||
cl_object name; /* function name */
|
||||
cl_object specials; /* list of special variables */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_objectfn_fixed entry_fixed; /* entry address */
|
||||
cl_object definition; /* function definition in list form */
|
||||
cl_index code_size; /* number of bytecodes */
|
||||
cl_index data_size; /* number of constants */
|
||||
|
|
@ -658,28 +660,32 @@ struct ecl_bclosure {
|
|||
HEADER;
|
||||
cl_object code;
|
||||
cl_object lex;
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_objectfn_fixed entry_fixed; /* entry address */
|
||||
};
|
||||
|
||||
struct ecl_cfun { /* compiled function header */
|
||||
HEADER1(narg);
|
||||
cl_object name; /* compiled function name */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_object block; /* descriptor of C code block for GC */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_objectfn_fixed entry_fixed; /* entry address */
|
||||
};
|
||||
|
||||
struct ecl_cfunfixed { /* compiled function header */
|
||||
HEADER1(narg);
|
||||
cl_object name; /* compiled function name */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_object block; /* descriptor of C code block for GC */
|
||||
cl_objectfn_fixed orig; /* entry address */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_objectfn_fixed entry_fixed; /* entry address */
|
||||
};
|
||||
|
||||
struct ecl_cclosure { /* compiled closure header */
|
||||
HEADER;
|
||||
cl_object env; /* environment */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_object block; /* descriptor of C code block for GC */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_objectfn_fixed entry_fixed; /* entry address */
|
||||
};
|
||||
|
||||
#define ECL_FFICALL_LIMIT 256
|
||||
|
|
@ -794,6 +800,8 @@ struct ecl_instance { /* instance header */
|
|||
HEADER1(isgf);
|
||||
cl_index length; /* instance length */
|
||||
cl_object clas; /* instance class */
|
||||
cl_objectfn entry; /* entry address */
|
||||
cl_objectfn_fixed entry_fixed; /* entry address */
|
||||
cl_object sig; /* generation signature */
|
||||
cl_object *slots; /* instance slots */
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue