% compiler: GNU Prolog 1.1.1 (Oct 18 1999)
% file    : code_gen.pl
% date    : 10 22 1999
% time    : 14:54:26


file_name('/home/lima/diaz/GNU-Prolog/src/Pl2Wam/code_gen.pl').


predicate(code_generation/5,25,static,private,user,[
    allocate(3),
    get_variable(y(0),1),
    get_variable(y(1),2),
    put_atom(last_pred,1),
    put_atom(f,2),
    call_c_test('Blt_G_Assign',[1,2]),
    put_value(x(3),2),
    put_value(y(1),1),
    put_variable(y(2),3),
    call(generate_head/5),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(2),2),
    deallocate,
    execute(generate_body/3)]).


predicate(generate_head/5,33,static,private,user,[
    switch_on_term(1,fail,fail,fail,1),

label(1),
    allocate(9),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_structure(p/3,0),
    unify_void(1),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_structure((/)/2,0),
    unify_void(1),
    unify_variable(x(1)),
    put_integer(0,0),
    put_variable(y(5),2),
    call(gen_list_integers/3),
    put_value(y(0),0),
    put_value(y(5),1),
    put_variable(y(6),2),
    put_variable(y(7),3),
    call('$generate_head/5_$aux1'/4),
    put_value(y(6),0),
    put_value(y(7),1),
    put_value(y(3),2),
    put_variable(y(8),3),
    call(gen_unif_arg_lst/4),
    put_value(y(1),0),
    put_value(y(4),1),
    put_value(y(2),2),
    put_unsafe_value(y(8),3),
    deallocate,
    execute('$generate_head/5_$aux2'/4)]).


predicate('$generate_head/5_$aux2'/4,33,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(1,5),
    call_c_test('Blt_Fast_Gt',[0,5]),
    cut(x(4)),
    get_list(1),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(allocate/1,0),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    get_value(x(3),1),
    proceed]).


predicate('$generate_head/5_$aux1'/4,33,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    put_atom(reorder,5),
    put_atom(t,6),
    call_c_test('Blt_G_Read',[5,6]),
    cut(x(4)),
    execute(reorder_head_arg_lst/4),

label(1),
    trust_me_else_fail,
    get_value(x(0),2),
    get_value(x(1),3),
    proceed]).


predicate(reorder_head_arg_lst/4,45,static,private,user,[
    allocate(12),
    get_variable(y(0),2),
    get_variable(y(1),3),
    put_variable(y(2),2),
    put_variable(y(3),3),
    put_variable(y(4),4),
    put_variable(y(5),5),
    put_variable(y(6),6),
    put_variable(y(7),7),
    call(split_arg_lst/8),
    put_value(y(6),0),
    put_variable(y(8),1),
    call(reverse/2),
    put_value(y(7),0),
    put_variable(y(9),1),
    call(reverse/2),
    put_value(y(2),0),
    put_value(y(8),1),
    put_variable(y(10),2),
    call(append/3),
    put_value(y(10),0),
    put_value(y(4),1),
    put_value(y(0),2),
    call(append/3),
    put_value(y(3),0),
    put_value(y(9),1),
    put_variable(y(11),2),
    call(append/3),
    put_unsafe_value(y(11),0),
    put_unsafe_value(y(5),1),
    put_value(y(1),2),
    deallocate,
    execute(append/3)]).


predicate(generate_body/3,57,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_list(2),
    unify_atom(proceed),
    unify_nil,
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(7),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(4)),
    get_structure(p/3,0),
    unify_variable(y(0)),
    unify_variable(x(0)),
    unify_variable(y(3)),
    get_structure((/)/2,0),
    unify_variable(y(1)),
    unify_variable(y(2)),
    get_variable(y(5),1),
    get_variable(y(6),2),
    put_value(y(0),0),
    put_value(y(5),1),
    call('$generate_body/3_$aux1'/2),
    put_value(y(1),0),
    put_value(y(2),1),
    put_value(y(3),2),
    put_value(y(0),3),
    put_value(y(4),4),
    put_value(y(5),5),
    put_value(y(6),6),
    deallocate,
    execute(generate_body1/7)]).


predicate('$generate_body/3_$aux1'/2,59,static,private,user,[
    load_cut_level(2),
    try_me_else(1),
    get_value(x(1),0),
    cut(x(2)),
    put_atom(last_pred,0),
    put_atom(t,1),
    call_c_test('Blt_G_Assign',[0,1]),
    proceed,

label(1),
    trust_me_else_fail,
    proceed]).


predicate(generate_body1/7,65,static,private,user,[
    load_cut_level(7),
    try_me_else(2),
    switch_on_term(1,1,fail,fail,fail),

label(1),
    get_atom(fail,0),
    get_integer(0,1),
    get_list(6),
    unify_atom(fail),
    unify_nil,
    cut(x(7)),
    proceed,

label(2),
    retry_me_else(3),
    allocate(9),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_variable(y(5),5),
    get_variable(y(6),6),
    get_variable(y(7),7),
    put_value(y(0),0),
    put_value(y(1),1),
    call(inline_predicate/2),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_variable(y(8),3),
    put_value(y(6),4),
    call(gen_inline_pred/5),
    cut(y(7)),
    put_value(y(4),0),
    put_value(y(3),1),
    put_unsafe_value(y(8),2),
    put_value(y(5),3),
    deallocate,
    execute('$generate_body1/7_$aux1'/4),

label(3),
    trust_me_else_fail,
    allocate(11),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_variable(y(5),5),
    get_variable(y(6),6),
    put_integer(0,0),
    put_value(y(1),1),
    put_variable(y(7),2),
    call(gen_list_integers/3),
    put_value(y(2),0),
    put_value(y(7),1),
    put_variable(y(8),2),
    put_variable(y(9),3),
    call('$generate_body1/7_$aux2'/4),
    put_value(y(8),0),
    put_value(y(9),1),
    put_variable(y(10),2),
    put_value(y(6),3),
    call(gen_load_arg_lst/4),
    put_value(y(4),0),
    put_value(y(3),1),
    put_unsafe_value(y(10),2),
    put_value(y(0),3),
    put_value(y(1),4),
    put_value(y(5),5),
    deallocate,
    execute('$generate_body1/7_$aux3'/6)]).


predicate('$generate_body1/7_$aux3'/6,77,static,private,user,[
    load_cut_level(6),
    try_me_else(2),
    switch_on_term(1,1,fail,fail,fail),

label(1),
    get_nil(0),
    cut(x(6)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    put_value(x(4),3),
    execute('$generate_body1/7_$aux4'/4),

label(2),
    trust_me_else_fail,
    get_list(2),
    unify_variable(x(1)),
    unify_variable(x(2)),
    get_structure(call/1,1),
    unify_structure((/)/2),
    unify_local_value(x(3)),
    unify_local_value(x(4)),
    put_value(x(5),1),
    execute(generate_body/3)]).


predicate('$generate_body1/7_$aux4'/4,77,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(1,5),
    call_c_test('Blt_Fast_Gt',[0,5]),
    cut(x(4)),
    get_list(1),
    unify_atom(deallocate),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_structure(execute/1,0),
    unify_structure((/)/2),
    unify_local_value(x(2)),
    unify_local_value(x(3)),
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_variable(x(0)),
    unify_nil,
    get_structure(execute/1,0),
    unify_structure((/)/2),
    unify_local_value(x(2)),
    unify_local_value(x(3)),
    proceed]).


predicate('$generate_body1/7_$aux2'/4,77,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    put_atom(reorder,5),
    put_atom(t,6),
    call_c_test('Blt_G_Read',[5,6]),
    cut(x(4)),
    execute(reorder_body_arg_lst/4),

label(1),
    trust_me_else_fail,
    get_value(x(0),2),
    get_value(x(1),3),
    proceed]).


predicate('$generate_body1/7_$aux1'/4,68,static,private,user,[
    load_cut_level(4),
    try_me_else(2),
    switch_on_term(1,1,fail,fail,fail),

label(1),
    get_nil(0),
    cut(x(4)),
    put_value(x(1),0),
    put_value(x(2),1),
    execute('$generate_body1/7_$aux5'/2),

label(2),
    trust_me_else_fail,
    put_value(x(3),1),
    execute(generate_body/3)]).


predicate('$generate_body1/7_$aux5'/2,68,static,private,user,[
    load_cut_level(2),
    try_me_else(1),
    math_fast_load_value(x(0),0),
    put_integer(1,3),
    call_c_test('Blt_Fast_Gt',[0,3]),
    cut(x(2)),
    get_list(1),
    unify_atom(deallocate),
    unify_list,
    unify_atom(proceed),
    unify_nil,
    proceed,

label(1),
    trust_me_else_fail,
    get_list(1),
    unify_atom(proceed),
    unify_nil,
    proceed]).


predicate(reorder_body_arg_lst/4,92,static,private,user,[
    allocate(10),
    get_variable(y(0),2),
    get_variable(y(1),3),
    put_variable(y(2),2),
    put_variable(y(3),3),
    put_variable(y(4),4),
    put_variable(y(5),5),
    put_variable(y(6),6),
    put_variable(y(7),7),
    call(split_arg_lst/8),
    put_value(y(4),0),
    put_value(y(6),1),
    put_variable(y(8),2),
    call(append/3),
    put_value(y(8),0),
    put_value(y(2),1),
    put_value(y(0),2),
    call(append/3),
    put_value(y(5),0),
    put_value(y(7),1),
    put_variable(y(9),2),
    call(append/3),
    put_unsafe_value(y(9),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    deallocate,
    execute(append/3)]).


predicate(split_arg_lst/8,107,static,private,user,[
    load_cut_level(8),
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_nil(2),
    get_nil(3),
    get_nil(4),
    get_nil(5),
    get_nil(6),
    get_nil(7),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(9),
    get_variable(x(11),7),
    get_variable(x(7),5),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(12)),
    unify_variable(y(1)),
    get_variable(y(2),8),
    put_value(x(2),1),
    put_value(x(4),5),
    put_value(x(6),9),
    put_variable(y(3),2),
    put_variable(y(4),4),
    put_variable(y(5),6),
    put_variable(y(6),8),
    put_variable(y(7),10),
    put_variable(y(8),13),
    call('$split_arg_lst/8_$aux1'/14),
    cut(y(2)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(3),2),
    put_unsafe_value(y(4),3),
    put_unsafe_value(y(5),4),
    put_unsafe_value(y(6),5),
    put_unsafe_value(y(7),6),
    put_unsafe_value(y(8),7),
    deallocate,
    execute(split_arg_lst/8)]).


predicate('$split_arg_lst/8_$aux1'/14,109,static,private,user,[
    try_me_else(2),
    switch_on_term(1,fail,fail,fail,1),

label(1),
    get_structure(var/2,0),
    unify_variable(x(14)),
    unify_void(1),
    get_structure(x/1,14),
    unify_variable(x(14)),
    put_atom(void,15),
    call_c_test('Blt_Term_Neq',[14,15]),
    get_value(x(2),1),
    get_value(x(4),3),
    get_value(x(6),5),
    get_value(x(8),7),
    get_list(9),
    unify_local_value(x(0)),
    unify_local_value(x(10)),
    get_list(11),
    unify_local_value(x(12)),
    unify_local_value(x(13)),
    proceed,

label(2),
    retry_me_else(3),
    allocate(14),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_variable(y(5),5),
    get_variable(y(6),6),
    get_variable(y(7),7),
    get_variable(y(8),8),
    get_variable(y(9),9),
    get_variable(y(10),10),
    get_variable(y(11),11),
    get_variable(y(12),12),
    get_variable(y(13),13),
    put_value(y(0),0),
    get_structure(stc/3,0),
    unify_void(2),
    unify_variable(x(0)),
    call(has_temporaries/1),
    put_value(y(1),0),
    get_value(y(2),0),
    put_value(y(3),0),
    get_value(y(4),0),
    put_value(y(5),0),
    get_list(0),
    unify_local_value(y(0)),
    unify_local_value(y(6)),
    put_value(y(7),0),
    get_list(0),
    unify_local_value(y(12)),
    unify_local_value(y(8)),
    put_value(y(9),0),
    get_value(y(10),0),
    put_value(y(11),0),
    get_value(y(13),0),
    deallocate,
    proceed,

label(3),
    trust_me_else_fail,
    get_list(1),
    unify_local_value(x(0)),
    unify_local_value(x(2)),
    get_list(3),
    unify_local_value(x(12)),
    unify_local_value(x(4)),
    get_value(x(6),5),
    get_value(x(8),7),
    get_value(x(10),9),
    get_value(x(13),11),
    proceed]).


predicate(has_temporaries/1,129,static,private,user,[
    load_cut_level(1),
    switch_on_term(1,fail,fail,1,fail),

label(1),
    allocate(1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(x(2)),
    get_variable(y(0),1),
    put_value(x(2),1),
    call('$has_temporaries/1_$aux1'/2),
    cut(y(0)),
    deallocate,
    proceed]).


predicate('$has_temporaries/1_$aux1'/2,129,static,private,user,[
    try_me_else(6),
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(stc/3,5)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_structure(x/1,0),
    unify_variable(x(0)),
    put_atom(void,1),
    call_c_test('Blt_Term_Neq',[0,1]),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_structure(stc/3,0),
    unify_void(2),
    unify_variable(x(0)),
    execute(has_temporaries/1),

label(6),
    trust_me_else_fail,
    put_value(x(1),0),
    execute(has_temporaries/1)]).


predicate(gen_unif_arg_lst/4,142,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(gen_unif_arg/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_unif_arg_lst/4)]).


predicate(gen_unif_arg/4,153,static,private,user,[
    switch_on_term(2,11,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(atm/1,5),(int/1,7),(flt/1,9),(stc/3,13)]),

label(2),
    try_me_else(4),

label(3),
    get_variable(x(5),3),
    get_variable(x(3),2),
    get_variable(x(4),1),
    get_structure(var/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    put_value(x(5),2),
    execute('$gen_unif_arg/4_$aux1'/5),

label(4),
    retry_me_else(6),

label(5),
    get_structure(atm/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(get_atom/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(int/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(get_integer/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_structure(flt/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(get_float/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(nil,0),
    get_list(3),
    unify_variable(x(0)),
    unify_local_value(x(2)),
    get_structure(get_nil/1,0),
    unify_local_value(x(1)),
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    allocate(7),
    get_variable(y(1),2),
    get_variable(x(4),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(y(0)),
    get_list(3),
    unify_variable(x(2)),
    unify_variable(y(2)),
    put_value(x(4),3),
    call('$gen_unif_arg/4_$aux2'/4),
    put_value(y(0),0),
    put_atom(head,1),
    put_variable(y(3),2),
    put_variable(y(4),3),
    put_variable(y(5),4),
    call(flat_stc_arg_lst/5),
    put_value(y(3),0),
    put_variable(y(6),1),
    put_value(y(2),2),
    call(gen_subterm_arg_lst/3),
    put_unsafe_value(y(4),0),
    put_unsafe_value(y(5),1),
    put_value(y(1),2),
    put_unsafe_value(y(6),3),
    deallocate,
    execute(gen_unif_arg_lst/4)]).


predicate('$gen_unif_arg/4_$aux2'/4,169,static,private,user,[
    load_cut_level(4),
    try_me_else(2),
    switch_on_term(1,1,fail,fail,fail),

label(1),
    get_atom('.',0),
    get_integer(2,1),
    cut(x(4)),
    get_structure(get_list/1,2),
    unify_local_value(x(3)),
    proceed,

label(2),
    trust_me_else_fail,
    get_structure(get_structure/2,2),
    unify_variable(x(2)),
    unify_local_value(x(3)),
    get_structure((/)/2,2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    proceed]).


predicate('$gen_unif_arg/4_$aux1'/5,153,static,private,user,[
    load_cut_level(5),
    try_me_else(1),
    get_variable(x(6),3),
    get_variable(x(3),0),
    call_c_test('Blt_Var',[3]),
    cut(x(5)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(6),2),
    execute('$gen_unif_arg/4_$aux3'/5),

label(1),
    trust_me_else_fail,
    get_list(2),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(get_value/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(4)),
    proceed]).


predicate('$gen_unif_arg/4_$aux3'/5,153,static,private,user,[
    load_cut_level(5),
    try_me_else(1),
    put_structure(x/1,3),
    unify_atom(void),
    call_c_test('Blt_Term_Eq',[0,3]),
    cut(x(5)),
    get_value(x(2),1),
    proceed,

label(1),
    trust_me_else_fail,
    get_atom(not_in_cur_env,3),
    get_list(1),
    unify_variable(x(1)),
    unify_local_value(x(2)),
    get_structure(get_variable/2,1),
    unify_local_value(x(0)),
    unify_local_value(x(4)),
    proceed]).


predicate(gen_load_arg_lst/4,181,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_load_arg_lst/4)]).


predicate(gen_load_arg/4,192,static,private,user,[
    switch_on_term(2,11,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(atm/1,5),(int/1,7),(flt/1,9),(stc/3,13)]),

label(2),
    try_me_else(4),

label(3),
    get_variable(x(5),2),
    get_variable(x(4),1),
    get_structure(var/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(2)),
    unify_local_value(x(5)),
    put_value(x(4),3),
    execute('$gen_load_arg/4_$aux1'/4),

label(4),
    retry_me_else(6),

label(5),
    get_structure(atm/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(put_atom/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(int/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(put_integer/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_structure(flt/1,0),
    unify_variable(x(0)),
    get_list(3),
    unify_variable(x(3)),
    unify_local_value(x(2)),
    get_structure(put_float/2,3),
    unify_value(x(0)),
    unify_local_value(x(1)),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(nil,0),
    get_list(3),
    unify_variable(x(0)),
    unify_local_value(x(2)),
    get_structure(put_nil/1,0),
    unify_local_value(x(1)),
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    allocate(8),
    get_variable(y(1),2),
    get_variable(y(2),3),
    get_variable(x(3),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(y(0)),
    put_variable(y(3),2),
    call('$gen_load_arg/4_$aux2'/4),
    put_value(y(0),0),
    put_atom(body,1),
    put_variable(y(4),2),
    put_variable(y(5),3),
    put_variable(y(6),4),
    call(flat_stc_arg_lst/5),
    put_value(y(5),0),
    put_value(y(6),1),
    put_list(2),
    unify_local_value(y(3)),
    unify_variable(y(7)),
    put_value(y(2),3),
    call(gen_load_arg_lst/4),
    put_unsafe_value(y(4),0),
    put_value(y(1),1),
    put_value(y(7),2),
    deallocate,
    execute(gen_subterm_arg_lst/3)]).


predicate('$gen_load_arg/4_$aux2'/4,211,static,private,user,[
    load_cut_level(4),
    try_me_else(2),
    switch_on_term(1,1,fail,fail,fail),

label(1),
    get_atom('.',0),
    get_integer(2,1),
    cut(x(4)),
    get_structure(put_list/1,2),
    unify_local_value(x(3)),
    proceed,

label(2),
    trust_me_else_fail,
    get_structure(put_structure/2,2),
    unify_variable(x(2)),
    unify_local_value(x(3)),
    get_structure((/)/2,2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    proceed]).


predicate('$gen_load_arg/4_$aux1'/4,192,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    get_variable(x(5),3),
    get_variable(x(3),0),
    call_c_test('Blt_Var',[3]),
    cut(x(4)),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(5),2),
    execute('$gen_load_arg/4_$aux3'/4),

label(1),
    retry_me_else(3),
    switch_on_term(2,2,fail,fail,fail),

label(2),
    get_atom(unsafe,0),
    put_atom(last_pred,0),
    put_atom(t,5),
    call_c_test('Blt_G_Read',[0,5]),
    cut(x(4)),
    get_structure(put_unsafe_value/2,2),
    unify_local_value(x(1)),
    unify_local_value(x(3)),
    proceed,

label(3),
    trust_me_else_fail,
    get_structure(put_value/2,2),
    unify_local_value(x(1)),
    unify_local_value(x(3)),
    proceed]).


predicate('$gen_load_arg/4_$aux3'/4,192,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    put_structure(x/1,3),
    unify_atom(void),
    call_c_test('Blt_Term_Eq',[0,3]),
    cut(x(4)),
    get_structure(put_void/1,1),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    allocate(3),
    get_variable(y(0),0),
    get_variable(y(1),1),
    get_variable(y(2),2),
    put_value(x(3),1),
    put_value(y(0),0),
    call('$gen_load_arg/4_$aux4'/2),
    put_value(y(1),0),
    get_structure(put_variable/2,0),
    unify_local_value(y(0)),
    unify_local_value(y(2)),
    deallocate,
    proceed]).


predicate('$gen_load_arg/4_$aux4'/2,192,static,private,user,[
    load_cut_level(2),
    try_me_else(2),
    switch_on_term(1,fail,fail,fail,1),

label(1),
    get_structure(x/1,0),
    unify_void(1),
    cut(x(2)),
    get_atom(in_heap,1),
    proceed,

label(2),
    trust_me_else_fail,
    get_atom(unsafe,1),
    proceed]).


predicate(flat_stc_arg_lst/5,223,static,private,user,[
    load_cut_level(5),
    switch_on_term(2,3,fail,1,fail),

label(1),
    try(5),
    retry(7),
    trust(9),

label(2),
    try_me_else(4),

label(3),
    get_nil(0),
    get_nil(2),
    get_nil(3),
    get_nil(4),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    allocate(6),
    get_variable(y(1),1),
    get_variable(y(3),3),
    get_variable(y(4),4),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(2),
    unify_value(x(0)),
    unify_variable(y(2)),
    get_variable(y(5),5),
    call(simple_stc_arg/1),
    cut(y(5)),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_value(y(3),3),
    put_value(y(4),4),
    deallocate,
    execute(flat_stc_arg_lst/5),

label(6),
    retry_me_else(8),

label(7),
    get_list(0),
    unify_variable(x(7)),
    unify_nil,
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    get_structure(stc/3,0),
    unify_variable(x(6)),
    unify_variable(x(0)),
    unify_variable(x(2)),
    put_atom(opt_last_subterm,8),
    put_atom(t,9),
    call_c_test('Blt_G_Read',[8,9]),
    get_structure(stc/3,7),
    unify_value(x(6)),
    unify_value(x(0)),
    unify_variable(x(0)),
    cut(x(5)),
    execute(flat_stc_arg_lst/5),

label(8),
    trust_me_else_fail,

label(9),
    allocate(5),
    get_variable(y(1),1),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(2),
    unify_variable(x(1)),
    unify_variable(y(2)),
    get_list(3),
    unify_value(x(0)),
    unify_variable(y(3)),
    get_list(4),
    unify_variable(x(2)),
    unify_variable(y(4)),
    put_value(y(1),0),
    call('$flat_stc_arg_lst/5_$aux1'/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_value(y(3),3),
    put_value(y(4),4),
    deallocate,
    execute(flat_stc_arg_lst/5)]).


predicate('$flat_stc_arg_lst/5_$aux1'/3,236,static,private,user,[
    load_cut_level(3),
    try_me_else(2),
    switch_on_term(1,1,fail,fail,fail),

label(1),
    get_atom(head,0),
    cut(x(3)),
    get_structure(var/2,1),
    unify_variable(x(0)),
    unify_void(1),
    get_structure(x/1,0),
    unify_local_value(x(2)),
    proceed,

label(2),
    trust_me_else_fail,
    get_structure(var/2,1),
    unify_variable(x(0)),
    unify_atom(in_heap),
    get_structure(x/1,0),
    unify_local_value(x(2)),
    proceed]).


predicate(simple_stc_arg/1,243,static,private,user,[
    switch_on_term(2,9,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(atm/1,5),(int/1,7)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(var/2,0),
    unify_void(2),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_structure(atm/1,0),
    unify_void(1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(int/1,0),
    unify_void(1),
    proceed,

label(8),
    trust_me_else_fail,

label(9),
    get_atom(nil,0),
    proceed]).


predicate(gen_subterm_arg_lst/3,256,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_value(x(2),1),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(6),
    get_list(0),
    unify_variable(y(0)),
    unify_variable(y(1)),
    get_variable(y(2),1),
    get_variable(y(3),2),
    put_list(0),
    unify_value(y(0)),
    unify_value(y(1)),
    put_integer(0,1),
    put_variable(y(4),2),
    put_variable(y(5),3),
    call(gen_compte_void/4),
    put_unsafe_value(y(4),0),
    put_value(y(0),1),
    put_value(y(3),2),
    put_value(y(1),3),
    put_value(y(2),4),
    put_unsafe_value(y(5),5),
    deallocate,
    execute('$gen_subterm_arg_lst/3_$aux1'/6)]).


predicate('$gen_subterm_arg_lst/3_$aux1'/6,258,static,private,user,[
    load_cut_level(6),
    try_me_else(2),
    switch_on_term(1,fail,1,fail,fail),

label(1),
    allocate(3),
    get_variable(y(0),3),
    get_variable(y(1),4),
    get_integer(0,0),
    cut(x(6)),
    put_value(x(1),0),
    put_variable(y(2),1),
    call(gen_subterm_arg/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_unsafe_value(y(2),2),
    deallocate,
    execute(gen_subterm_arg_lst/3),

label(2),
    trust_me_else_fail,
    get_list(2),
    unify_variable(x(1)),
    unify_variable(x(2)),
    get_structure(unify_void/1,1),
    unify_local_value(x(0)),
    put_value(x(5),0),
    put_value(x(4),1),
    execute(gen_subterm_arg_lst/3)]).


predicate(gen_compte_void/4,269,static,private,user,[
    load_cut_level(4),
    try_me_else(2),
    switch_on_term(1,fail,fail,1,fail),

label(1),
    get_list(0),
    unify_variable(x(5)),
    unify_variable(x(0)),
    get_structure(var/2,5),
    unify_variable(x(5)),
    unify_void(1),
    get_structure(x/1,5),
    unify_variable(x(5)),
    put_atom(void,6),
    call_c_test('Blt_Term_Eq',[5,6]),
    cut(x(4)),
    math_fast_load_value(x(1),1),
    function('Fct_Fast_Inc',1,[1]),
    execute(gen_compte_void/4),

label(2),
    trust_me_else_fail,
    get_value(x(2),1),
    get_value(x(3),0),
    proceed]).


predicate(gen_subterm_arg/3,280,static,private,user,[
    switch_on_term(2,9,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(atm/1,5),(int/1,7),(stc/3,11)]),

label(2),
    try_me_else(4),

label(3),
    get_variable(x(4),1),
    get_structure(var/2,0),
    unify_variable(x(3)),
    unify_variable(x(0)),
    get_list(2),
    unify_variable(x(1)),
    unify_local_value(x(4)),
    put_value(x(3),2),
    execute('$gen_subterm_arg/3_$aux1'/3),

label(4),
    retry_me_else(6),

label(5),
    get_structure(atm/1,0),
    unify_variable(x(0)),
    get_list(2),
    unify_variable(x(2)),
    unify_local_value(x(1)),
    get_structure(unify_atom/1,2),
    unify_value(x(0)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_structure(int/1,0),
    unify_variable(x(0)),
    get_list(2),
    unify_variable(x(2)),
    unify_local_value(x(1)),
    get_structure(unify_integer/1,2),
    unify_value(x(0)),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(nil,0),
    get_list(2),
    unify_atom(unify_nil),
    unify_local_value(x(1)),
    proceed,

label(10),
    trust_me_else_fail,

label(11),
    allocate(3),
    get_variable(y(1),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(y(0)),
    get_list(2),
    unify_variable(x(2)),
    unify_variable(y(2)),
    call('$gen_subterm_arg/3_$aux2'/3),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    deallocate,
    execute(gen_subterm_arg_lst/3)]).


predicate('$gen_subterm_arg/3_$aux2'/3,292,static,private,user,[
    load_cut_level(3),
    try_me_else(2),
    switch_on_term(1,1,fail,fail,fail),

label(1),
    get_atom('.',0),
    get_integer(2,1),
    cut(x(3)),
    get_atom(unify_list,2),
    proceed,

label(2),
    trust_me_else_fail,
    get_structure(unify_structure/1,2),
    unify_structure((/)/2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    proceed]).


predicate('$gen_subterm_arg/3_$aux1'/3,280,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    call_c_test('Blt_Var',[0]),
    cut(x(3)),
    get_atom(in_heap,0),
    get_structure(unify_variable/1,1),
    unify_local_value(x(2)),
    proceed,

label(1),
    retry_me_else(3),
    switch_on_term(2,2,fail,fail,fail),

label(2),
    get_atom(in_heap,0),
    cut(x(3)),
    get_structure(unify_value/1,1),
    unify_local_value(x(2)),
    proceed,

label(3),
    trust_me_else_fail,
    get_structure(unify_local_value/1,1),
    unify_local_value(x(2)),
    proceed]).


predicate(gen_list_integers/3,300,static,private,user,[
    execute('$gen_list_integers/3_$aux1'/3)]).


predicate('$gen_list_integers/3_$aux1'/3,300,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    math_fast_load_value(x(0),4),
    math_fast_load_value(x(1),5),
    call_c_test('Blt_Fast_Lt',[4,5]),
    cut(x(3)),
    get_list(2),
    unify_local_value(x(0)),
    unify_variable(x(2)),
    math_fast_load_value(x(0),0),
    function('Fct_Fast_Inc',0,[0]),
    execute(gen_list_integers/3),

label(1),
    trust_me_else_fail,
    get_nil(2),
    proceed]).


predicate(special_form/2,312,static,private,user,[
    switch_on_term(1,fail,fail,fail,1),

label(1),
    get_structure(put_variable/2,0),
    unify_variable(x(2)),
    unify_variable(x(0)),
    get_structure(x/1,2),
    unify_value(x(0)),
    get_structure(put_void/1,1),
    unify_value(x(0)),
    proceed]).


predicate(dummy_instruction/1,317,static,private,user,[
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(get_variable/2,3),(put_value/2,5)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(get_variable/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_structure(x/1,1),
    unify_value(x(0)),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_structure(put_value/2,0),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_structure(x/1,1),
    unify_value(x(0)),
    proceed]).


predicate(equal/4,354,static,private,user,[
    try_me_else(1),
    get_value(x(3),2),
    call_c_test('Blt_Term_Eq',[0,1]),
    proceed,

label(1),
    retry_me_else(8),
    switch_on_term(4,fail,fail,fail,2),

label(2),
    switch_on_structure([(var/2,3)]),

label(3),
    try(5),
    trust(7),

label(4),
    try_me_else(6),

label(5),
    get_value(x(3),2),
    get_structure(var/2,0),
    unify_variable(x(2)),
    unify_variable(x(0)),
    get_structure(var/2,1),
    unify_value(x(2)),
    unify_value(x(0)),
    call_c_test('Blt_Var',[0]),
    proceed,

label(6),
    trust_me_else_fail,

label(7),
    get_variable(x(5),3),
    get_variable(x(4),1),
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_variable(x(3)),
    put_value(x(2),1),
    put_value(x(5),2),
    execute('$equal/4_$aux1'/5),

label(8),
    retry_me_else(9),
    get_variable(x(5),3),
    get_variable(x(4),0),
    get_structure(var/2,1),
    unify_variable(x(0)),
    unify_variable(x(3)),
    put_value(x(2),1),
    put_value(x(5),2),
    execute('$equal/4_$aux2'/5),

label(9),
    retry_me_else(10),
    get_variable(x(4),3),
    get_variable(x(3),2),
    get_variable(x(2),0),
    get_structure(var/2,1),
    unify_variable(x(1)),
    unify_variable(x(0)),
    get_structure(x/1,1),
    unify_variable(x(1)),
    execute(inline_unif_reg_term/5),

label(10),
    retry_me_else(12),
    switch_on_term(11,fail,fail,fail,11),

label(11),
    get_structure(stc/3,0),
    unify_variable(x(5)),
    unify_variable(x(4)),
    unify_variable(x(0)),
    get_structure(stc/3,1),
    unify_value(x(5)),
    unify_value(x(4)),
    unify_variable(x(1)),
    execute(equal_lst/4),

label(12),
    trust_me_else_fail,
    get_list(3),
    unify_atom(fail),
    unify_local_value(x(2)),
    put_atom('explicit unification will fail',0),
    put_nil(1),
    execute(warn/2)]).


predicate('$equal/4_$aux2'/5,369,static,private,user,[
    load_cut_level(5),
    try_me_else(2),
    switch_on_term(1,fail,fail,fail,1),

label(1),
    get_structure(x/1,0),
    unify_variable(x(0)),
    cut(x(5)),
    execute('$equal/4_$aux3'/5),

label(2),
    trust_me_else_fail,
    allocate(4),
    get_variable(y(0),1),
    get_variable(y(1),4),
    get_variable(x(1),0),
    put_structure(var/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(3)),
    put_value(x(2),3),
    put_variable(y(2),1),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_value(y(1),0),
    put_unsafe_value(y(2),1),
    put_value(y(0),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_unif_arg/4)]).


predicate('$equal/4_$aux3'/5,369,static,private,user,[
    load_cut_level(5),
    try_me_else(1),
    put_atom(void,3),
    call_c_test('Blt_Term_Eq',[0,3]),
    cut(x(5)),
    get_value(x(2),1),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(5),4),
    get_variable(x(6),3),
    get_variable(x(4),2),
    get_variable(x(3),1),
    get_variable(x(1),0),
    put_value(x(6),0),
    put_value(x(5),2),
    execute(inline_unif_reg_term/5)]).


predicate('$equal/4_$aux1'/5,360,static,private,user,[
    load_cut_level(5),
    try_me_else(2),
    switch_on_term(1,fail,fail,fail,1),

label(1),
    get_structure(x/1,0),
    unify_variable(x(0)),
    cut(x(5)),
    execute('$equal/4_$aux4'/5),

label(2),
    trust_me_else_fail,
    allocate(4),
    get_variable(y(0),1),
    get_variable(y(1),4),
    get_variable(x(1),0),
    put_structure(var/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(3)),
    put_value(x(2),3),
    put_variable(y(2),1),
    put_variable(y(3),2),
    call(gen_load_arg/4),
    put_value(y(1),0),
    put_unsafe_value(y(2),1),
    put_value(y(0),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(gen_unif_arg/4)]).


predicate('$equal/4_$aux4'/5,360,static,private,user,[
    load_cut_level(5),
    try_me_else(1),
    put_atom(void,3),
    call_c_test('Blt_Term_Eq',[0,3]),
    cut(x(5)),
    get_value(x(2),1),
    proceed,

label(1),
    trust_me_else_fail,
    get_variable(x(5),4),
    get_variable(x(6),3),
    get_variable(x(4),2),
    get_variable(x(3),1),
    get_variable(x(1),0),
    put_value(x(6),0),
    put_value(x(5),2),
    execute(inline_unif_reg_term/5)]).


predicate(equal_lst/4,390,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(equal/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(equal_lst/4)]).


predicate(inline_unif_reg_term/5,399,static,private,user,[
    get_variable(x(5),2),
    get_variable(x(2),1),
    put_value(x(5),1),
    execute('$inline_unif_reg_term/5_$aux1'/5)]).


predicate('$inline_unif_reg_term/5_$aux1'/5,399,static,private,user,[
    load_cut_level(5),
    try_me_else(1),
    call_c_test('Blt_Var',[0]),
    cut(x(5)),
    get_atom(in_heap,0),
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    put_value(x(4),3),
    execute(gen_load_arg/4),

label(1),
    trust_me_else_fail,
    put_value(x(1),0),
    put_value(x(2),1),
    put_value(x(3),2),
    put_value(x(4),3),
    execute(gen_unif_arg/4)]).


predicate(load_math_expr/4,417,static,private,user,[
    try_me_else(10),
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(var/2,3),(int/1,5),(flt/1,7),(stc/3,9)]),

label(2),
    try_me_else(4),

label(3),
    allocate(4),
    get_variable(y(1),1),
    get_variable(y(2),2),
    get_variable(y(3),3),
    get_structure(var/2,0),
    unify_variable(y(0)),
    unify_variable(x(0)),
    call('$load_math_expr/4_$aux1'/1),
    put_value(y(3),0),
    put_value(y(0),1),
    put_value(y(1),2),
    put_value(y(2),3),
    deallocate,
    execute('$load_math_expr/4_$aux2'/4),

label(4),
    retry_me_else(6),

label(5),
    get_structure(int/1,0),
    unify_variable(x(4)),
    put_structure(int/1,0),
    unify_value(x(4)),
    execute(gen_load_arg/4),

label(6),
    retry_me_else(8),

label(7),
    get_structure(flt/1,0),
    unify_variable(x(4)),
    put_structure(flt/1,0),
    unify_value(x(4)),
    execute(gen_load_arg/4),

label(8),
    trust_me_else_fail,

label(9),
    get_variable(x(5),3),
    get_variable(x(4),2),
    get_variable(x(3),1),
    get_structure(stc/3,0),
    unify_variable(x(0)),
    unify_variable(x(1)),
    unify_variable(x(2)),
    execute(load_math_expr1/6),

label(10),
    trust_me_else_fail,
    put_list(1),
    unify_local_value(x(0)),
    unify_nil,
    put_atom('unknown expression in arithmetic expression (~q)',0),
    execute(error/2)]).


predicate('$load_math_expr/4_$aux2'/4,417,static,private,user,[
    load_cut_level(4),
    try_me_else(1),
    put_atom(fast_math,5),
    put_atom(t,6),
    call_c_test('Blt_G_Read',[5,6]),
    cut(x(4)),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(math_fast_load_value/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    proceed,

label(1),
    trust_me_else_fail,
    switch_on_term(2,fail,fail,2,fail),

label(2),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(x(3)),
    get_structure(math_load_value/2,0),
    unify_local_value(x(1)),
    unify_local_value(x(2)),
    proceed]).


predicate('$load_math_expr/4_$aux1'/1,417,static,private,user,[
    load_cut_level(1),
    try_me_else(1),
    call_c_test('Blt_Var',[0]),
    cut(x(1)),
    put_atom('unbound variable in arithmetic expression',0),
    put_nil(1),
    execute(error/2),

label(1),
    trust_me_else_fail,
    proceed]).


predicate(load_math_expr1/6,438,static,private,user,[
    try_me_else(11),
    switch_on_term(3,1,fail,fail,fail),

label(1),
    switch_on_atom([('.',4),((+),2),((-),10)]),

label(2),
    try(6),
    trust(8),

label(3),
    try_me_else(5),

label(4),
    get_atom('.',0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_atom(nil),
    unify_nil,
    put_value(x(3),1),
    put_value(x(4),2),
    put_value(x(5),3),
    execute(load_math_expr/4),

label(5),
    retry_me_else(7),

label(6),
    get_atom(+,0),
    get_integer(1,1),
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    put_value(x(3),1),
    put_value(x(4),2),
    put_value(x(5),3),
    execute(load_math_expr/4),

label(7),
    retry_me_else(9),

label(8),
    get_atom(+,0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    get_structure(int/1,1),
    unify_integer(1),
    put_list(2),
    unify_value(x(0)),
    unify_nil,
    put_atom(inc,0),
    put_integer(1,1),
    execute(load_math_expr1/6),

label(9),
    trust_me_else_fail,

label(10),
    get_atom(-,0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    get_structure(int/1,1),
    unify_integer(1),
    put_list(2),
    unify_value(x(0)),
    unify_nil,
    put_atom(dec,0),
    put_integer(1,1),
    execute(load_math_expr1/6),

label(11),
    retry_me_else(12),
    allocate(7),
    get_integer(1,1),
    get_list(2),
    unify_variable(y(0)),
    unify_nil,
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_variable(y(3),5),
    put_variable(y(4),1),
    call('$load_math_expr1/6_$aux1'/2),
    put_value(y(0),0),
    put_variable(y(5),1),
    put_variable(y(6),2),
    put_value(y(3),3),
    call(load_math_expr/4),
    put_unsafe_value(y(6),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(2)),
    get_structure(function/3,0),
    unify_local_value(y(4)),
    unify_local_value(y(1)),
    unify_list,
    unify_local_value(y(5)),
    unify_nil,
    deallocate,
    proceed,

label(12),
    retry_me_else(13),
    allocate(7),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_variable(y(3),5),
    put_variable(y(4),2),
    call('$load_math_expr1/6_$aux2'/3),
    put_value(y(0),0),
    put_variable(y(5),1),
    put_variable(y(6),2),
    put_value(y(3),3),
    call(load_math_arg_lst/4),
    put_unsafe_value(y(6),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(2)),
    get_structure(function/3,0),
    unify_local_value(y(4)),
    unify_local_value(y(1)),
    unify_local_value(y(5)),
    deallocate,
    proceed,

label(13),
    retry_me_else(14),
    allocate(2),
    get_variable(y(0),0),
    get_variable(y(1),1),
    put_value(y(0),0),
    put_value(y(1),1),
    put_void(2),
    call(math_exp_functor_name/3),
    put_atom('arithmetic operation not allowed in fast math (~q)',0),
    put_structure((/)/2,2),
    unify_local_value(y(0)),
    unify_local_value(y(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    deallocate,
    execute(error/2),

label(14),
    trust_me_else_fail,
    put_structure((/)/2,2),
    unify_local_value(x(0)),
    unify_local_value(x(1)),
    put_list(1),
    unify_value(x(2)),
    unify_nil,
    put_atom('unknown operation in arithmetic expression (~q)',0),
    execute(error/2)]).


predicate('$load_math_expr1/6_$aux2'/3,456,static,private,user,[
    load_cut_level(3),
    try_me_else(1),
    put_atom(fast_math,4),
    put_atom(t,5),
    call_c_test('Blt_G_Read',[4,5]),
    cut(x(3)),
    execute(fast_exp_functor_name/3),

label(1),
    trust_me_else_fail,
    execute(math_exp_functor_name/3)]).


predicate('$load_math_expr1/6_$aux1'/2,450,static,private,user,[
    load_cut_level(2),
    try_me_else(1),
    put_atom(fast_math,3),
    put_atom(t,4),
    call_c_test('Blt_G_Read',[3,4]),
    cut(x(2)),
    put_value(x(1),2),
    put_integer(1,1),
    execute(fast_exp_functor_name/3),

label(1),
    trust_me_else_fail,
    put_value(x(1),2),
    put_integer(1,1),
    execute(math_exp_functor_name/3)]).


predicate(load_math_arg_lst/4,473,static,private,user,[
    switch_on_term(1,2,fail,4,fail),

label(1),
    try_me_else(3),

label(2),
    get_nil(0),
    get_nil(1),
    get_value(x(3),2),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    allocate(4),
    get_variable(y(2),2),
    get_list(0),
    unify_variable(x(0)),
    unify_variable(y(0)),
    get_list(1),
    unify_variable(x(1)),
    unify_variable(y(1)),
    put_variable(y(3),2),
    call(load_math_expr/4),
    put_value(y(0),0),
    put_value(y(1),1),
    put_value(y(2),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute(load_math_arg_lst/4)]).


predicate(fast_exp_functor_name/3,482,static,private,user,[
    switch_on_term(3,1,fail,fail,fail),

label(1),
    switch_on_atom([((-),2),(inc,6),(dec,8),((+),10),((*),14),((//),16),((rem),18),((mod),20),((/\),22),((\/),24),((^),26),((\),28),((<<),30),((>>),32),(abs,34),(sign,36)]),

label(2),
    try(4),
    trust(12),

label(3),
    try_me_else(5),

label(4),
    get_atom(-,0),
    get_integer(1,1),
    get_atom('Fct_Fast_Neg',2),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    get_atom(inc,0),
    get_integer(1,1),
    get_atom('Fct_Fast_Inc',2),
    proceed,

label(7),
    retry_me_else(9),

label(8),
    get_atom(dec,0),
    get_integer(1,1),
    get_atom('Fct_Fast_Dec',2),
    proceed,

label(9),
    retry_me_else(11),

label(10),
    get_atom(+,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Add',2),
    proceed,

label(11),
    retry_me_else(13),

label(12),
    get_atom(-,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Sub',2),
    proceed,

label(13),
    retry_me_else(15),

label(14),
    get_atom(*,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Mul',2),
    proceed,

label(15),
    retry_me_else(17),

label(16),
    get_atom(//,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Div',2),
    proceed,

label(17),
    retry_me_else(19),

label(18),
    get_atom(rem,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Rem',2),
    proceed,

label(19),
    retry_me_else(21),

label(20),
    get_atom(mod,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Mod',2),
    proceed,

label(21),
    retry_me_else(23),

label(22),
    get_atom(/\,0),
    get_integer(2,1),
    get_atom('Fct_Fast_And',2),
    proceed,

label(23),
    retry_me_else(25),

label(24),
    get_atom(\/,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Or',2),
    proceed,

label(25),
    retry_me_else(27),

label(26),
    get_atom(^,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Xor',2),
    proceed,

label(27),
    retry_me_else(29),

label(28),
    get_atom(\,0),
    get_integer(1,1),
    get_atom('Fct_Fast_Not',2),
    proceed,

label(29),
    retry_me_else(31),

label(30),
    get_atom(<<,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Shl',2),
    proceed,

label(31),
    retry_me_else(33),

label(32),
    get_atom(>>,0),
    get_integer(2,1),
    get_atom('Fct_Fast_Shr',2),
    proceed,

label(33),
    retry_me_else(35),

label(34),
    get_atom(abs,0),
    get_integer(1,1),
    get_atom('Fct_Fast_Abs',2),
    proceed,

label(35),
    trust_me_else_fail,

label(36),
    get_atom(sign,0),
    get_integer(1,1),
    get_atom('Fct_Fast_Sign',2),
    proceed]).


predicate(math_exp_functor_name/3,503,static,private,user,[
    switch_on_term(3,1,fail,fail,fail),

label(1),
    switch_on_atom([((-),2),(inc,6),(dec,8),((+),10),((*),14),((//),16),((/),18),((rem),20),((mod),22),((/\),24),((\/),26),((^),28),((\),30),((<<),32),((>>),34),(abs,36),(sign,38),((**),40),(sqrt,42),(atan,44),(cos,46),(sin,48),(exp,50),(log,52),(float,54),(ceiling,56),(floor,58),(round,60),(truncate,62),(float_fractional_part,64),(float_integer_part,66)]),

label(2),
    try(4),
    trust(12),

label(3),
    try_me_else(5),

label(4),
    get_atom(-,0),
    get_integer(1,1),
    get_atom('Fct_Neg',2),
    proceed,

label(5),
    retry_me_else(7),

label(6),
    get_atom(inc,0),
    get_integer(1,1),
    get_atom('Fct_Inc',2),
    proceed,

label(7),
    retry_me_else(9),

label(8),
    get_atom(dec,0),
    get_integer(1,1),
    get_atom('Fct_Dec',2),
    proceed,

label(9),
    retry_me_else(11),

label(10),
    get_atom(+,0),
    get_integer(2,1),
    get_atom('Fct_Add',2),
    proceed,

label(11),
    retry_me_else(13),

label(12),
    get_atom(-,0),
    get_integer(2,1),
    get_atom('Fct_Sub',2),
    proceed,

label(13),
    retry_me_else(15),

label(14),
    get_atom(*,0),
    get_integer(2,1),
    get_atom('Fct_Mul',2),
    proceed,

label(15),
    retry_me_else(17),

label(16),
    get_atom(//,0),
    get_integer(2,1),
    get_atom('Fct_Div',2),
    proceed,

label(17),
    retry_me_else(19),

label(18),
    get_atom(/,0),
    get_integer(2,1),
    get_atom('Fct_Float_Div',2),
    proceed,

label(19),
    retry_me_else(21),

label(20),
    get_atom(rem,0),
    get_integer(2,1),
    get_atom('Fct_Rem',2),
    proceed,

label(21),
    retry_me_else(23),

label(22),
    get_atom(mod,0),
    get_integer(2,1),
    get_atom('Fct_Mod',2),
    proceed,

label(23),
    retry_me_else(25),

label(24),
    get_atom(/\,0),
    get_integer(2,1),
    get_atom('Fct_And',2),
    proceed,

label(25),
    retry_me_else(27),

label(26),
    get_atom(\/,0),
    get_integer(2,1),
    get_atom('Fct_Or',2),
    proceed,

label(27),
    retry_me_else(29),

label(28),
    get_atom(^,0),
    get_integer(2,1),
    get_atom('Fct_Xor',2),
    proceed,

label(29),
    retry_me_else(31),

label(30),
    get_atom(\,0),
    get_integer(1,1),
    get_atom('Fct_Not',2),
    proceed,

label(31),
    retry_me_else(33),

label(32),
    get_atom(<<,0),
    get_integer(2,1),
    get_atom('Fct_Shl',2),
    proceed,

label(33),
    retry_me_else(35),

label(34),
    get_atom(>>,0),
    get_integer(2,1),
    get_atom('Fct_Shr',2),
    proceed,

label(35),
    retry_me_else(37),

label(36),
    get_atom(abs,0),
    get_integer(1,1),
    get_atom('Fct_Abs',2),
    proceed,

label(37),
    retry_me_else(39),

label(38),
    get_atom(sign,0),
    get_integer(1,1),
    get_atom('Fct_Sign',2),
    proceed,

label(39),
    retry_me_else(41),

label(40),
    get_atom(**,0),
    get_integer(2,1),
    get_atom('Fct_Pow',2),
    proceed,

label(41),
    retry_me_else(43),

label(42),
    get_atom(sqrt,0),
    get_integer(1,1),
    get_atom('Fct_Sqrt',2),
    proceed,

label(43),
    retry_me_else(45),

label(44),
    get_atom(atan,0),
    get_integer(1,1),
    get_atom('Fct_Atan',2),
    proceed,

label(45),
    retry_me_else(47),

label(46),
    get_atom(cos,0),
    get_integer(1,1),
    get_atom('Fct_Cos',2),
    proceed,

label(47),
    retry_me_else(49),

label(48),
    get_atom(sin,0),
    get_integer(1,1),
    get_atom('Fct_Sin',2),
    proceed,

label(49),
    retry_me_else(51),

label(50),
    get_atom(exp,0),
    get_integer(1,1),
    get_atom('Fct_Exp',2),
    proceed,

label(51),
    retry_me_else(53),

label(52),
    get_atom(log,0),
    get_integer(1,1),
    get_atom('Fct_Log',2),
    proceed,

label(53),
    retry_me_else(55),

label(54),
    get_atom(float,0),
    get_integer(1,1),
    get_atom('Fct_Float',2),
    proceed,

label(55),
    retry_me_else(57),

label(56),
    get_atom(ceiling,0),
    get_integer(1,1),
    get_atom('Fct_Ceiling',2),
    proceed,

label(57),
    retry_me_else(59),

label(58),
    get_atom(floor,0),
    get_integer(1,1),
    get_atom('Fct_Floor',2),
    proceed,

label(59),
    retry_me_else(61),

label(60),
    get_atom(round,0),
    get_integer(1,1),
    get_atom('Fct_Round',2),
    proceed,

label(61),
    retry_me_else(63),

label(62),
    get_atom(truncate,0),
    get_integer(1,1),
    get_atom('Fct_Truncate',2),
    proceed,

label(63),
    retry_me_else(65),

label(64),
    get_atom(float_fractional_part,0),
    get_integer(1,1),
    get_atom('Fct_Float_Fract_Part',2),
    proceed,

label(65),
    trust_me_else_fail,

label(66),
    get_atom(float_integer_part,0),
    get_integer(1,1),
    get_atom('Fct_Float_Integ_Part',2),
    proceed]).


predicate(fast_cmp_functor_name/2,549,static,private,user,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([((=:=),3),((=\=),5),((<),7),((=<),9),((>),11),((>=),13)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(=:=,0),
    get_atom('Blt_Fast_Eq',1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(=\=,0),
    get_atom('Blt_Fast_Neq',1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(<,0),
    get_atom('Blt_Fast_Lt',1),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(=<,0),
    get_atom('Blt_Fast_Lte',1),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(>,0),
    get_atom('Blt_Fast_Gt',1),
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    get_atom(>=,0),
    get_atom('Blt_Fast_Gte',1),
    proceed]).


predicate(math_cmp_functor_name/2,556,static,private,user,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([((=:=),3),((=\=),5),((<),7),((=<),9),((>),11),((>=),13)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(=:=,0),
    get_atom('Blt_Eq',1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(=\=,0),
    get_atom('Blt_Neq',1),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(<,0),
    get_atom('Blt_Lt',1),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(=<,0),
    get_atom('Blt_Lte',1),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(>,0),
    get_atom('Blt_Gt',1),
    proceed,

label(12),
    trust_me_else_fail,

label(13),
    get_atom(>=,0),
    get_atom('Blt_Gte',1),
    proceed]).


predicate(gen_foreign_types/2,596,static,private,user,[
    switch_on_term(1,2,fail,fail,4),

label(1),
    try_me_else(3),

label(2),
    get_atom(nil,0),
    get_nil(1),
    proceed,

label(3),
    trust_me_else_fail,

label(4),
    get_structure(stc/3,0),
    unify_atom('.'),
    unify_void(1),
    unify_list,
    unify_variable(x(2)),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_structure(stc/3,2),
    unify_atom(','),
    unify_integer(2),
    unify_list,
    unify_variable(x(3)),
    unify_list,
    unify_variable(x(2)),
    unify_nil,
    get_structure(atm/1,3),
    unify_variable(x(3)),
    get_structure(int/1,2),
    unify_variable(x(2)),
    get_list(1),
    unify_variable(x(4)),
    unify_variable(x(1)),
    get_structure((',')/2,4),
    unify_value(x(3)),
    unify_value(x(2)),
    execute(gen_foreign_types/2)]).


predicate(gen_call_c/5,614,static,private,user,[
    allocate(5),
    get_variable(y(0),0),
    get_variable(y(1),2),
    get_variable(y(2),3),
    put_value(x(1),0),
    put_value(x(4),3),
    put_variable(y(3),1),
    put_variable(y(4),2),
    call(gen_load_arg_lst/4),
    put_unsafe_value(y(4),0),
    get_list(0),
    unify_variable(x(1)),
    unify_local_value(y(2)),
    put_value(y(1),0),
    put_value(y(0),2),
    put_unsafe_value(y(3),3),
    deallocate,
    execute('$gen_call_c/5_$aux1'/4)]).


predicate('$gen_call_c/5_$aux1'/4,614,static,private,user,[
    load_cut_level(4),
    try_me_else(6),
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(simple,3),(test,5)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(simple,0),
    cut(x(4)),
    get_structure(call_c/2,1),
    unify_local_value(x(2)),
    unify_local_value(x(3)),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_atom(test,0),
    cut(x(4)),
    get_structure(call_c_test/2,1),
    unify_local_value(x(2)),
    unify_local_value(x(3)),
    proceed,

label(6),
    trust_me_else_fail,
    get_structure(call_c_jump/2,1),
    unify_local_value(x(2)),
    unify_local_value(x(3)),
    proceed]).


predicate(c_fct_name/4,626,static,private,user,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([(var,3),(nonvar,5),(atom,7),(integer,9),(float,11),(number,13),(atomic,15),(compound,17),(callable,19),(list,21),(partial_list,23),(list_or_partial_list,25),(fd_var,27),(non_fd_var,29),(generic_var,31),(non_generic_var,33),(arg,35),(functor,37),(compare,39),((=..),41),((==),43),((\==),45),((@<),47),((@=<),49),((@>),51),((@>=),53),(g_assign,55),(g_assignb,57),(g_link,59),(g_read,61),(g_array_size,63)]),

label(2),
    try_me_else(4),

label(3),
    get_atom(var,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Var',3),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom(nonvar,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Non_Var',3),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    get_atom(atom,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Atom',3),
    proceed,

label(8),
    retry_me_else(10),

label(9),
    get_atom(integer,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Integer',3),
    proceed,

label(10),
    retry_me_else(12),

label(11),
    get_atom(float,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Float',3),
    proceed,

label(12),
    retry_me_else(14),

label(13),
    get_atom(number,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Number',3),
    proceed,

label(14),
    retry_me_else(16),

label(15),
    get_atom(atomic,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Atomic',3),
    proceed,

label(16),
    retry_me_else(18),

label(17),
    get_atom(compound,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Compound',3),
    proceed,

label(18),
    retry_me_else(20),

label(19),
    get_atom(callable,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Callable',3),
    proceed,

label(20),
    retry_me_else(22),

label(21),
    get_atom(list,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_List',3),
    proceed,

label(22),
    retry_me_else(24),

label(23),
    get_atom(partial_list,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Partial_List',3),
    proceed,

label(24),
    retry_me_else(26),

label(25),
    get_atom(list_or_partial_list,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_List_Or_Partial_List',3),
    proceed,

label(26),
    retry_me_else(28),

label(27),
    get_atom(fd_var,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Fd_Var',3),
    proceed,

label(28),
    retry_me_else(30),

label(29),
    get_atom(non_fd_var,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Non_Fd_Var',3),
    proceed,

label(30),
    retry_me_else(32),

label(31),
    get_atom(generic_var,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Generic_Var',3),
    proceed,

label(32),
    retry_me_else(34),

label(33),
    get_atom(non_generic_var,0),
    get_integer(1,1),
    get_atom(test,2),
    get_atom('Blt_Non_Generic_Var',3),
    proceed,

label(34),
    retry_me_else(36),

label(35),
    get_atom(arg,0),
    get_integer(3,1),
    get_atom(test,2),
    get_atom('Blt_Arg',3),
    proceed,

label(36),
    retry_me_else(38),

label(37),
    get_atom(functor,0),
    get_integer(3,1),
    get_atom(test,2),
    get_atom('Blt_Functor',3),
    proceed,

label(38),
    retry_me_else(40),

label(39),
    get_atom(compare,0),
    get_integer(3,1),
    get_atom(test,2),
    get_atom('Blt_Compare',3),
    proceed,

label(40),
    retry_me_else(42),

label(41),
    get_atom(=..,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_Univ',3),
    proceed,

label(42),
    retry_me_else(44),

label(43),
    get_atom(==,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_Term_Eq',3),
    proceed,

label(44),
    retry_me_else(46),

label(45),
    get_atom(\==,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_Term_Neq',3),
    proceed,

label(46),
    retry_me_else(48),

label(47),
    get_atom(@<,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_Term_Lt',3),
    proceed,

label(48),
    retry_me_else(50),

label(49),
    get_atom(@=<,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_Term_Lte',3),
    proceed,

label(50),
    retry_me_else(52),

label(51),
    get_atom(@>,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_Term_Gt',3),
    proceed,

label(52),
    retry_me_else(54),

label(53),
    get_atom(@>=,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_Term_Gte',3),
    proceed,

label(54),
    retry_me_else(56),

label(55),
    get_atom(g_assign,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_G_Assign',3),
    proceed,

label(56),
    retry_me_else(58),

label(57),
    get_atom(g_assignb,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_G_Assignb',3),
    proceed,

label(58),
    retry_me_else(60),

label(59),
    get_atom(g_link,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_G_Link',3),
    proceed,

label(60),
    retry_me_else(62),

label(61),
    get_atom(g_read,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_G_Read',3),
    proceed,

label(62),
    trust_me_else_fail,

label(63),
    get_atom(g_array_size,0),
    get_integer(2,1),
    get_atom(test,2),
    get_atom('Blt_G_Array_Size',3),
    proceed]).


predicate(gen_inline_pred/5,334,static,private,user,[
    load_cut_level(5),
    try_me_else(10),
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([('$get_cut_level',3),('$cut',5),((=),7),((is),9)]),

label(2),
    try_me_else(4),

label(3),
    allocate(5),
    get_atom('$get_cut_level',0),
    get_integer(1,1),
    get_list(2),
    unify_variable(y(0)),
    unify_nil,
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_variable(y(3),0),
    put_variable(y(4),1),
    call(cur_pred/2),
    put_atom(cut,0),
    put_value(y(3),1),
    put_value(y(4),2),
    call(set_pred_info/3),
    put_value(y(0),0),
    put_unsafe_value(y(4),1),
    put_value(y(1),2),
    put_value(y(2),3),
    deallocate,
    execute(gen_unif_arg/4),

label(4),
    retry_me_else(6),

label(5),
    get_atom('$cut',0),
    get_integer(1,1),
    get_list(2),
    unify_variable(x(0)),
    unify_nil,
    get_structure(var/2,0),
    unify_variable(x(0)),
    unify_void(1),
    get_list(4),
    unify_variable(x(1)),
    unify_local_value(x(3)),
    get_structure(cut/1,1),
    unify_value(x(0)),
    proceed,

label(6),
    retry_me_else(8),

label(7),
    allocate(1),
    get_atom(=,0),
    get_integer(2,1),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    get_variable(y(0),5),
    put_value(x(3),2),
    put_value(x(4),3),
    call(equal/4),
    cut(y(0)),
    deallocate,
    proceed,

label(8),
    trust_me_else_fail,

label(9),
    allocate(5),
    get_atom(is,0),
    get_integer(2,1),
    get_variable(y(1),3),
    get_list(2),
    unify_variable(y(0)),
    unify_list,
    unify_variable(x(0)),
    unify_nil,
    get_variable(y(2),5),
    put_value(x(4),3),
    put_variable(y(3),1),
    put_variable(y(4),2),
    call(load_math_expr/4),
    cut(y(2)),
    put_value(y(0),0),
    put_unsafe_value(y(3),1),
    put_value(y(1),2),
    put_unsafe_value(y(4),3),
    deallocate,
    execute(gen_unif_arg/4),

label(10),
    retry_me_else(11),
    allocate(6),
    get_integer(2,1),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_variable(y(3),1),
    call('$gen_inline_pred/5_$aux1'/2),
    put_value(y(0),0),
    put_variable(y(4),1),
    put_variable(y(5),2),
    put_value(y(2),3),
    call(load_math_arg_lst/4),
    put_unsafe_value(y(5),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(1)),
    get_structure(call_c_test/2,0),
    unify_local_value(y(3)),
    unify_local_value(y(4)),
    deallocate,
    proceed,

label(11),
    retry_me_else(12),
    allocate(7),
    get_integer(1,1),
    get_list(2),
    unify_variable(y(0)),
    unify_nil,
    get_variable(y(1),3),
    get_variable(y(2),4),
    get_variable(y(3),5),
    put_variable(y(4),1),
    call('$gen_inline_pred/5_$aux2'/2),
    cut(y(3)),
    put_value(y(0),0),
    put_variable(y(5),1),
    put_variable(y(6),2),
    call('$gen_inline_pred/5_$aux3'/3),
    put_unsafe_value(y(5),0),
    put_unsafe_value(y(6),1),
    put_unsafe_value(y(4),2),
    put_value(y(1),3),
    put_value(y(2),4),
    deallocate,
    execute(gen_call_c/5),

label(12),
    retry_me_else(14),
    switch_on_term(13,13,fail,fail,fail),

label(13),
    allocate(13),
    get_atom('$foreign_call_c',0),
    get_integer(7,1),
    get_variable(y(6),3),
    get_variable(y(7),4),
    get_list(2),
    unify_variable(x(0)),
    unify_list,
    unify_variable(y(0)),
    unify_list,
    unify_variable(x(6)),
    unify_list,
    unify_variable(x(4)),
    unify_list,
    unify_variable(x(3)),
    unify_list,
    unify_variable(x(2)),
    unify_list,
    unify_variable(x(1)),
    unify_nil,
    get_structure(atm/1,6),
    unify_variable(y(1)),
    get_structure(atm/1,4),
    unify_variable(y(2)),
    get_structure(atm/1,3),
    unify_variable(y(3)),
    get_structure(int/1,2),
    unify_variable(y(4)),
    get_structure(int/1,1),
    unify_variable(y(5)),
    get_variable(y(8),5),
    put_variable(y(9),1),
    call('$gen_inline_pred/5_$aux4'/2),
    cut(y(8)),
    put_value(y(9),0),
    put_variable(y(10),1),
    put_variable(y(11),2),
    put_value(y(7),3),
    call(gen_load_arg_lst/4),
    put_value(y(0),0),
    put_variable(y(12),1),
    call(gen_foreign_types/2),
    put_unsafe_value(y(11),0),
    get_list(0),
    unify_variable(x(0)),
    unify_local_value(y(6)),
    get_structure(foreign_call_c/7,0),
    unify_value(y(1)),
    unify_value(y(2)),
    unify_value(y(3)),
    unify_value(y(4)),
    unify_value(y(5)),
    unify_local_value(y(12)),
    unify_local_value(y(10)),
    deallocate,
    proceed,

label(14),
    trust_me_else_fail,
    allocate(5),
    get_variable(y(0),2),
    get_variable(y(1),3),
    get_variable(y(2),4),
    put_variable(y(3),2),
    put_variable(y(4),3),
    call(c_fct_name/4),
    put_unsafe_value(y(4),0),
    put_value(y(0),1),
    put_unsafe_value(y(3),2),
    put_value(y(1),3),
    put_value(y(2),4),
    deallocate,
    execute(gen_call_c/5)]).


predicate('$gen_inline_pred/5_$aux4'/2,585,static,private,user,[
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(stc/3,3),(atm/1,5)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(stc/3,0),
    unify_void(2),
    unify_local_value(x(1)),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_structure(atm/1,0),
    unify_void(1),
    get_nil(1),
    proceed]).


predicate('$gen_inline_pred/5_$aux3'/3,568,static,private,user,[
    switch_on_term(2,fail,fail,fail,1),

label(1),
    switch_on_structure([(atm/1,3),(stc/3,5)]),

label(2),
    try_me_else(4),

label(3),
    get_structure(atm/1,0),
    unify_local_value(x(1)),
    get_nil(2),
    proceed,

label(4),
    trust_me_else_fail,

label(5),
    get_structure(stc/3,0),
    unify_local_value(x(1)),
    unify_void(1),
    unify_local_value(x(2)),
    proceed]).


predicate('$gen_inline_pred/5_$aux2'/2,568,static,private,user,[
    switch_on_term(2,1,fail,fail,fail),

label(1),
    switch_on_atom([('$call_c',3),('$call_c_test',5),('$call_c_jump',7)]),

label(2),
    try_me_else(4),

label(3),
    get_atom('$call_c',0),
    get_atom(simple,1),
    proceed,

label(4),
    retry_me_else(6),

label(5),
    get_atom('$call_c_test',0),
    get_atom(test,1),
    proceed,

label(6),
    trust_me_else_fail,

label(7),
    get_atom('$call_c_jump',0),
    get_atom(jump,1),
    proceed]).


predicate('$gen_inline_pred/5_$aux1'/2,540,static,private,user,[
    load_cut_level(2),
    try_me_else(1),
    put_atom(fast_math,3),
    put_atom(t,4),
    call_c_test('Blt_G_Read',[3,4]),
    cut(x(2)),
    execute(fast_cmp_functor_name/2),

label(1),
    trust_me_else_fail,
    execute(math_cmp_functor_name/2)]).
