/* Compiler: ECL 26.3.27                                                      */
/* Source: /build/ecl/src/ecl-26.3.27/src/cmp/cmppass1-ffi.lsp                */
#include <ecl/ecl-cmp.h>
#include "cmp/cmppass1-ffi.eclh"
/* function definition for C1C-INLINE                                         */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3556c1c_inline(cl_object v1args)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v2;
  cl_object v3arguments;
  cl_object v4arg_types;
  cl_object v5output_type;
  cl_object v6c_expression;
  cl_object v7;
  cl_object v8side_effects;
  cl_object v9;
  cl_object v10one_liner;
  cl_object v11output_host_type;
  v2 = v1args;
  if (!(v2==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1args);
L4:;
  {
   cl_object v12;
   v12 = ecl_car(v2);
   v2 = ecl_cdr(v2);
   v3arguments = v12;
  }
  if (!(v2==ECL_NIL)){
   goto L10;
  }
  si_dm_too_few_arguments(v1args);
L10:;
  {
   cl_object v12;
   v12 = ecl_car(v2);
   v2 = ecl_cdr(v2);
   v4arg_types = v12;
  }
  if (!(v2==ECL_NIL)){
   goto L16;
  }
  si_dm_too_few_arguments(v1args);
L16:;
  {
   cl_object v12;
   v12 = ecl_car(v2);
   v2 = ecl_cdr(v2);
   v5output_type = v12;
  }
  if (!(v2==ECL_NIL)){
   goto L22;
  }
  si_dm_too_few_arguments(v1args);
L22:;
  {
   cl_object v12;
   v12 = ecl_car(v2);
   v2 = ecl_cdr(v2);
   v6c_expression = v12;
  }
  v7 = si_search_keyword(v2, VV[3]);
  if (!((v7)==(ECL_SYM("MISSING-KEYWORD",2044)))){
   goto L29;
  }
  v8side_effects = ECL_T;
  goto L28;
L29:;
  v8side_effects = v7;
L28:;
  v9 = si_search_keyword(v2, VV[4]);
  if (!((v9)==(ECL_SYM("MISSING-KEYWORD",2044)))){
   goto L33;
  }
  v10one_liner = ECL_NIL;
  goto L32;
L33:;
  v10one_liner = v9;
L32:;
  v11output_host_type = ECL_NIL;
  si_check_keyword(2, v2, VV[6]);
  {
   cl_fixnum v12;
   v12 = ecl_length(v3arguments);
   {
    cl_fixnum v13;
    v13 = ecl_length(v4arg_types);
    if ((v12)==(v13)) {
     goto L37;
    }
   }
  }
  T0 = CONS(ECL_SYM("C-INLINE",2106),v1args);
  (cl_env_copy->function=ecl_fdefinition(VV[7]))->cfun.entry(2, VV[8], T0) /*  CMPERR */;
L37:;
  {
   cl_object v12ndx;
   v12ndx = cl_position(2, ECL_SYM("CSTRING",1407), v4arg_types);
   if (Null(v12ndx)){
    goto L39;
   }
   {
    cl_object v13var;
    cl_object v14arguments;
    cl_object v15value;
    v13var = cl_gensym(0);
    v14arguments = cl_copy_list(v3arguments);
    v15value = ecl_elt(v14arguments,ecl_to_size(v12ndx));
    ecl_elt_set(v14arguments,ecl_to_size(v12ndx),v13var);
    ecl_elt_set(v4arg_types,ecl_to_size(v12ndx),VV[9]);
    T0 = cl_list(2, v13var, v15value);
    T1 = cl_listX(6, ECL_SYM("C-INLINE",2106), v14arguments, v4arg_types, v5output_type, v6c_expression, v2);
    T2 = cl_list(3, ECL_SYM("WITH-CSTRING",2153), T0, T1);
    value0 = (cl_env_copy->function=ecl_fdefinition(VV[10]))->cfun.entry(1, T2) /*  C1EXPR */;
    return value0;
   }
  }
L39:;
  {
   cl_object v12;
   v12 = ecl_make_cfun_va((cl_objectfn)LC3555produce_type_pair_va,ECL_NIL,Cblock,1);
   if (!((v5output_type)==(ECL_SYM("VOID",1424)))){
    goto L48;
   }
   v11output_host_type = ECL_NIL;
   v5output_type = ECL_NIL;
   goto L47;
L48:;
   if (!(ecl_equal(v5output_type,VV[15]))){
    goto L53;
   }
   v11output_host_type = VV[16];
   goto L47;
L53:;
   if (!(ECL_CONSP(v5output_type))){
    goto L56;
   }
   T0 = ecl_car(v5output_type);
   if (!((T0)==(ECL_SYM("VALUES",899)))){
    goto L56;
   }
   {
    cl_object v13x;
    {
     cl_object v14;
     cl_object v15;
     cl_object v16;
     {
      cl_object v17;
      v17 = ecl_cdr(v5output_type);
      if (ecl_unlikely(!ECL_LISTP(v17))) FEtype_error_list(v17);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v14 = v17;
     }
     v15 = ECL_NIL;
     v16 = v14;
     {
      cl_object v17;
      cl_object v18;
      v17 = ecl_list1(ECL_NIL);
      v18 = v17;
L67:;
      if (!(ecl_endp(v16))){
       goto L69;
      }
      goto L68;
L69:;
      v15 = ECL_CONS_CAR(v16);
      {
       cl_object v19;
       v19 = ECL_CONS_CDR(v16);
       if (ecl_unlikely(!ECL_LISTP(v19))) FEtype_error_list(v19);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v16 = v19;
      }
      {
       cl_object v19;
       v19 = v18;
       if (ecl_unlikely(ECL_ATOM(v19))) FEtype_error_cons(v19);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       T0 = v19;
      }
      T1 = ecl_function_dispatch(cl_env_copy,v12)(1, v15);
      v18 = ecl_list1(T1);
      (ECL_CONS_CDR(T0)=v18,T0);
      goto L67;
L68:;
      v13x = ecl_cdr(v17);
      goto L59;
     }
    }
L59:;
    {
     cl_object v14;
     v14 = (ECL_SYM("CDR",200)->symbol.gfdef);
     {
      cl_object v15;
      cl_object v16;
      cl_object v17;
      {
       cl_object v18;
       v18 = v13x;
       if (ecl_unlikely(!ECL_LISTP(v18))) FEtype_error_list(v18);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v15 = v18;
      }
      v16 = ECL_NIL;
      v17 = v15;
      {
       cl_object v18;
       cl_object v19;
       v18 = ecl_list1(ECL_NIL);
       v19 = v18;
L95:;
       if (!(ecl_endp(v17))){
        goto L97;
       }
       goto L96;
L97:;
       v16 = ECL_CONS_CAR(v17);
       {
        cl_object v20;
        v20 = ECL_CONS_CDR(v17);
        if (ecl_unlikely(!ECL_LISTP(v20))) FEtype_error_list(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        v17 = v20;
       }
       {
        cl_object v20;
        v20 = v19;
        if (ecl_unlikely(ECL_ATOM(v20))) FEtype_error_cons(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        T0 = v20;
       }
       T1 = ecl_function_dispatch(cl_env_copy,v14)(1, v16);
       v19 = ecl_list1(T1);
       (ECL_CONS_CDR(T0)=v19,T0);
       goto L95;
L96:;
       v11output_host_type = ecl_cdr(v18);
       goto L86;
      }
     }
    }
L86:;
    {
     cl_object v14;
     v14 = (ECL_SYM("CAR",182)->symbol.gfdef);
     {
      cl_object v15;
      cl_object v16;
      cl_object v17;
      {
       cl_object v18;
       v18 = v13x;
       if (ecl_unlikely(!ECL_LISTP(v18))) FEtype_error_list(v18);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v15 = v18;
      }
      v16 = ECL_NIL;
      v17 = v15;
      {
       cl_object v18;
       cl_object v19;
       v18 = ecl_list1(ECL_NIL);
       v19 = v18;
L123:;
       if (!(ecl_endp(v17))){
        goto L125;
       }
       goto L124;
L125:;
       v16 = ECL_CONS_CAR(v17);
       {
        cl_object v20;
        v20 = ECL_CONS_CDR(v17);
        if (ecl_unlikely(!ECL_LISTP(v20))) FEtype_error_list(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        v17 = v20;
       }
       {
        cl_object v20;
        v20 = v19;
        if (ecl_unlikely(ECL_ATOM(v20))) FEtype_error_cons(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        T1 = v20;
       }
       T2 = ecl_function_dispatch(cl_env_copy,v14)(1, v16);
       v19 = ecl_list1(T2);
       (ECL_CONS_CDR(T1)=v19,T1);
       goto L123;
L124:;
       T0 = ecl_cdr(v18);
       goto L114;
      }
     }
    }
L114:;
    v5output_type = CONS(ECL_SYM("VALUES",899),T0);
    goto L47;
   }
L56:;
   {
    cl_object v14x;
    v14x = LC3555produce_type_pair(v5output_type);
    v5output_type = ecl_car(v14x);
    T0 = ecl_cdr(v14x);
    v11output_host_type = ecl_list1(T0);
   }
  }
L47:;
  if (!(ECL_LISTP(v3arguments))){
   goto L148;
  }
  if (!(ECL_LISTP(v4arg_types))){
   goto L148;
  }
  if (ECL_STRINGP(v6c_expression)) {
   goto L145;
  }
  goto L146;
L148:;
  goto L146;
L146:;
  T0 = CONS(ECL_SYM("C-INLINE",2106),v1args);
  (cl_env_copy->function=ecl_fdefinition(VV[7]))->cfun.entry(2, VV[22], T0) /*  CMPERR */;
L145:;
  {
   cl_fixnum v12;
   v12 = ecl_length(v3arguments);
   {
    cl_fixnum v13;
    v13 = ecl_length(v4arg_types);
    if ((v12)==(v13)) {
     goto L151;
    }
   }
  }
  T0 = CONS(ECL_SYM("C-INLINE",2106),v1args);
  (cl_env_copy->function=ecl_fdefinition(VV[7]))->cfun.entry(2, VV[23], T0) /*  CMPERR */;
L151:;
  {
   cl_object v12arguments;
   cl_object v13form;
   {
    cl_object v14;
    v14 = ecl_fdefinition(VV[10]);
    {
     cl_object v15;
     cl_object v16;
     cl_object v17;
     {
      cl_object v18;
      v18 = v3arguments;
      if (ecl_unlikely(!ECL_LISTP(v18))) FEtype_error_list(v18);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v15 = v18;
     }
     v16 = ECL_NIL;
     v17 = v15;
     {
      cl_object v18;
      cl_object v19;
      v18 = ecl_list1(ECL_NIL);
      v19 = v18;
L162:;
      if (!(ecl_endp(v17))){
       goto L164;
      }
      goto L163;
L164:;
      v16 = ECL_CONS_CAR(v17);
      {
       cl_object v20;
       v20 = ECL_CONS_CDR(v17);
       if (ecl_unlikely(!ECL_LISTP(v20))) FEtype_error_list(v20);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v17 = v20;
      }
      {
       cl_object v20;
       v20 = v19;
       if (ecl_unlikely(ECL_ATOM(v20))) FEtype_error_cons(v20);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       T0 = v20;
      }
      T1 = ecl_function_dispatch(cl_env_copy,v14)(1, v16);
      v19 = ecl_list1(T1);
      (ECL_CONS_CDR(T0)=v19,T0);
      goto L162;
L163:;
      v12arguments = ecl_cdr(v18);
      goto L153;
     }
    }
   }
L153:;
   v13form = (cl_env_copy->function=ecl_fdefinition(VV[24]))->cfun.entry(12, ECL_SYM("C-INLINE",2106), ECL_SYM("TYPE",1356), v5output_type, VV[3], v8side_effects, VV[25], v12arguments, v4arg_types, v11output_host_type, v6c_expression, v8side_effects, v10one_liner) /*  MAKE-C1FORM* */;
   {
    cl_object v14;
    cl_object v15form;
    cl_object v16;
    {
     cl_object v17;
     v17 = v12arguments;
     if (ecl_unlikely(!ECL_LISTP(v17))) FEtype_error_list(v17);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v14 = v17;
    }
    v15form = ECL_NIL;
    v16 = v14;
L187:;
    if (!(ecl_endp(v16))){
     goto L189;
    }
    goto L188;
L189:;
    v15form = ECL_CONS_CAR(v16);
    {
     cl_object v17;
     v17 = ECL_CONS_CDR(v16);
     if (ecl_unlikely(!ECL_LISTP(v17))) FEtype_error_list(v17);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v16 = v17;
    }
    T0 = (cl_env_copy->function=ecl_fdefinition(VV[26]))->cfun.entry(1, v15form) /*  C1FORM-NAME */;
    if (!((T0)==(ECL_SYM("VARIABLE",901)))){
     goto L197;
    }
    {
     cl_object v17var;
     T0 = (cl_env_copy->function=ecl_fdefinition(VV[28]))->cfun.entry(1, v15form) /*  C1FORM-ARGS */;
     v17var = ecl_car(T0);
     (cl_env_copy->function=ecl_fdefinition(VV[29]))->cfun.entry(2, v17var, v15form) /*  ADD-TO-SET-NODES */;
    }
L197:;
    goto L187;
L188:;
   }
   value0 = v13form;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3556c1c_inline_va(cl_narg narg, cl_object v14args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[0]);
 {
  return L3556c1c_inline(v14args);
 }
}
/* function definition for C1C-PROGN                                          */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3557c1c_progn(cl_object v1arguments)
{
 cl_object T0, T1;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v2variables;
  cl_object v3statements;
  cl_object v4form;
  {
   cl_object v5;
   v5 = ecl_fdefinition(VV[32]);
   {
    cl_object v6;
    cl_object v7;
    cl_object v8;
    {
     cl_object v9;
     {
      cl_object v10;
      v10 = v1arguments;
      {
       cl_object v11;
       v11 = v10;
       {
        bool v12;
        v12 = ECL_LISTP(v11);
        if (ecl_unlikely(!(v12)))
         FEwrong_type_argument(VV[35],v11);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v10)){
       goto L10;
      }
      {
       cl_object v11;
       v11 = ECL_CONS_CDR(v10);
       v1arguments = v11;
       v10 = ECL_CONS_CAR(v10);
      }
L10:;
      v9 = v10;
     }
     if (ecl_unlikely(!ECL_LISTP(v9))) FEtype_error_list(v9);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v6 = v9;
    }
    v7 = ECL_NIL;
    v8 = v6;
    {
     cl_object v9;
     cl_object v10;
     v9 = ecl_list1(ECL_NIL);
     v10 = v9;
L21:;
     if (!(ecl_endp(v8))){
      goto L23;
     }
     goto L22;
L23:;
     v7 = ECL_CONS_CAR(v8);
     {
      cl_object v11;
      v11 = ECL_CONS_CDR(v8);
      if (ecl_unlikely(!ECL_LISTP(v11))) FEtype_error_list(v11);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v8 = v11;
     }
     {
      cl_object v11;
      v11 = v10;
      if (ecl_unlikely(ECL_ATOM(v11))) FEtype_error_cons(v11);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      T0 = v11;
     }
     T1 = ecl_function_dispatch(cl_env_copy,v5)(1, v7);
     v10 = ecl_list1(T1);
     (ECL_CONS_CDR(T0)=v10,T0);
     goto L21;
L22:;
     v2variables = ecl_cdr(v9);
     goto L2;
    }
   }
  }
L2:;
  {
   cl_object v5;
   cl_object v6form;
   cl_object v7;
   {
    cl_object v8;
    v8 = v1arguments;
    if (ecl_unlikely(!ECL_LISTP(v8))) FEtype_error_list(v8);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v5 = v8;
   }
   v6form = ECL_NIL;
   v7 = v5;
   {
    cl_object v8;
    cl_object v9;
    v8 = ecl_list1(ECL_NIL);
    v9 = v8;
L47:;
    if (!(ecl_endp(v7))){
     goto L49;
    }
    goto L48;
L49:;
    v6form = ECL_CONS_CAR(v7);
    {
     cl_object v10;
     v10 = ECL_CONS_CDR(v7);
     if (ecl_unlikely(!ECL_LISTP(v10))) FEtype_error_list(v10);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v7 = v10;
    }
    {
     cl_object v10;
     v10 = v9;
     if (ecl_unlikely(ECL_ATOM(v10))) FEtype_error_cons(v10);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     T0 = v10;
    }
    if (!(ECL_STRINGP(v6form))){
     goto L63;
    }
    T1 = v6form;
    goto L62;
L63:;
    T1 = (cl_env_copy->function=ecl_fdefinition(VV[10]))->cfun.entry(1, v6form) /*  C1EXPR */;
L62:;
    v9 = ecl_list1(T1);
    (ECL_CONS_CDR(T0)=v9,T0);
    goto L47;
L48:;
    v3statements = ecl_cdr(v8);
    goto L39;
   }
  }
L39:;
  v4form = (cl_env_copy->function=ecl_fdefinition(VV[24]))->cfun.entry(8, ECL_SYM("C-PROGN",2107), ECL_SYM("TYPE",1356), ECL_NIL, VV[3], ECL_T, VV[25], v2variables, v3statements) /*  MAKE-C1FORM* */;
  (cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, v2variables, v4form) /*  ADD-TO-SET-NODES-OF-VAR-LIST */;
  value0 = v4form;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object L3557c1c_progn_va(cl_narg narg, cl_object v5arguments, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[31]);
 {
  return L3557c1c_progn(v5arguments);
 }
}
/* function definition for FOREIGN-ELT-TYPE-CODE                              */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3558foreign_elt_type_code(cl_object v1type)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v2x;
  {
   cl_object v3;
   cl_object v4;
   v3 = v1type;
   v4 = VV[39];
   v2x = ecl_assql(v3,v4);
  }
  if (Null(v2x)){
   goto L5;
  }
  value0 = ecl_cdr(v2x);
  cl_env_copy->nvalues = 1;
  return value0;
L5:;
  value0 = (cl_env_copy->function=ecl_fdefinition(VV[7]))->cfun.entry(2, VV[41], v1type) /*  CMPERR */;
  return value0;
 }
}
static cl_object L3558foreign_elt_type_code_va(cl_narg narg, cl_object v3type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[40]);
 {
  return L3558foreign_elt_type_code(v3type);
 }
}
/* function definition for C1-DEFCALLBACK                                     */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3559c1_defcallback(cl_object v1args)
{
 cl_object T0, T1, T2, T3, T4, T5, T6;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v2;
  cl_object v3name;
  cl_object v4return_type;
  cl_object v5arg_list;
  v2 = v1args;
  if (!(v2==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1args);
L4:;
  {
   cl_object v6;
   v6 = ecl_car(v2);
   v2 = ecl_cdr(v2);
   v3name = v6;
  }
  if (!(v2==ECL_NIL)){
   goto L10;
  }
  si_dm_too_few_arguments(v1args);
L10:;
  {
   cl_object v6;
   v6 = ecl_car(v2);
   v2 = ecl_cdr(v2);
   v4return_type = v6;
  }
  if (!(v2==ECL_NIL)){
   goto L16;
  }
  si_dm_too_few_arguments(v1args);
L16:;
  {
   cl_object v6;
   v6 = ecl_car(v2);
   v2 = ecl_cdr(v2);
   v5arg_list = v6;
  }
  if (!((v4return_type)==(ECL_NIL))){
   goto L22;
  }
  v4return_type = ECL_SYM("VOID",1424);
  goto L21;
L22:;
  if (!(ECL_CONSP(v4return_type))){
   goto L21;
  }
  {
   cl_object v6;
   v6 = ecl_car(v4return_type);
   if (!((v6)==(ECL_SYM("*",20)))){
    goto L31;
   }
   goto L28;
L31:;
   goto L29;
L29:;
   if (!((v6)==(ECL_SYM("ARRAY",98)))){
    goto L21;
   }
   goto L25;
L28:;
  }
L25:;
  v4return_type = ECL_SYM("POINTER-VOID",1420);
L21:;
  {
   cl_object v6;
   cl_object v7;
   cl_object v8;
   cl_object v9arg_types;
   cl_object v10arg_type_constants;
   cl_object v11arg_variables;
   {
    cl_fixnum v12;
    v12 = ecl_length(ecl_cmp_symbol_value(cl_env_copy,VV[47]));
    v6 = cl_format(3, ECL_NIL, VV[46], ecl_make_fixnum(v12));
   }
   if (!(ECL_CONSP(v3name))){
    goto L37;
   }
   v7 = ecl_car(v3name);
   goto L36;
L37:;
   v7 = v3name;
L36:;
   if (!(ECL_CONSP(v3name))){
    goto L40;
   }
   v8 = ecl_cadr(v3name);
   goto L39;
L40:;
   v8 = ECL_SYM("CDECL",1809);
L39:;
   v9arg_types = ECL_NIL;
   v10arg_type_constants = ECL_NIL;
   v11arg_variables = ECL_NIL;
   {
    cl_object v12;
    v12 = v5arg_list;
    goto L49;
L48:;
    {
     cl_object v13i;
     v13i = ecl_car(v12);
     if (ECL_CONSP(v13i)) {
      goto L53;
     }
     (cl_env_copy->function=ecl_fdefinition(VV[7]))->cfun.entry(2, VV[48], v13i) /*  CMPERR */;
L53:;
     T0 = ecl_car(v13i);
     v11arg_variables = CONS(T0,v11arg_variables);
     {
      cl_object v14type;
      v14type = ecl_cadr(v13i);
      v9arg_types = CONS(v14type,v9arg_types);
      T0 = L3558foreign_elt_type_code(v14type);
      v10arg_type_constants = CONS(T0,v10arg_type_constants);
     }
    }
    v12 = ecl_cdr(v12);
L49:;
    if (Null(v12)){
     goto L64;
    }
    goto L48;
L64:;
   }
   T0 = (cl_env_copy->function=ecl_fdefinition(VV[49]))->cfun.entry(1, v7) /*  ADD-OBJECT */;
   T1 = L3558foreign_elt_type_code(v4return_type);
   T2 = cl_reverse(v9arg_types);
   T3 = cl_reverse(v10arg_type_constants);
   T4 = cl_list(8, v7, v6, T0, v4return_type, T1, T2, T3, v8);
   T5 = CONS(T4,ecl_cmp_symbol_value(cl_env_copy,VV[47]));
   ecl_cmp_setq(cl_env_copy,VV[47],T5);
   T0 = cl_reverse(v11arg_variables);
   T1 = cl_listX(4, ECL_SYM("DEFUN",291), v7, T0, v2);
   T2 = cl_list(2, ECL_SYM("QUOTE",682), v7);
   T3 = cl_format(3, ECL_NIL, VV[52], v6);
   T4 = cl_listX(6, ECL_SYM("C-INLINE",2106), VV[50], VV[51], ECL_SYM("OBJECT",1315), T3, VV[53]);
   T5 = cl_list(4, ECL_SYM("PUT-SYSPROP",1150), T2, ECL_SYM("CALLBACK",1667), T4);
   T6 = cl_list(3, ECL_SYM("PROGN",674), T1, T5);
   value0 = (cl_env_copy->function=ecl_fdefinition(VV[10]))->cfun.entry(1, T6) /*  C1EXPR */;
   return value0;
  }
 }
}
static cl_object L3559c1_defcallback_va(cl_narg narg, cl_object v12args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[43]);
 {
  return L3559c1_defcallback(v12args);
 }
}
/* local function PRODUCE-TYPE-PAIR                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3555produce_type_pair(cl_object v1type)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (Null((cl_env_copy->function=ecl_fdefinition(VV[12]))->cfun.entry(1, v1type) /*  LISP-TYPE-P */)){
  goto L2;
 }
 T0 = (cl_env_copy->function=ecl_fdefinition(VV[13]))->cfun.entry(1, v1type) /*  LISP-TYPE->HOST-TYPE */;
 value0 = CONS(v1type,T0);
 cl_env_copy->nvalues = 1;
 return value0;
L2:;
 T0 = (cl_env_copy->function=ecl_fdefinition(VV[14]))->cfun.entry(1, v1type) /*  HOST-TYPE->LISP-TYPE */;
 value0 = CONS(T0,v1type);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object LC3555produce_type_pair_va(cl_narg narg, cl_object v2type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[11]);
 {
  return LC3555produce_type_pair(v2type);
 }
}
#include "cmp/cmppass1-ffi.data"
#ifdef __cplusplus
extern "C"
#endif

ECL_DLLEXPORT void _ecl57CQqLXIG7Vn9_dJV0M881(cl_object flag)
{
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 cl_object *VVtemp;
 if (flag != OBJNULL){
 Cblock = flag;
 #ifndef ECL_DYNAMIC_VV
 flag->cblock.data = VV;
 #endif
 flag->cblock.data_size = VM;
 flag->cblock.temp_data_size = VMtemp;
 flag->cblock.data_text = compiler_data_text;
 flag->cblock.cfuns_size = compiler_cfuns_size;
 flag->cblock.cfuns = compiler_cfuns;
 flag->cblock.source = ecl_make_constant_base_string("SRC:CMP;CMPPASS1-FFI.LSP.NEWEST",-1);
 return;}
 #ifdef ECL_DYNAMIC_VV
 VV = Cblock->cblock.data;
 #endif
 Cblock->cblock.data_text = (const cl_object *)"@EcLtAg:_ecl57CQqLXIG7Vn9_dJV0M881@";
 VVtemp = Cblock->cblock.temp_data;
 ECL_DEFINE_SETF_FUNCTIONS
/* MAKE-LOAD-FORMs                                                            */
/* TOP-LEVEL-FORMs                                                            */
  si_select_package(_ecl_static_0);
  ecl_cmp_defun(VV[55]);                          /*  C1C-INLINE              */
  ecl_cmp_defun(VV[56]);                          /*  C1C-PROGN               */
  si_Xmake_constant(VV[38], VV[39]);
  ecl_cmp_defun(VV[57]);                          /*  FOREIGN-ELT-TYPE-CODE   */
  ecl_cmp_defun(VV[58]);                          /*  C1-DEFCALLBACK          */
}
