/* ** Automatically generated from `poly.m' by the ** Mercury compiler, version 0.5-beta. Do not edit. */ /* INIT mercury__poly__init ENDINIT */ #include "imp.h" Define_extern_entry(mercury__main_2_0); Declare_label(mercury__main_2_0_i3); Declare_label(mercury__main_2_0_i4); Declare_label(mercury__main_2_0_i5); Define_extern_entry(mercury__benchmark_1_0); Declare_label(mercury__benchmark_1_0_i3); Declare_label(mercury__benchmark_1_0_i4); Declare_local(mercury__test_poly1_1_0_l); Declare_local(mercury__test_poly2_1_0_l); Declare_local(mercury__test_poly3_1_0_l); Declare_local(mercury__test_poly_1_0_l); Declare_label(mercury__test_poly_1_0_i14); Declare_label(mercury__test_poly_1_0_i19); Declare_local(mercury__poly_add_3_0_l); Declare_label(mercury__poly_add_3_0_i1001); Declare_label(mercury__poly_add_3_0_i25); Declare_label(mercury__poly_add_3_0_i1000); Declare_label(mercury__poly_add_3_0_i21); Declare_label(mercury__poly_add_3_0_i6); Declare_label(mercury__poly_add_3_0_i9); Declare_label(mercury__poly_add_3_0_i7); Declare_label(mercury__poly_add_3_0_i13); Declare_label(mercury__poly_add_3_0_i15); Declare_label(mercury__poly_add_3_0_i12); Declare_label(mercury__poly_add_3_0_i17); Declare_local(mercury__term_add_3_0_l); Declare_label(mercury__term_add_3_0_i9); Declare_label(mercury__term_add_3_0_i10); Declare_label(mercury__term_add_3_0_i7); Declare_label(mercury__term_add_3_0_i15); Declare_label(mercury__term_add_3_0_i13); Declare_label(mercury__term_add_3_0_i17); Declare_label(mercury__term_add_3_0_i1000); Declare_label(mercury__term_add_3_0_i1001); Declare_local(mercury__add_to_order_zero_term_3_0_l); Declare_label(mercury__add_to_order_zero_term_3_0_i1000); Declare_label(mercury__add_to_order_zero_term_3_0_i8); Declare_label(mercury__add_to_order_zero_term_3_0_i9); Declare_local(mercury__poly_exp_3_0_l); Declare_label(mercury__poly_exp_3_0_i10); Declare_label(mercury__poly_exp_3_0_i1002); Declare_label(mercury__poly_exp_3_0_i12); Declare_label(mercury__poly_exp_3_0_i1000); Declare_local(mercury__poly_mul_3_0_l); Declare_label(mercury__poly_mul_3_0_i1001); Declare_label(mercury__poly_mul_3_0_i25); Declare_label(mercury__poly_mul_3_0_i1000); Declare_label(mercury__poly_mul_3_0_i21); Declare_label(mercury__poly_mul_3_0_i6); Declare_label(mercury__poly_mul_3_0_i9); Declare_label(mercury__poly_mul_3_0_i7); Declare_label(mercury__poly_mul_3_0_i13); Declare_label(mercury__poly_mul_3_0_i15); Declare_label(mercury__poly_mul_3_0_i12); Declare_label(mercury__poly_mul_3_0_i17); Declare_local(mercury__term_mul_3_0_l); Declare_label(mercury__term_mul_3_0_i7); Declare_label(mercury__term_mul_3_0_i8); Declare_label(mercury__term_mul_3_0_i1000); Declare_label(mercury__term_mul_3_0_i1001); Declare_local(mercury__single_term_mul_3_0_l); Declare_label(mercury__single_term_mul_3_0_i5); Declare_label(mercury__single_term_mul_3_0_i7); Declare_label(mercury__single_term_mul_3_0_i1000); Declare_local(mercury__mul_through_3_0_l); Declare_label(mercury__mul_through_3_0_i5); Declare_label(mercury__mul_through_3_0_i7); Declare_label(mercury__mul_through_3_0_i1000); Declare_local(mercury__lt_2_0_l); Declare_label(mercury__lt_2_0_i6); Declare_label(mercury__lt_2_0_i4); Declare_label(mercury__lt_2_0_i8); Declare_label(mercury__lt_2_0_i7); Declare_local(mercury__even_1_0_l); Declare_label(mercury__even_1_0_i1); Declare_local(mercury__print_poly_3_0_l); Declare_label(mercury__print_poly_3_0_i10); Declare_label(mercury__print_poly_3_0_i11); Declare_label(mercury__print_poly_3_0_i4); Declare_label(mercury__print_poly_3_0_i5); Declare_label(mercury__print_poly_3_0_i6); Declare_label(mercury__print_poly_3_0_i7); Declare_label(mercury__print_poly_3_0_i8); Declare_local(mercury__print_var_3_0_l); Declare_label(mercury__print_var_3_0_i1001); Declare_label(mercury__print_var_3_0_i1000); Declare_local(mercury__print_terms_3_0_l); Declare_label(mercury__print_terms_3_0_i8); Declare_label(mercury__print_terms_3_0_i9); Declare_label(mercury__print_terms_3_0_i1000); Declare_local(mercury__print_terms_2_3_0_l); Declare_label(mercury__print_terms_2_3_0_i5); Declare_label(mercury__print_terms_2_3_0_i9); Declare_label(mercury__print_terms_2_3_0_i10); Declare_label(mercury__print_terms_2_3_0_i4); Declare_label(mercury__print_terms_2_3_0_i1001); Declare_local(mercury__print_term_3_0_l); Declare_label(mercury__print_term_3_0_i3); Declare_label(mercury__print_term_3_0_i4); Declare_label(mercury__print_term_3_0_i5); Declare_label(mercury__print_term_3_0_i6); Define_extern_entry(mercury____Unify___var_0_0); Declare_label(mercury____Unify___var_0_0_i1); Define_extern_entry(mercury____Index___var_0_0); Define_extern_entry(mercury____Compare___var_0_0); Define_extern_entry(mercury____Unify___pterm_0_0); Declare_label(mercury____Unify___pterm_0_0_i1000); Define_extern_entry(mercury____Index___pterm_0_0); Define_extern_entry(mercury____Compare___pterm_0_0); Declare_label(mercury____Compare___pterm_0_0_i5); Declare_label(mercury____Compare___pterm_0_0_i9); Define_extern_entry(mercury____Unify___poly_0_0); Declare_label(mercury____Unify___poly_0_0_i1002); Declare_label(mercury____Unify___poly_0_0_i1001); Declare_label(mercury____Unify___poly_0_0_i11); Declare_label(mercury____Unify___poly_0_0_i1000); Define_extern_entry(mercury____Index___poly_0_0); Declare_label(mercury____Index___poly_0_0_i4); Define_extern_entry(mercury____Compare___poly_0_0); Declare_label(mercury____Compare___poly_0_0_i3); Declare_label(mercury____Compare___poly_0_0_i4); Declare_label(mercury____Compare___poly_0_0_i5); Declare_label(mercury____Compare___poly_0_0_i7); Declare_label(mercury____Compare___poly_0_0_i14); Declare_label(mercury____Compare___poly_0_0_i17); Declare_label(mercury____Compare___poly_0_0_i24); Declare_label(mercury____Compare___poly_0_0_i12); Declare_label(mercury____Compare___poly_0_0_i26); Declare_label(mercury____Compare___poly_0_0_i29); BEGIN_MODULE(mercury__poly_module) init_entry(mercury__main_2_0); init_label(mercury__main_2_0_i3); init_label(mercury__main_2_0_i4); init_label(mercury__main_2_0_i5); init_entry(mercury__benchmark_1_0); init_label(mercury__benchmark_1_0_i3); init_label(mercury__benchmark_1_0_i4); init_local(mercury__test_poly1_1_0_l); init_local(mercury__test_poly2_1_0_l); init_local(mercury__test_poly3_1_0_l); init_local(mercury__test_poly_1_0_l); init_label(mercury__test_poly_1_0_i14); init_label(mercury__test_poly_1_0_i19); init_local(mercury__poly_add_3_0_l); init_label(mercury__poly_add_3_0_i1001); init_label(mercury__poly_add_3_0_i25); init_label(mercury__poly_add_3_0_i1000); init_label(mercury__poly_add_3_0_i21); init_label(mercury__poly_add_3_0_i6); init_label(mercury__poly_add_3_0_i9); init_label(mercury__poly_add_3_0_i7); init_label(mercury__poly_add_3_0_i13); init_label(mercury__poly_add_3_0_i15); init_label(mercury__poly_add_3_0_i12); init_label(mercury__poly_add_3_0_i17); init_local(mercury__term_add_3_0_l); init_label(mercury__term_add_3_0_i9); init_label(mercury__term_add_3_0_i10); init_label(mercury__term_add_3_0_i7); init_label(mercury__term_add_3_0_i15); init_label(mercury__term_add_3_0_i13); init_label(mercury__term_add_3_0_i17); init_label(mercury__term_add_3_0_i1000); init_label(mercury__term_add_3_0_i1001); init_local(mercury__add_to_order_zero_term_3_0_l); init_label(mercury__add_to_order_zero_term_3_0_i1000); init_label(mercury__add_to_order_zero_term_3_0_i8); init_label(mercury__add_to_order_zero_term_3_0_i9); init_local(mercury__poly_exp_3_0_l); init_label(mercury__poly_exp_3_0_i10); init_label(mercury__poly_exp_3_0_i1002); init_label(mercury__poly_exp_3_0_i12); init_label(mercury__poly_exp_3_0_i1000); init_local(mercury__poly_mul_3_0_l); init_label(mercury__poly_mul_3_0_i1001); init_label(mercury__poly_mul_3_0_i25); init_label(mercury__poly_mul_3_0_i1000); init_label(mercury__poly_mul_3_0_i21); init_label(mercury__poly_mul_3_0_i6); init_label(mercury__poly_mul_3_0_i9); init_label(mercury__poly_mul_3_0_i7); init_label(mercury__poly_mul_3_0_i13); init_label(mercury__poly_mul_3_0_i15); init_label(mercury__poly_mul_3_0_i12); init_label(mercury__poly_mul_3_0_i17); init_local(mercury__term_mul_3_0_l); init_label(mercury__term_mul_3_0_i7); init_label(mercury__term_mul_3_0_i8); init_label(mercury__term_mul_3_0_i1000); init_label(mercury__term_mul_3_0_i1001); init_local(mercury__single_term_mul_3_0_l); init_label(mercury__single_term_mul_3_0_i5); init_label(mercury__single_term_mul_3_0_i7); init_label(mercury__single_term_mul_3_0_i1000); init_local(mercury__mul_through_3_0_l); init_label(mercury__mul_through_3_0_i5); init_label(mercury__mul_through_3_0_i7); init_label(mercury__mul_through_3_0_i1000); init_local(mercury__lt_2_0_l); init_label(mercury__lt_2_0_i6); init_label(mercury__lt_2_0_i4); init_label(mercury__lt_2_0_i8); init_label(mercury__lt_2_0_i7); init_local(mercury__even_1_0_l); init_label(mercury__even_1_0_i1); init_local(mercury__print_poly_3_0_l); init_label(mercury__print_poly_3_0_i10); init_label(mercury__print_poly_3_0_i11); init_label(mercury__print_poly_3_0_i4); init_label(mercury__print_poly_3_0_i5); init_label(mercury__print_poly_3_0_i6); init_label(mercury__print_poly_3_0_i7); init_label(mercury__print_poly_3_0_i8); init_local(mercury__print_var_3_0_l); init_label(mercury__print_var_3_0_i1001); init_label(mercury__print_var_3_0_i1000); init_local(mercury__print_terms_3_0_l); init_label(mercury__print_terms_3_0_i8); init_label(mercury__print_terms_3_0_i9); init_label(mercury__print_terms_3_0_i1000); init_local(mercury__print_terms_2_3_0_l); init_label(mercury__print_terms_2_3_0_i5); init_label(mercury__print_terms_2_3_0_i9); init_label(mercury__print_terms_2_3_0_i10); init_label(mercury__print_terms_2_3_0_i4); init_label(mercury__print_terms_2_3_0_i1001); init_local(mercury__print_term_3_0_l); init_label(mercury__print_term_3_0_i3); init_label(mercury__print_term_3_0_i4); init_label(mercury__print_term_3_0_i5); init_label(mercury__print_term_3_0_i6); init_entry(mercury____Unify___var_0_0); init_label(mercury____Unify___var_0_0_i1); init_entry(mercury____Index___var_0_0); init_entry(mercury____Compare___var_0_0); init_entry(mercury____Unify___pterm_0_0); init_label(mercury____Unify___pterm_0_0_i1000); init_entry(mercury____Index___pterm_0_0); init_entry(mercury____Compare___pterm_0_0); init_label(mercury____Compare___pterm_0_0_i5); init_label(mercury____Compare___pterm_0_0_i9); init_entry(mercury____Unify___poly_0_0); init_label(mercury____Unify___poly_0_0_i1002); init_label(mercury____Unify___poly_0_0_i1001); init_label(mercury____Unify___poly_0_0_i11); init_label(mercury____Unify___poly_0_0_i1000); init_entry(mercury____Index___poly_0_0); init_label(mercury____Index___poly_0_0_i4); init_entry(mercury____Compare___poly_0_0); init_label(mercury____Compare___poly_0_0_i3); init_label(mercury____Compare___poly_0_0_i4); init_label(mercury____Compare___poly_0_0_i5); init_label(mercury____Compare___poly_0_0_i7); init_label(mercury____Compare___poly_0_0_i14); init_label(mercury____Compare___poly_0_0_i17); init_label(mercury____Compare___poly_0_0_i24); init_label(mercury____Compare___poly_0_0_i12); init_label(mercury____Compare___poly_0_0_i26); init_label(mercury____Compare___poly_0_0_i29); BEGIN_CODE /*-------------------------------------------------------------------------*/ /* code for predicate main/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): DCG_0 -> stackvar(1) */ Define_entry(mercury__main_2_0); /* Procedure entry point */ /* End of procedure prologue */ incr_sp(2); /* late setup */ { detstackvar(2) = (Integer) succip; } /* late save */ { detstackvar(1) = (Integer) r1; } /* Assigning from DCG_0 */ /* * Live lvalues: * detstackvar(1) * detstackvar(2) */ { localcall(mercury__benchmark_1_0, LABEL(mercury__main_2_0_i3), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * detstackvar(2) succip * r1 num(8) * detstackvar(1) num(7) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i3); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r2 = (Integer) detstackvar(1); } /* Assigning from DCG_0 */ /* * Live lvalues: * r1 * r2 * detstackvar(2) */ { localcall(mercury__print_poly_3_0_l, LABEL(mercury__main_2_0_i4), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * detstackvar(2) succip * r3 num(7) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i4); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = string_const("\n", 1); } /* Assigning from variable number 7 */ { r2 = (Integer) r3; } /* Assigning from DCG_1 */ /* * Live lvalues: * r1 * r2 * detstackvar(2) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__main_2_0_i5), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * detstackvar(2) succip * r3 num(7) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i5); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r2 = (Integer) r3; } /* Assigning from HeadVar__2 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(2); } /* restore the success ip */ decr_sp(2); /* Deallocate stack frame */ /* * Live lvalues: * r2 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate benchmark/1 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury__benchmark_1_0); /* Procedure entry point */ /* End of procedure prologue */ incr_sp(1); /* late setup */ { detstackvar(1) = (Integer) succip; } /* late save */ { localcall(mercury__test_poly_1_0_l, LABEL(mercury__benchmark_1_0_i3), LABEL(mercury__benchmark_1_0)); } /* * Garbage collection livevals info * detstackvar(1) succip * r1 num(8) */ /* branch to det procedure */ Define_label(mercury__benchmark_1_0_i3); update_prof_current_proc(LABEL(mercury__benchmark_1_0)); /* Continuation label */ { r2 = (Integer) r1; } /* shuffle lval */ { r1 = 10; } /* Assigning from variable number 4 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) */ { localcall(mercury__poly_exp_3_0_l, LABEL(mercury__benchmark_1_0_i4), LABEL(mercury__benchmark_1_0)); } /* * Garbage collection livevals info * detstackvar(1) succip * r3 num(8) */ /* branch to det procedure */ Define_label(mercury__benchmark_1_0_i4); update_prof_current_proc(LABEL(mercury__benchmark_1_0)); /* Continuation label */ { r1 = (Integer) r3; } /* Assigning from HeadVar__1 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); } /* restore the success ip */ decr_sp(1); /* Deallocate stack frame */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate test_poly1/1 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__test_poly1_1_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* Start of procedure epilogue */ { static const Word mercury_const_3[] = { 1 }; static const Word mercury_const_4[] = { 0, mkword(mktag(1), mercury_const_3) }; static const Word mercury_const_5[] = { 1 }; static const Word mercury_const_6[] = { 1, mkword(mktag(1), mercury_const_5) }; static const Word mercury_const_7[] = { mkword(mktag(0), mercury_const_6), (Integer) mkword(mktag(0), mkbody(0)) }; static const Word mercury_const_8[] = { mkword(mktag(0), mercury_const_4), mkword(mktag(1), mercury_const_7) }; static const Word mercury_const_9[] = { 0, mkword(mktag(1), mercury_const_8) }; r1 = mkword(mktag(0), mercury_const_9); } /* Assigning from HeadVar__1 */ /* End of procedure epilogue */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate test_poly2/1 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__test_poly2_1_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* Start of procedure epilogue */ { static const Word mercury_const_3[] = { 1 }; static const Word mercury_const_4[] = { 1, mkword(mktag(1), mercury_const_3) }; static const Word mercury_const_5[] = { mkword(mktag(0), mercury_const_4), (Integer) mkword(mktag(0), mkbody(0)) }; static const Word mercury_const_6[] = { 1, mkword(mktag(1), mercury_const_5) }; r1 = mkword(mktag(0), mercury_const_6); } /* Assigning from HeadVar__1 */ /* End of procedure epilogue */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate test_poly3/1 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__test_poly3_1_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* Start of procedure epilogue */ { static const Word mercury_const_3[] = { 1 }; static const Word mercury_const_4[] = { 1, mkword(mktag(1), mercury_const_3) }; static const Word mercury_const_5[] = { mkword(mktag(0), mercury_const_4), (Integer) mkword(mktag(0), mkbody(0)) }; static const Word mercury_const_6[] = { 2, mkword(mktag(1), mercury_const_5) }; r1 = mkword(mktag(0), mercury_const_6); } /* Assigning from HeadVar__1 */ /* End of procedure epilogue */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate test_poly/1 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__test_poly_1_0_l); /* Procedure entry point */ /* End of procedure prologue */ { static const Word mercury_const_3[] = { 1 }; static const Word mercury_const_4[] = { 0, mkword(mktag(1), mercury_const_3) }; static const Word mercury_const_5[] = { 1 }; static const Word mercury_const_6[] = { 1, mkword(mktag(1), mercury_const_5) }; static const Word mercury_const_7[] = { mkword(mktag(0), mercury_const_6), (Integer) mkword(mktag(0), mkbody(0)) }; static const Word mercury_const_8[] = { mkword(mktag(0), mercury_const_4), mkword(mktag(1), mercury_const_7) }; static const Word mercury_const_9[] = { 0, mkword(mktag(1), mercury_const_8) }; r1 = mkword(mktag(0), mercury_const_9); } /* Assigning from variable number 12 */ { static const Word mercury_const_10[] = { 1 }; static const Word mercury_const_11[] = { 1, mkword(mktag(1), mercury_const_10) }; static const Word mercury_const_12[] = { mkword(mktag(0), mercury_const_11), (Integer) mkword(mktag(0), mkbody(0)) }; static const Word mercury_const_13[] = { 1, mkword(mktag(1), mercury_const_12) }; r2 = mkword(mktag(0), mercury_const_13); } /* Assigning from variable number 13 */ incr_sp(1); /* late setup */ { detstackvar(1) = (Integer) succip; } /* late save */ { localcall(mercury__poly_add_3_0_l, LABEL(mercury__test_poly_1_0_i14), LABEL(mercury__test_poly_1_0_l)); } /* * Garbage collection livevals info * detstackvar(1) succip * r3 num(8) */ /* branch to det procedure */ Define_label(mercury__test_poly_1_0_i14); update_prof_current_proc(LABEL(mercury__test_poly_1_0_l)); /* Continuation label */ { static const Word mercury_const_15[] = { 1 }; static const Word mercury_const_16[] = { 1, mkword(mktag(1), mercury_const_15) }; static const Word mercury_const_17[] = { mkword(mktag(0), mercury_const_16), (Integer) mkword(mktag(0), mkbody(0)) }; static const Word mercury_const_18[] = { 2, mkword(mktag(1), mercury_const_17) }; r1 = mkword(mktag(0), mercury_const_18); } /* Assigning from variable number 4 */ { r2 = (Integer) r3; } /* Assigning from Q */ /* * Live lvalues: * r1 * r2 * detstackvar(1) */ { localcall(mercury__poly_add_3_0_l, LABEL(mercury__test_poly_1_0_i19), LABEL(mercury__test_poly_1_0_l)); } /* * Garbage collection livevals info * detstackvar(1) succip * r3 num(8) */ /* branch to det procedure */ Define_label(mercury__test_poly_1_0_i19); update_prof_current_proc(LABEL(mercury__test_poly_1_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* Assigning from HeadVar__1 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); } /* restore the success ip */ decr_sp(1); /* Deallocate stack frame */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate poly_add/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): Var1 -> stackvar(1) HeadVar__2 -> stackvar(2) Var2 -> stackvar(3) HeadVar__1 -> stackvar(4) Terms1 -> stackvar(5) Var2 -> stackvar(1) Terms2 -> stackvar(6) Var1 -> stackvar(1) */ Define_local(mercury__poly_add_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if ((tag((Integer) r2) == mktag(0))) GOTO_LABEL(mercury__poly_add_3_0_i1000); } /* jump to setup */ { if ((tag((Integer) r1) == mktag(0))) GOTO_LABEL(mercury__poly_add_3_0_i1001); } /* jump to setup */ { tag_incr_hp(r3, mktag(1), 1); } { r4 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { r5 = (Integer) field(mktag(1), (Integer) r2, 0); } /* vn flush */ { field(mktag(1), (Integer) r3, 0) = ((Integer) r4 + (Integer) r5); } /* vn flush */ /* * Live lvalues: * r3 */ { proceed(); } Define_label(mercury__poly_add_3_0_i1001); /* label for late setup code */ incr_sp(8); /* late setup after succip */ { detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 0); } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r1, 1); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__add_to_order_zero_term_3_0_l, LABEL(mercury__poly_add_3_0_i25), LABEL(mercury__poly_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ Define_label(mercury__poly_add_3_0_i25); update_prof_current_proc(LABEL(mercury__poly_add_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_add_3_0_i1000); /* label for late setup code */ incr_sp(8); /* late setup after succip */ /* checking that HeadVar__1 has functor 'poly'/2 */ { if ((tag((Integer) r1) == mktag(0))) GOTO_LABEL(mercury__poly_add_3_0_i6); } /* tag test */ { detstackvar(1) = (Integer) field(mktag(0), (Integer) r2, 0); } /* vn flush */ /* src_liveval(vn_reg(r(2))), */ { r3 = (Integer) r1; } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r2, 1); } /* vn flush */ { r2 = (Integer) r3; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__add_to_order_zero_term_3_0_l, LABEL(mercury__poly_add_3_0_i21), LABEL(mercury__poly_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ Define_label(mercury__poly_add_3_0_i21); update_prof_current_proc(LABEL(mercury__poly_add_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_add_3_0_i6); /* next case */ { r3 = (Integer) field(mktag(0), (Integer) r2, 1); } /* Assigning from Terms2 */ { r4 = (Integer) field(mktag(0), (Integer) r1, 1); } /* Assigning from Terms1 */ { r5 = (Integer) field(mktag(0), (Integer) r2, 0); } /* Assigning from Var2 */ { r6 = (Integer) field(mktag(0), (Integer) r1, 0); } /* Assigning from Var1 */ { if (((Integer) r6 != (Integer) r5)) GOTO_LABEL(mercury__poly_add_3_0_i7); } /* Test for failure */ { r1 = (Integer) r4; } /* vn flush */ { r2 = (Integer) r3; } /* vn flush */ { detstackvar(1) = (Integer) r6; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__term_add_3_0_l, LABEL(mercury__poly_add_3_0_i9), LABEL(mercury__poly_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ Define_label(mercury__poly_add_3_0_i9); update_prof_current_proc(LABEL(mercury__poly_add_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_add_3_0_i7); { mark_hp(detstackvar(7)); } { detstackvar(2) = (Integer) r2; } /* vn flush */ { detstackvar(6) = (Integer) r3; } /* vn flush */ { r2 = (Integer) r6; } /* vn flush */ { r3 = (Integer) r5; } /* vn flush */ { detstackvar(1) = (Integer) r6; } /* vn flush */ { detstackvar(3) = (Integer) r5; } /* vn flush */ { detstackvar(4) = (Integer) r1; } /* vn flush */ { detstackvar(5) = (Integer) r4; } /* vn flush */ /* * Live lvalues: * r2 * r3 * detstackvar(1) * detstackvar(2) * detstackvar(3) * detstackvar(4) * detstackvar(5) * detstackvar(6) * detstackvar(7) * detstackvar(8) */ { localcall(mercury__lt_2_0_l, LABEL(mercury__poly_add_3_0_i13), LABEL(mercury__poly_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * detstackvar(7) hp * detstackvar(1) num(9) * detstackvar(2) num(8) * detstackvar(3) num(9) * detstackvar(4) num(8) * detstackvar(5) num(10) * detstackvar(6) num(10) */ Define_label(mercury__poly_add_3_0_i13); update_prof_current_proc(LABEL(mercury__poly_add_3_0_l)); /* Continuation label */ { if (!((Integer) r1)) GOTO_LABEL(mercury__poly_add_3_0_i12); } /* fail */ { r1 = (Integer) detstackvar(5); } /* Assigning from Terms1 */ { r2 = (Integer) detstackvar(2); } /* Assigning from variable number 10 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__add_to_order_zero_term_3_0_l, LABEL(mercury__poly_add_3_0_i15), LABEL(mercury__poly_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ /* branch to det procedure */ Define_label(mercury__poly_add_3_0_i15); update_prof_current_proc(LABEL(mercury__poly_add_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_add_3_0_i12); { restore_hp((Integer) detstackvar(7)); } { r1 = (Integer) detstackvar(6); } /* vn flush */ { r2 = (Integer) detstackvar(4); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(3) * detstackvar(8) */ { localcall(mercury__add_to_order_zero_term_3_0_l, LABEL(mercury__poly_add_3_0_i17), LABEL(mercury__poly_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(3) num(9) */ Define_label(mercury__poly_add_3_0_i17); update_prof_current_proc(LABEL(mercury__poly_add_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(3); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate term_add/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): Terms1 -> stackvar(1) HeadVar__2 -> stackvar(2) E1 -> stackvar(3) variable number 26 -> stackvar(4) C2 -> stackvar(5) HeadVar__1 -> stackvar(6) C -> stackvar(1) E2 -> stackvar(7) C1 -> stackvar(8) variable number 27 -> stackvar(9) Terms2 -> stackvar(10) */ Define_local(mercury__term_add_3_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* checking that HeadVar__1 has functor '[]'/0 */ { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__term_add_3_0_i1001); } /* tag test (teardown redirect) */ /* checking that HeadVar__2 has functor '[]'/0 */ { if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__term_add_3_0_i1000); } /* tag test (teardown redirect) */ { r3 = (Integer) field(mktag(1), (Integer) r2, 1); } /* Assigning from Terms2 */ { r4 = (Integer) field(mktag(1), (Integer) r2, 0); } /* Assigning from variable number 27 */ { r5 = (Integer) field(mktag(0), (Integer) field(mktag(1), (Integer) r2, 0), 0); } /* Assigning from E2 */ { r6 = (Integer) field(mktag(1), (Integer) r1, 0); } /* Assigning from variable number 26 */ { r7 = (Integer) field(mktag(0), (Integer) field(mktag(1), (Integer) r1, 0), 0); } /* Assigning from E1 */ { r8 = (Integer) field(mktag(1), (Integer) r1, 1); } /* Assigning from Terms1 */ incr_sp(11); /* late setup after succip */ { if (((Integer) r7 != (Integer) r5)) GOTO_LABEL(mercury__term_add_3_0_i7); } /* Test for failure */ { r4 = (Integer) field(mktag(1), (Integer) r2, 0); } /* vn flush */ { r5 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { r2 = (Integer) field(mktag(0), (Integer) r4, 1); } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r5, 1); } /* vn flush */ { detstackvar(1) = (Integer) r8; } /* vn flush */ { detstackvar(3) = (Integer) r7; } /* vn flush */ { detstackvar(10) = (Integer) r3; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) * detstackvar(10) * detstackvar(11) */ { localcall(mercury__poly_add_3_0_l, LABEL(mercury__term_add_3_0_i9), LABEL(mercury__term_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(11) succip * r3 num(8) * detstackvar(1) num(10) * detstackvar(3) num(2) * detstackvar(10) num(10) */ Define_label(mercury__term_add_3_0_i9); update_prof_current_proc(LABEL(mercury__term_add_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(1); } /* shuffle lval */ { detstackvar(1) = (Integer) r3; } /* Assigning from C */ { r2 = (Integer) detstackvar(10); } /* Assigning from Terms2 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) * detstackvar(11) */ { localcall(mercury__term_add_3_0_l, LABEL(mercury__term_add_3_0_i10), LABEL(mercury__term_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(11) succip * r3 num(10) * detstackvar(1) num(8) * detstackvar(3) num(2) */ /* branch to det procedure */ Define_label(mercury__term_add_3_0_i10); update_prof_current_proc(LABEL(mercury__term_add_3_0_l)); { incr_hp(r2, 4); } { r1 = (Integer) mkword(mktag(1), (Integer) r2); } /* vn flush */ { field(mktag(1), (Integer) r1, 1) = (Integer) r3; } /* vn flush */ { r4 = (Integer) mkword(mktag(0), ((Integer) r2 + 8)); } /* vn flush */ { r3 = (Integer) r1; } /* vn flush */ { field(mktag(1), (Integer) r1, 0) = (Integer) r4; } /* vn flush */ { field(mktag(0), (Integer) r4, 1) = (Integer) detstackvar(1); } /* vn flush */ { field(mktag(0), (Integer) r4, 0) = (Integer) detstackvar(3); } /* vn flush */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(11); } /* vn flush */ decr_sp(11); /* * Live lvalues: * r3 */ { proceed(); } Define_label(mercury__term_add_3_0_i7); /* End of failure continuation */ { if (((Integer) r7 >= (Integer) r5)) GOTO_LABEL(mercury__term_add_3_0_i13); } /* Test for failure */ { detstackvar(4) = (Integer) r6; } /* Assigning from variable number 26 */ { r1 = (Integer) r8; } /* Assigning from Terms1 */ /* * Live lvalues: * r1 * r2 * detstackvar(4) * detstackvar(11) */ { localcall(mercury__term_add_3_0_l, LABEL(mercury__term_add_3_0_i15), LABEL(mercury__term_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(11) succip * r3 num(10) * detstackvar(4) num(11) */ /* branch to det procedure */ Define_label(mercury__term_add_3_0_i15); update_prof_current_proc(LABEL(mercury__term_add_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(1), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(4); } /* Assigning from */ { field(mktag(1), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(11); } /* restore the success ip */ decr_sp(11); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ Define_label(mercury__term_add_3_0_i13); /* End of failure continuation */ { detstackvar(9) = (Integer) r4; } /* Assigning from variable number 27 */ { r2 = (Integer) r3; } /* Assigning from Terms2 */ /* * Live lvalues: * r1 * r2 * detstackvar(9) * detstackvar(11) */ { localcall(mercury__term_add_3_0_l, LABEL(mercury__term_add_3_0_i17), LABEL(mercury__term_add_3_0_l)); } /* * Garbage collection livevals info * detstackvar(11) succip * r3 num(10) * detstackvar(9) num(11) */ /* branch to det procedure */ Define_label(mercury__term_add_3_0_i17); update_prof_current_proc(LABEL(mercury__term_add_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(1), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(9); } /* Assigning from */ { field(mktag(1), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(11); } /* restore the success ip */ decr_sp(11); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ Define_label(mercury__term_add_3_0_i1000); /* non-teardown parallel label */ { r3 = (Integer) r1; } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__term_add_3_0_i1001); /* non-teardown parallel label */ { r3 = (Integer) r2; } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate add_to_order_zero_term/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): Terms -> stackvar(1) List -> stackvar(1) C2 -> stackvar(2) */ Define_local(mercury__add_to_order_zero_term_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 != (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__add_to_order_zero_term_3_0_i1000); } /* jump to setup */ { incr_hp(r5, 4); } { r4 = (Integer) mkword(mktag(0), ((Integer) r5 + 8)); } /* vn flush */ { r3 = (Integer) mkword(mktag(1), (Integer) r5); } /* vn flush */ { field(mktag(1), (Integer) r3, 0) = (Integer) r4; } /* vn flush */ { field(mktag(1), (Integer) r3, 1) = (Integer) r1; } /* vn flush */ { field(mktag(0), (Integer) r4, 1) = (Integer) r2; } /* vn flush */ { field(mktag(0), (Integer) r4, 0) = 0; } /* vn flush */ /* * Live lvalues: * r3 */ { proceed(); } Define_label(mercury__add_to_order_zero_term_3_0_i1000); /* label for late setup code */ incr_sp(3); /* late setup after succip */ { r4 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { r5 = (Integer) field(mktag(0), (Integer) r4, 0); } /* vn flush */ { if (((Integer) r5 == 0)) GOTO_LABEL(mercury__add_to_order_zero_term_3_0_i8); } { Word temp1, temp2; { incr_hp(temp2, 4); } { temp1 = (Integer) mkword(mktag(0), ((Integer) temp2 + 8)); } /* vn flush */ { r3 = (Integer) mkword(mktag(1), (Integer) temp2); } /* vn flush */ { field(mktag(1), (Integer) r3, 0) = (Integer) temp1; } /* vn flush */ { field(mktag(1), (Integer) r3, 1) = (Integer) r1; } /* vn flush */ { field(mktag(0), (Integer) temp1, 1) = (Integer) r2; } /* vn flush */ { field(mktag(0), (Integer) temp1, 0) = 0; } /* vn flush */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* vn flush */ decr_sp(3); /* * Live lvalues: * r3 */ { proceed(); } } incr_sp(3); /* late setup */ { detstackvar(3) = (Integer) succip; } /* late save */ Define_label(mercury__add_to_order_zero_term_3_0_i8); { r3 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { detstackvar(1) = (Integer) field(mktag(1), (Integer) r1, 1); } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r3, 1); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) */ { localcall(mercury__poly_add_3_0_l, LABEL(mercury__add_to_order_zero_term_3_0_i9), LABEL(mercury__add_to_order_zero_term_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(8) * detstackvar(1) num(10) */ Define_label(mercury__add_to_order_zero_term_3_0_i9); update_prof_current_proc(LABEL(mercury__add_to_order_zero_term_3_0_l)); { incr_hp(r2, 4); } { r1 = (Integer) mkword(mktag(0), ((Integer) r2 + 8)); } /* vn flush */ { field(mktag(0), (Integer) r1, 1) = (Integer) r3; } /* vn flush */ { r3 = (Integer) mkword(mktag(1), (Integer) r2); } /* vn flush */ { field(mktag(1), (Integer) r3, 0) = (Integer) r1; } /* vn flush */ { field(mktag(1), (Integer) r3, 1) = (Integer) detstackvar(1); } /* vn flush */ { field(mktag(0), (Integer) r1, 0) = 0; } /* vn flush */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* vn flush */ decr_sp(3); /* * Live lvalues: * r3 */ { proceed(); } /*-------------------------------------------------------------------------*/ /* code for predicate poly_exp/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): N -> stackvar(1) Poly -> stackvar(2) */ Define_local(mercury__poly_exp_3_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* checking that N has functor 0 */ { r3 = (Integer) r1; } /* Assigning from variable number 15 */ { if (((Integer) r1 == 0)) GOTO_LABEL(mercury__poly_exp_3_0_i1000); } /* branch over failure (teardown redirect) */ { r4 = (((Integer) r1 / 2) * 2); } /* Assigning from variable number 17 */ { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r3 != (Integer) r4)) GOTO_LABEL(mercury__poly_exp_3_0_i1002); } /* jump to setup */ { r1 = ((Integer) r1 / 2); } /* vn flush */ incr_sp(3); /* late setup after succip */ { localcall(mercury__poly_exp_3_0_l, LABEL(mercury__poly_exp_3_0_i10), LABEL(mercury__poly_exp_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(8) */ Define_label(mercury__poly_exp_3_0_i10); update_prof_current_proc(LABEL(mercury__poly_exp_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* Assigning from Part */ { r2 = (Integer) r1; } /* Assigning from variable number 12 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { localtailcall(mercury__poly_mul_3_0_l, LABEL(mercury__poly_exp_3_0_l)); } /* branch to det procedure (redirected return) (redirected return) */ Define_label(mercury__poly_exp_3_0_i1002); /* label for late setup code */ incr_sp(3); /* late setup after succip */ { r1 = ((Integer) r1 - 1); } /* vn flush */ { detstackvar(2) = (Integer) r2; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(2) * detstackvar(3) */ { localcall(mercury__poly_exp_3_0_l, LABEL(mercury__poly_exp_3_0_i12), LABEL(mercury__poly_exp_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(8) * detstackvar(2) num(8) */ Define_label(mercury__poly_exp_3_0_i12); update_prof_current_proc(LABEL(mercury__poly_exp_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(2); } /* Assigning from Poly */ { r2 = (Integer) r3; } /* Assigning from Part */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { localtailcall(mercury__poly_mul_3_0_l, LABEL(mercury__poly_exp_3_0_l)); } /* branch to det procedure (redirected return) */ Define_label(mercury__poly_exp_3_0_i1000); /* non-teardown parallel label */ { static const Word mercury_const_7[] = { 1 }; r3 = mkword(mktag(1), mercury_const_7); } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ /*-------------------------------------------------------------------------*/ /* code for predicate poly_mul/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): Var1 -> stackvar(1) HeadVar__2 -> stackvar(2) Var2 -> stackvar(3) HeadVar__1 -> stackvar(4) Terms1 -> stackvar(5) Var2 -> stackvar(1) Terms2 -> stackvar(6) Var1 -> stackvar(1) */ Define_local(mercury__poly_mul_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if ((tag((Integer) r2) == mktag(0))) GOTO_LABEL(mercury__poly_mul_3_0_i1000); } /* jump to setup */ { if ((tag((Integer) r1) == mktag(0))) GOTO_LABEL(mercury__poly_mul_3_0_i1001); } /* jump to setup */ { tag_incr_hp(r3, mktag(1), 1); } { r4 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { r5 = (Integer) field(mktag(1), (Integer) r2, 0); } /* vn flush */ { field(mktag(1), (Integer) r3, 0) = ((Integer) r4 * (Integer) r5); } /* vn flush */ /* * Live lvalues: * r3 */ { proceed(); } Define_label(mercury__poly_mul_3_0_i1001); /* label for late setup code */ incr_sp(8); /* late setup after succip */ { detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 0); } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r1, 1); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__mul_through_3_0_l, LABEL(mercury__poly_mul_3_0_i25), LABEL(mercury__poly_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ Define_label(mercury__poly_mul_3_0_i25); update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_mul_3_0_i1000); /* label for late setup code */ incr_sp(8); /* late setup after succip */ /* checking that HeadVar__1 has functor 'poly'/2 */ { if ((tag((Integer) r1) == mktag(0))) GOTO_LABEL(mercury__poly_mul_3_0_i6); } /* tag test */ { detstackvar(1) = (Integer) field(mktag(0), (Integer) r2, 0); } /* vn flush */ /* src_liveval(vn_reg(r(2))), */ { r3 = (Integer) r1; } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r2, 1); } /* vn flush */ { r2 = (Integer) r3; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__mul_through_3_0_l, LABEL(mercury__poly_mul_3_0_i21), LABEL(mercury__poly_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ Define_label(mercury__poly_mul_3_0_i21); update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_mul_3_0_i6); /* next case */ { r3 = (Integer) field(mktag(0), (Integer) r2, 1); } /* Assigning from Terms2 */ { r4 = (Integer) field(mktag(0), (Integer) r1, 1); } /* Assigning from Terms1 */ { r5 = (Integer) field(mktag(0), (Integer) r2, 0); } /* Assigning from Var2 */ { r6 = (Integer) field(mktag(0), (Integer) r1, 0); } /* Assigning from Var1 */ { if (((Integer) r6 != (Integer) r5)) GOTO_LABEL(mercury__poly_mul_3_0_i7); } /* Test for failure */ { r1 = (Integer) r4; } /* vn flush */ { r2 = (Integer) r3; } /* vn flush */ { detstackvar(1) = (Integer) r6; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__term_mul_3_0_l, LABEL(mercury__poly_mul_3_0_i9), LABEL(mercury__poly_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ Define_label(mercury__poly_mul_3_0_i9); update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_mul_3_0_i7); { mark_hp(detstackvar(7)); } { detstackvar(2) = (Integer) r2; } /* vn flush */ { detstackvar(6) = (Integer) r3; } /* vn flush */ { r2 = (Integer) r6; } /* vn flush */ { r3 = (Integer) r5; } /* vn flush */ { detstackvar(1) = (Integer) r6; } /* vn flush */ { detstackvar(3) = (Integer) r5; } /* vn flush */ { detstackvar(4) = (Integer) r1; } /* vn flush */ { detstackvar(5) = (Integer) r4; } /* vn flush */ /* * Live lvalues: * r2 * r3 * detstackvar(1) * detstackvar(2) * detstackvar(3) * detstackvar(4) * detstackvar(5) * detstackvar(6) * detstackvar(7) * detstackvar(8) */ { localcall(mercury__lt_2_0_l, LABEL(mercury__poly_mul_3_0_i13), LABEL(mercury__poly_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * detstackvar(7) hp * detstackvar(1) num(9) * detstackvar(2) num(8) * detstackvar(3) num(9) * detstackvar(4) num(8) * detstackvar(5) num(10) * detstackvar(6) num(10) */ Define_label(mercury__poly_mul_3_0_i13); update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l)); /* Continuation label */ { if (!((Integer) r1)) GOTO_LABEL(mercury__poly_mul_3_0_i12); } /* fail */ { r1 = (Integer) detstackvar(5); } /* Assigning from Terms1 */ { r2 = (Integer) detstackvar(2); } /* Assigning from variable number 10 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(8) */ { localcall(mercury__mul_through_3_0_l, LABEL(mercury__poly_mul_3_0_i15), LABEL(mercury__poly_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(1) num(9) */ /* branch to det procedure */ Define_label(mercury__poly_mul_3_0_i15); update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__poly_mul_3_0_i12); { restore_hp((Integer) detstackvar(7)); } { r1 = (Integer) detstackvar(6); } /* vn flush */ { r2 = (Integer) detstackvar(4); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(3) * detstackvar(8) */ { localcall(mercury__mul_through_3_0_l, LABEL(mercury__poly_mul_3_0_i17), LABEL(mercury__poly_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(8) succip * r3 num(10) * detstackvar(3) num(9) */ Define_label(mercury__poly_mul_3_0_i17); update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(0), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(3); } /* Assigning from */ { field(mktag(0), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); } /* restore the success ip */ decr_sp(8); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate term_mul/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): Terms1 -> stackvar(1) PartA -> stackvar(1) HeadVar__2 -> stackvar(2) */ Define_local(mercury__term_mul_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__term_mul_3_0_i1001); } /* (teardown redirect) */ { if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__term_mul_3_0_i1000); } /* (teardown redirect) */ incr_sp(3); /* late setup after succip */ { detstackvar(1) = (Integer) field(mktag(1), (Integer) r1, 1); } /* vn flush */ { detstackvar(2) = (Integer) r2; } /* vn flush */ /* src_access(vn_field(1, 2, 3)), src_access(vn_field(1, 2, 3)), */ { r3 = (Integer) r1; } /* vn flush */ { r1 = (Integer) r2; } /* vn flush */ { r2 = (Integer) field(mktag(1), (Integer) r3, 0); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(2) * detstackvar(3) */ { localcall(mercury__single_term_mul_3_0_l, LABEL(mercury__term_mul_3_0_i7), LABEL(mercury__term_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(10) * detstackvar(1) num(10) * detstackvar(2) num(10) */ Define_label(mercury__term_mul_3_0_i7); update_prof_current_proc(LABEL(mercury__term_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(1); } /* shuffle lval */ { detstackvar(1) = (Integer) r3; } /* Assigning from PartA */ { r2 = (Integer) detstackvar(2); } /* Assigning from variable number 14 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) */ { localcall(mercury__term_mul_3_0_l, LABEL(mercury__term_mul_3_0_i8), LABEL(mercury__term_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(10) * detstackvar(1) num(10) */ /* branch to det procedure */ Define_label(mercury__term_mul_3_0_i8); update_prof_current_proc(LABEL(mercury__term_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(1); } /* Assigning from PartA */ { r2 = (Integer) r3; } /* Assigning from PartB */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { localtailcall(mercury__term_add_3_0_l, LABEL(mercury__term_mul_3_0_l)); } /* branch to det procedure (redirected return) (redirected return) */ Define_label(mercury__term_mul_3_0_i1000); /* non-teardown parallel label */ { r3 = (Integer) mkword(mktag(0), mkbody(0)); } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__term_mul_3_0_i1001); /* non-teardown parallel label */ { r3 = (Integer) mkword(mktag(0), mkbody(0)); } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate single_term_mul/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): HeadVar__2 -> stackvar(1) E -> stackvar(2) Terms1 -> stackvar(3) variable number 15 -> stackvar(1) */ Define_local(mercury__single_term_mul_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__single_term_mul_3_0_i1000); } /* (teardown redirect) */ incr_sp(4); /* late setup after succip */ { r3 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { detstackvar(1) = (Integer) r2; } /* vn flush */ { detstackvar(2) = ((Integer) field(mktag(0), (Integer) r3, 0) + (Integer) field(mktag(0), (Integer) r2, 0)); } /* vn flush */ { detstackvar(3) = (Integer) field(mktag(1), (Integer) r1, 1); } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r3, 1); } /* vn flush */ { r2 = (Integer) field(mktag(0), (Integer) r2, 1); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(2) * detstackvar(3) * detstackvar(4) */ { localcall(mercury__poly_mul_3_0_l, LABEL(mercury__single_term_mul_3_0_i5), LABEL(mercury__single_term_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(4) succip * r3 num(8) * detstackvar(1) num(11) * detstackvar(2) num(2) * detstackvar(3) num(10) */ Define_label(mercury__single_term_mul_3_0_i5); update_prof_current_proc(LABEL(mercury__single_term_mul_3_0_l)); { r2 = (Integer) detstackvar(1); } /* vn flush */ { tag_incr_hp(r4, mktag(0), 2); } { detstackvar(1) = (Integer) r4; } /* vn flush */ { r1 = (Integer) detstackvar(3); } /* vn flush */ { field(mktag(0), (Integer) r4, 1) = (Integer) r3; } /* vn flush */ { field(mktag(0), (Integer) r4, 0) = (Integer) detstackvar(2); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(4) */ { localcall(mercury__single_term_mul_3_0_l, LABEL(mercury__single_term_mul_3_0_i7), LABEL(mercury__single_term_mul_3_0_l)); } /* * Garbage collection livevals info * detstackvar(4) succip * r3 num(10) * detstackvar(1) num(11) */ Define_label(mercury__single_term_mul_3_0_i7); update_prof_current_proc(LABEL(mercury__single_term_mul_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(1), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(1), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(4); } /* restore the success ip */ decr_sp(4); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__single_term_mul_3_0_i1000); /* non-teardown parallel label */ { r3 = (Integer) mkword(mktag(0), mkbody(0)); } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate mul_through/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): Poly -> stackvar(1) variable number 12 -> stackvar(1) E -> stackvar(2) Terms -> stackvar(3) */ Define_local(mercury__mul_through_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__mul_through_3_0_i1000); } /* (teardown redirect) */ incr_sp(4); /* late setup after succip */ { r3 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { detstackvar(3) = (Integer) field(mktag(1), (Integer) r1, 1); } /* vn flush */ { r1 = (Integer) field(mktag(0), (Integer) r3, 1); } /* vn flush */ { r4 = (Integer) field(mktag(0), (Integer) r3, 0); } /* vn flush */ { detstackvar(1) = (Integer) r2; } /* vn flush */ { detstackvar(2) = (Integer) r4; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(2) * detstackvar(3) * detstackvar(4) */ { localcall(mercury__poly_mul_3_0_l, LABEL(mercury__mul_through_3_0_i5), LABEL(mercury__mul_through_3_0_l)); } /* * Garbage collection livevals info * detstackvar(4) succip * r3 num(8) * detstackvar(1) num(8) * detstackvar(2) num(2) * detstackvar(3) num(10) */ Define_label(mercury__mul_through_3_0_i5); update_prof_current_proc(LABEL(mercury__mul_through_3_0_l)); { r2 = (Integer) detstackvar(1); } /* vn flush */ { tag_incr_hp(r4, mktag(0), 2); } { detstackvar(1) = (Integer) r4; } /* vn flush */ { r1 = (Integer) detstackvar(3); } /* vn flush */ { field(mktag(0), (Integer) r4, 1) = (Integer) r3; } /* vn flush */ { field(mktag(0), (Integer) r4, 0) = (Integer) detstackvar(2); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(4) */ { localcall(mercury__mul_through_3_0_l, LABEL(mercury__mul_through_3_0_i7), LABEL(mercury__mul_through_3_0_l)); } /* * Garbage collection livevals info * detstackvar(4) succip * r3 num(10) * detstackvar(1) num(11) */ Define_label(mercury__mul_through_3_0_i7); update_prof_current_proc(LABEL(mercury__mul_through_3_0_l)); /* Continuation label */ { r1 = (Integer) r3; } /* shuffle lval */ { tag_incr_hp(r3, mktag(1), 2); } /* Allocating heap for HeadVar__3 */ { field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(1); } /* Assigning from */ { field(mktag(1), (Integer) r3, 1) = (Integer) r1; } /* Assigning from */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(4); } /* restore the success ip */ decr_sp(4); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__mul_through_3_0_i1000); /* non-teardown parallel label */ { r3 = (Integer) mkword(mktag(0), mkbody(0)); } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate lt/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__lt_2_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* checking that HeadVar__2 has functor 'y'/0 */ { if (((Integer) r3 != 1)) GOTO_LABEL(mercury__lt_2_0_i4); } /* tag test */ /* checking that HeadVar__1 has functor 'x'/0 */ { if (((Integer) r2 == 0)) GOTO_LABEL(mercury__lt_2_0_i6); } /* branch over failure */ /* no succip restoration */ /* no sp restoration */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury__lt_2_0_i6); /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury__lt_2_0_i4); /* next case */ /* checking that HeadVar__2 has functor 'z'/0 */ { if (((Integer) r3 != 2)) GOTO_LABEL(mercury__lt_2_0_i7); } /* tag test */ /* checking that HeadVar__1 has functor 'x'/0 */ { if (((Integer) r2 == 0)) GOTO_LABEL(mercury__lt_2_0_i8); } /* skip to the end of the switch */ /* checking that HeadVar__1 has functor 'y'/0 */ { if (((Integer) r2 == 1)) GOTO_LABEL(mercury__lt_2_0_i8); } /* skip to the end of the switch */ /* no succip restoration */ /* no sp restoration */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury__lt_2_0_i8); /* End of switch */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury__lt_2_0_i7); /* next case */ /* no succip restoration */ /* no sp restoration */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ /*-------------------------------------------------------------------------*/ /* code for predicate even/1 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__even_1_0_l); { if (((Integer) r2 != (((Integer) r2 / 2) * 2))) GOTO_LABEL(mercury__even_1_0_i1); } { r1 = TRUE; } /* vn flush */ /* * Live lvalues: * r1 */ { proceed(); } Define_label(mercury__even_1_0_i1); /* End of failure continuation */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate print_poly/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): N -> stackvar(1) Terms -> stackvar(1) Var -> stackvar(2) */ Define_local(mercury__print_poly_3_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* checking that HeadVar__1 has functor 'poly'/2 */ incr_sp(3); /* late setup */ { detstackvar(3) = (Integer) succip; } /* late save */ { if ((tag((Integer) r1) == mktag(0))) GOTO_LABEL(mercury__print_poly_3_0_i4); } /* tag test */ { detstackvar(1) = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ { r1 = string_const("const(", 6); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_poly_3_0_i10), LABEL(mercury__print_poly_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(1) num(2) */ Define_label(mercury__print_poly_3_0_i10); update_prof_current_proc(LABEL(mercury__print_poly_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(1); } /* Assigning from N */ { r2 = (Integer) r3; } /* Assigning from DCG_1 */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { Declare_entry(mercury__io__write_int_3_0); call(ENTRY(mercury__io__write_int_3_0), LABEL(mercury__print_poly_3_0_i11), LABEL(mercury__print_poly_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) */ /* branch to det procedure */ Define_label(mercury__print_poly_3_0_i11); update_prof_current_proc(LABEL(mercury__print_poly_3_0_l)); /* Continuation label */ { r1 = string_const(")", 1); } /* Assigning from variable number 9 */ { r2 = (Integer) r3; } /* Assigning from DCG_2 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_poly_3_0_l)); } /* branch to det procedure (redirected return) (redirected return) */ Define_label(mercury__print_poly_3_0_i4); { detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 1); } /* vn flush */ { detstackvar(2) = (Integer) field(mktag(0), (Integer) r1, 0); } /* vn flush */ { r1 = string_const("poly(", 5); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(2) * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_poly_3_0_i5), LABEL(mercury__print_poly_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(1) num(10) * detstackvar(2) num(9) */ Define_label(mercury__print_poly_3_0_i5); update_prof_current_proc(LABEL(mercury__print_poly_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(2); } /* Assigning from Var */ { r2 = (Integer) r3; } /* Assigning from DCG_1 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) */ { localcall(mercury__print_var_3_0_l, LABEL(mercury__print_poly_3_0_i6), LABEL(mercury__print_poly_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(1) num(10) */ /* branch to det procedure */ Define_label(mercury__print_poly_3_0_i6); update_prof_current_proc(LABEL(mercury__print_poly_3_0_l)); /* Continuation label */ { r1 = string_const(", ", 2); } /* Assigning from variable number 20 */ { r2 = (Integer) r3; } /* Assigning from DCG_2 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_poly_3_0_i7), LABEL(mercury__print_poly_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(1) num(10) */ /* branch to det procedure */ Define_label(mercury__print_poly_3_0_i7); update_prof_current_proc(LABEL(mercury__print_poly_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(1); } /* Assigning from Terms */ { r2 = (Integer) r3; } /* Assigning from DCG_3 */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { localcall(mercury__print_terms_3_0_l, LABEL(mercury__print_poly_3_0_i8), LABEL(mercury__print_poly_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) */ /* branch to det procedure */ Define_label(mercury__print_poly_3_0_i8); update_prof_current_proc(LABEL(mercury__print_poly_3_0_l)); /* Continuation label */ { r1 = string_const(")", 1); } /* Assigning from variable number 19 */ { r2 = (Integer) r3; } /* Assigning from DCG_4 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_poly_3_0_l)); } /* branch to det procedure (redirected return) */ /*-------------------------------------------------------------------------*/ /* code for predicate print_var/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__print_var_3_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* checking that HeadVar__1 has functor 'x'/0 */ { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 != 0)) GOTO_LABEL(mercury__print_var_3_0_i1001); } /* jump to setup */ { r1 = string_const("x", 1); } /* Assigning from variable number 6 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_var_3_0_l)); } /* branch to det procedure (redirected return) (redirected return) */ Define_label(mercury__print_var_3_0_i1001); /* label for late setup code */ { if (((Integer) r1 != 1)) GOTO_LABEL(mercury__print_var_3_0_i1000); } /* tag test (teardown redirect) */ { r1 = string_const("y", 1); } /* Assigning from variable number 9 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_var_3_0_l)); } /* branch to det procedure (redirected return) (redirected return) */ Define_label(mercury__print_var_3_0_i1000); /* non-teardown parallel label */ { r1 = string_const("z", 1); } /* Assigning from variable number 12 */ /* * Live lvalues: * r1 * r2 * detstackvar(1) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_var_3_0_l)); } /* branch to det procedure (redirected return) */ /*-------------------------------------------------------------------------*/ /* code for predicate print_terms/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): Terms -> stackvar(1) DCG_0 -> stackvar(2) */ Define_local(mercury__print_terms_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__print_terms_3_0_i1000); } /* (teardown redirect) */ incr_sp(3); /* late setup after succip */ { detstackvar(1) = (Integer) r1; } /* vn flush */ { r1 = string_const("[", 1); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_terms_3_0_i8), LABEL(mercury__print_terms_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(1) num(10) */ Define_label(mercury__print_terms_3_0_i8); update_prof_current_proc(LABEL(mercury__print_terms_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(1); } /* Assigning from Terms */ { r2 = (Integer) r3; } /* Assigning from DCG_2 */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { localcall(mercury__print_terms_2_3_0_l, LABEL(mercury__print_terms_3_0_i9), LABEL(mercury__print_terms_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) */ /* branch to det procedure */ Define_label(mercury__print_terms_3_0_i9); update_prof_current_proc(LABEL(mercury__print_terms_3_0_l)); /* Continuation label */ { r1 = string_const("]", 1); } /* Assigning from variable number 11 */ { r2 = (Integer) r3; } /* Assigning from DCG_3 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_terms_3_0_l)); } /* branch to det procedure (redirected return) */ Define_label(mercury__print_terms_3_0_i1000); /* non-teardown parallel label */ { r1 = string_const("[]\n", 3); } /* Assigning from variable number 10 */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_terms_3_0_l)); } /* branch to det procedure (redirected return) (redirected return) */ /*-------------------------------------------------------------------------*/ /* code for predicate print_terms_2/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): DCG_1 -> stackvar(1) Terms -> stackvar(2) */ Define_local(mercury__print_terms_2_3_0_l); { detstackvar(0) = (Integer) succip; } /* late save */ { if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__print_terms_2_3_0_i1001); } /* (teardown redirect) */ incr_sp(3); /* late setup after succip */ { detstackvar(2) = (Integer) field(mktag(1), (Integer) r1, 1); } /* vn flush */ { r1 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(2) * detstackvar(3) */ { localcall(mercury__print_term_3_0_l, LABEL(mercury__print_terms_2_3_0_i5), LABEL(mercury__print_terms_2_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(2) num(10) */ Define_label(mercury__print_terms_2_3_0_i5); update_prof_current_proc(LABEL(mercury__print_terms_2_3_0_l)); { if (((Integer) detstackvar(2) == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__print_terms_2_3_0_i9); } { r1 = string_const(", ", 2); } /* vn flush */ { r2 = (Integer) r3; } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(2) * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_terms_2_3_0_i10), LABEL(mercury__print_terms_2_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(2) num(10) */ Define_label(mercury__print_terms_2_3_0_i9); { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ Define_label(mercury__print_terms_2_3_0_i10); update_prof_current_proc(LABEL(mercury__print_terms_2_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(2); } /* Assigning from Terms */ { r2 = (Integer) r3; } /* Assigning from DCG_3 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ { if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0)))) GOTO_LABEL(mercury__print_terms_2_3_0_i4); } /* (teardown redirect) (original) */ { detstackvar(2) = (Integer) field(mktag(1), (Integer) r1, 1); } /* vn flush */ { r1 = (Integer) field(mktag(1), (Integer) r1, 0); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(2) * detstackvar(3) */ { localcall(mercury__print_term_3_0_l, LABEL(mercury__print_terms_2_3_0_i5), LABEL(mercury__print_terms_2_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(2) num(10) */ Define_label(mercury__print_terms_2_3_0_i4); /* next case */ { r3 = (Integer) r2; } /* Assigning from HeadVar__3 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ Define_label(mercury__print_terms_2_3_0_i1001); /* non-teardown parallel label */ { r3 = (Integer) r2; } /* Assigning from HeadVar__3 */ /* * Live lvalues: * r3 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate print_term/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): N -> stackvar(1) Poly -> stackvar(2) */ Define_local(mercury__print_term_3_0_l); incr_sp(3); /* late setup */ { detstackvar(3) = (Integer) succip; } /* late save */ { detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 0); } /* vn flush */ { detstackvar(2) = (Integer) field(mktag(0), (Integer) r1, 1); } /* vn flush */ { r1 = string_const("term(", 5); } /* vn flush */ /* * Live lvalues: * r1 * r2 * detstackvar(1) * detstackvar(2) * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_term_3_0_i3), LABEL(mercury__print_term_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(1) num(2) * detstackvar(2) num(8) */ Define_label(mercury__print_term_3_0_i3); update_prof_current_proc(LABEL(mercury__print_term_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(1); } /* Assigning from N */ { r2 = (Integer) r3; } /* Assigning from DCG_1 */ /* * Live lvalues: * r1 * r2 * detstackvar(2) * detstackvar(3) */ { Declare_entry(mercury__io__write_int_3_0); call(ENTRY(mercury__io__write_int_3_0), LABEL(mercury__print_term_3_0_i4), LABEL(mercury__print_term_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(2) num(8) */ /* branch to det procedure */ Define_label(mercury__print_term_3_0_i4); update_prof_current_proc(LABEL(mercury__print_term_3_0_l)); /* Continuation label */ { r1 = string_const(", ", 2); } /* Assigning from variable number 13 */ { r2 = (Integer) r3; } /* Assigning from DCG_2 */ /* * Live lvalues: * r1 * r2 * detstackvar(2) * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_term_3_0_i5), LABEL(mercury__print_term_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) * detstackvar(2) num(8) */ /* branch to det procedure */ Define_label(mercury__print_term_3_0_i5); update_prof_current_proc(LABEL(mercury__print_term_3_0_l)); /* Continuation label */ { r1 = (Integer) detstackvar(2); } /* Assigning from Poly */ { r2 = (Integer) r3; } /* Assigning from DCG_3 */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { localcall(mercury__print_poly_3_0_l, LABEL(mercury__print_term_3_0_i6), LABEL(mercury__print_term_3_0_l)); } /* * Garbage collection livevals info * detstackvar(3) succip * r3 num(7) */ /* branch to det procedure */ Define_label(mercury__print_term_3_0_i6); update_prof_current_proc(LABEL(mercury__print_term_3_0_l)); /* Continuation label */ { r1 = string_const(")", 1); } /* Assigning from variable number 12 */ { r2 = (Integer) r3; } /* Assigning from DCG_4 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); } /* restore the success ip */ decr_sp(3); /* Deallocate stack frame */ /* * Live lvalues: * r1 * r2 * detstackvar(3) */ { Declare_entry(mercury__io__write_string_3_0); tailcall(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__print_term_3_0_l)); } /* branch to det procedure (redirected return) */ /*-------------------------------------------------------------------------*/ /* code for predicate __Unify__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Unify___var_0_0); /* Procedure entry point */ /* End of procedure prologue */ { if (((Integer) r2 != (Integer) r3)) GOTO_LABEL(mercury____Unify___var_0_0_i1); } /* Test for failure */ /* Start of procedure epilogue */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ Define_label(mercury____Unify___var_0_0_i1); /* End of failure continuation */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate __Index__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Index___var_0_0); /* Procedure entry point */ /* End of procedure prologue */ /* * Live lvalues: * r1 * detstackvar(1) */ { Declare_entry(mercury__builtin_index_int_2_0); tailcall(ENTRY(mercury__builtin_index_int_2_0), LABEL(mercury____Index___var_0_0)); } /* branch to det procedure (redirected return) */ /*-------------------------------------------------------------------------*/ /* code for predicate __Compare__/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Compare___var_0_0); /* Procedure entry point */ /* End of procedure prologue */ /* * Live lvalues: * r2 * r3 * detstackvar(1) */ { Declare_entry(mercury__builtin_compare_int_3_0); tailcall(ENTRY(mercury__builtin_compare_int_3_0), LABEL(mercury____Compare___var_0_0)); } /* branch to det procedure (redirected return) */ /*-------------------------------------------------------------------------*/ /* code for predicate __Unify__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Unify___pterm_0_0); { r1 = (Integer) field(mktag(0), (Integer) r3, 0); } /* vn flush */ { r4 = (Integer) field(mktag(0), (Integer) r2, 0); } /* vn flush */ { if (((Integer) r4 != (Integer) r1)) GOTO_LABEL(mercury____Unify___pterm_0_0_i1000); } /* (teardown redirect) */ { r3 = (Integer) field(mktag(0), (Integer) r3, 1); } /* vn flush */ { r2 = (Integer) field(mktag(0), (Integer) r2, 1); } /* vn flush */ /* * Live lvalues: * r2 * r3 * detstackvar(1) */ { localtailcall(mercury____Unify___poly_0_0, LABEL(mercury____Unify___pterm_0_0)); } Define_label(mercury____Unify___pterm_0_0_i1000); /* non-teardown parallel label */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate __Index__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Index___pterm_0_0); /* Procedure entry point */ /* End of procedure prologue */ /* Start of procedure epilogue */ { r2 = 0; } /* Assigning from variable number 2 */ /* End of procedure epilogue */ /* * Live lvalues: * r2 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate __Compare__/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): variable number 8 -> stackvar(1) variable number 4 -> stackvar(1) variable number 6 -> stackvar(2) variable number 5 -> stackvar(3) variable number 7 -> stackvar(4) */ Define_entry(mercury____Compare___pterm_0_0); incr_sp(6); /* late setup */ { detstackvar(6) = (Integer) succip; } /* late save */ { mark_hp(detstackvar(5)); } { detstackvar(3) = (Integer) field(mktag(0), (Integer) r2, 1); } /* vn flush */ { detstackvar(4) = (Integer) field(mktag(0), (Integer) r3, 1); } /* vn flush */ { r2 = (Integer) field(mktag(0), (Integer) r2, 0); } /* vn flush */ { r3 = (Integer) field(mktag(0), (Integer) r3, 0); } /* vn flush */ /* * Live lvalues: * r2 * r3 * detstackvar(3) * detstackvar(4) * detstackvar(5) * detstackvar(6) */ { Declare_entry(mercury__builtin_compare_int_3_0); call(ENTRY(mercury__builtin_compare_int_3_0), LABEL(mercury____Compare___pterm_0_0_i5), LABEL(mercury____Compare___pterm_0_0)); } /* * Garbage collection livevals info * detstackvar(6) succip * r1 num(12) * detstackvar(5) hp * detstackvar(3) num(8) * detstackvar(4) num(8) */ Define_label(mercury____Compare___pterm_0_0_i5); update_prof_current_proc(LABEL(mercury____Compare___pterm_0_0)); { if (((Integer) r1 == 0)) GOTO_LABEL(mercury____Compare___pterm_0_0_i9); } { LVALUE_CAST(Word,succip) = (Integer) detstackvar(6); } /* vn flush */ decr_sp(6); /* * Live lvalues: * r1 */ { proceed(); } Define_label(mercury____Compare___pterm_0_0_i9); { restore_hp((Integer) detstackvar(5)); } { r2 = (Integer) detstackvar(3); } /* vn flush */ { r3 = (Integer) detstackvar(4); } /* vn flush */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(6); } /* vn flush */ decr_sp(6); /* * Live lvalues: * r2 * r3 * detstackvar(6) */ { localtailcall(mercury____Compare___poly_0_0, LABEL(mercury____Compare___pterm_0_0)); } /*-------------------------------------------------------------------------*/ /* code for predicate __Unify__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Unify___poly_0_0); { detstackvar(0) = (Integer) succip; } /* late save */ { if ((tag((Integer) r3) != mktag(0))) GOTO_LABEL(mercury____Unify___poly_0_0_i1001); } /* jump to setup */ { if ((tag((Integer) r2) == mktag(0))) GOTO_LABEL(mercury____Unify___poly_0_0_i1002); } /* jump to setup */ { r1 = FALSE; } /* vn flush */ /* * Live lvalues: * r1 */ { proceed(); } Define_label(mercury____Unify___poly_0_0_i1002); /* label for late setup code */ { r1 = (Integer) field(mktag(0), (Integer) r3, 0); } /* vn flush */ { r5 = (Integer) field(mktag(0), (Integer) r2, 0); } /* vn flush */ { if (((Integer) r5 != (Integer) r1)) GOTO_LABEL(mercury____Unify___poly_0_0_i1000); } /* (teardown redirect) */ { r4 = (Integer) field(mktag(0), (Integer) r3, 1); } /* vn flush */ { r3 = (Integer) field(mktag(0), (Integer) r2, 1); } /* vn flush */ { static const Word * mercury_const_7[] = { (Word *) 0, (Word *) (Integer) LABEL(mercury____Unify___pterm_0_0), (Word *) (Integer) LABEL(mercury____Index___pterm_0_0), (Word *) (Integer) LABEL(mercury____Compare___pterm_0_0) }; r2 = mkword(mktag(0), mercury_const_7); } /* vn flush */ /* * Live lvalues: * r2 * r3 * r4 * detstackvar(1) */ { Declare_entry(mercury____Unify___list_1_0); tailcall(ENTRY(mercury____Unify___list_1_0), LABEL(mercury____Unify___poly_0_0)); } Define_label(mercury____Unify___poly_0_0_i1001); /* label for late setup code */ incr_sp(1); /* late setup after succip */ /* checking that variable number 1 has functor 'const'/1 */ { if ((tag((Integer) r2) == mktag(1))) GOTO_LABEL(mercury____Unify___poly_0_0_i11); } /* branch over failure */ { r1 = FALSE; } /* Fail */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); } /* restore the success ip */ decr_sp(1); /* Deallocate stack frame */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury____Unify___poly_0_0_i11); { LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); } /* restore the success ip */ decr_sp(1); /* Deallocate stack frame */ { if (((Integer) field(mktag(1), (Integer) r2, 0) != (Integer) field(mktag(1), (Integer) r3, 0))) GOTO_LABEL(mercury____Unify___poly_0_0_i1000); } /* Test for failure (teardown redirect) */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ Define_label(mercury____Unify___poly_0_0_i1000); /* non-teardown parallel label */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate __Index__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Index___poly_0_0); /* Procedure entry point */ /* End of procedure prologue */ /* checking that variable number 1 has functor 'poly'/2 */ { if ((tag((Integer) r1) == mktag(0))) GOTO_LABEL(mercury____Index___poly_0_0_i4); } /* tag test */ { r2 = 1; } /* Assigning from variable number 2 */ /* no succip restoration */ /* no sp restoration */ /* * Live lvalues: * r2 */ { proceed(); } /* shortcircuit */ Define_label(mercury____Index___poly_0_0_i4); /* next case */ { r2 = 0; } /* Assigning from variable number 2 */ /* Start of procedure epilogue */ /* End of procedure epilogue */ /* * Live lvalues: * r2 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate __Compare__/3 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): variable number 8 -> stackvar(1) variable number 4 -> stackvar(2) variable number 2 -> stackvar(1) variable number 10 -> stackvar(3) variable number 9 -> stackvar(4) variable number 5 -> stackvar(5) variable number 3 -> stackvar(3) variable number 11 -> stackvar(4) variable number 7 -> stackvar(6) */ Define_entry(mercury____Compare___poly_0_0); /* Procedure entry point */ /* End of procedure prologue */ incr_sp(9); /* late setup */ { detstackvar(9) = (Integer) succip; } /* late save */ { detstackvar(1) = (Integer) r2; } /* Assigning from variable number 2 */ { detstackvar(3) = (Integer) r3; } /* Assigning from variable number 3 */ { r1 = (Integer) r2; } /* Assigning from variable number 2 */ /* * Live lvalues: * r1 * detstackvar(1) * detstackvar(3) * detstackvar(9) */ { localcall(mercury____Index___poly_0_0, LABEL(mercury____Compare___poly_0_0_i3), LABEL(mercury____Compare___poly_0_0)); } /* * Garbage collection livevals info * detstackvar(9) succip * r2 num(2) * detstackvar(1) num(8) * detstackvar(3) num(8) */ /* branch to det procedure */ Define_label(mercury____Compare___poly_0_0_i3); update_prof_current_proc(LABEL(mercury____Compare___poly_0_0)); /* Continuation label */ { detstackvar(2) = (Integer) r2; } /* Assigning from variable number 4 */ { r1 = (Integer) detstackvar(3); } /* Assigning from variable number 3 */ /* * Live lvalues: * r1 * detstackvar(1) * detstackvar(2) * detstackvar(3) * detstackvar(9) */ { localcall(mercury____Index___poly_0_0, LABEL(mercury____Compare___poly_0_0_i4), LABEL(mercury____Compare___poly_0_0)); } /* * Garbage collection livevals info * detstackvar(9) succip * r2 num(2) * detstackvar(1) num(8) * detstackvar(2) num(2) * detstackvar(3) num(8) */ /* branch to det procedure */ Define_label(mercury____Compare___poly_0_0_i4); update_prof_current_proc(LABEL(mercury____Compare___poly_0_0)); /* Continuation label */ { r1 = (Integer) detstackvar(3); } /* Assigning from variable number 3 */ { r3 = (Integer) detstackvar(1); } /* Assigning from variable number 2 */ { r4 = (Integer) detstackvar(2); } /* Assigning from variable number 4 */ { if (((Integer) r4 >= (Integer) r2)) GOTO_LABEL(mercury____Compare___poly_0_0_i5); } /* Test for failure */ { r1 = 1; } /* Assigning from variable number 1 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); } /* restore the success ip */ decr_sp(9); /* Deallocate stack frame */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury____Compare___poly_0_0_i5); /* End of failure continuation */ { if (((Integer) r4 <= (Integer) r2)) GOTO_LABEL(mercury____Compare___poly_0_0_i7); } /* Test for failure */ { r1 = 2; } /* Assigning from variable number 1 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); } /* restore the success ip */ decr_sp(9); /* Deallocate stack frame */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury____Compare___poly_0_0_i7); /* End of failure continuation */ { mark_hp(detstackvar(7)); } /* Save heap pointer */ /* checking that variable number 2 has functor 'poly'/2 */ { if ((tag((Integer) r3) != mktag(0))) GOTO_LABEL(mercury____Compare___poly_0_0_i12); } /* tag test */ /* checking that variable number 3 has functor 'poly'/2 */ { if ((tag((Integer) r1) == mktag(0))) GOTO_LABEL(mercury____Compare___poly_0_0_i14); } /* branch over failure */ { restore_hp((Integer) detstackvar(7)); } /* Restore heap pointer */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); } /* restore the success ip */ decr_sp(9); /* Deallocate stack frame */ /* * Live lvalues: * detstackvar(9) */ { Declare_entry(mercury__compare_error_0_0); tailcall(ENTRY(mercury__compare_error_0_0), LABEL(mercury____Compare___poly_0_0)); } /* branch to det procedure (redirected return) */ Define_label(mercury____Compare___poly_0_0_i14); { mark_hp(detstackvar(8)); } { r2 = (Integer) field(mktag(0), (Integer) r3, 0); } /* vn flush */ { detstackvar(1) = (Integer) field(mktag(0), (Integer) r3, 1); } /* vn flush */ { r3 = (Integer) field(mktag(0), (Integer) r1, 0); } /* vn flush */ { r4 = (Integer) field(mktag(0), (Integer) r1, 1); } /* vn flush */ { detstackvar(3) = (Integer) r4; } /* vn flush */ /* * Live lvalues: * r2 * r3 * detstackvar(1) * detstackvar(3) * detstackvar(7) * detstackvar(8) * detstackvar(9) */ { Declare_entry(mercury__builtin_compare_int_3_0); call(ENTRY(mercury__builtin_compare_int_3_0), LABEL(mercury____Compare___poly_0_0_i17), LABEL(mercury____Compare___poly_0_0)); } /* * Garbage collection livevals info * detstackvar(9) succip * r1 num(12) * detstackvar(8) hp * detstackvar(7) hp * detstackvar(1) num(10) * detstackvar(3) num(10) */ Define_label(mercury____Compare___poly_0_0_i17); update_prof_current_proc(LABEL(mercury____Compare___poly_0_0)); { if (((Integer) r1 != 0)) GOTO_LABEL(mercury____Compare___poly_0_0_i29); } { restore_hp((Integer) detstackvar(8)); } { static const Word * mercury_const_22[] = { (Word *) 0, (Word *) (Integer) LABEL(mercury____Unify___pterm_0_0), (Word *) (Integer) LABEL(mercury____Index___pterm_0_0), (Word *) (Integer) LABEL(mercury____Compare___pterm_0_0) }; r1 = mkword(mktag(0), mercury_const_22); } /* vn flush */ { r3 = (Integer) detstackvar(1); } /* vn flush */ { r4 = (Integer) detstackvar(3); } /* vn flush */ /* * Live lvalues: * r1 * r3 * r4 * detstackvar(7) * detstackvar(9) */ { Declare_entry(mercury____Compare___list_1_0); call(ENTRY(mercury____Compare___list_1_0), LABEL(mercury____Compare___poly_0_0_i24), LABEL(mercury____Compare___poly_0_0)); } /* * Garbage collection livevals info * detstackvar(9) succip * r2 num(12) * detstackvar(7) hp */ Define_label(mercury____Compare___poly_0_0_i24); update_prof_current_proc(LABEL(mercury____Compare___poly_0_0)); /* end of if-then-else */ { r1 = (Integer) r2; } /* Assigning from variable number 1 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); } /* restore the success ip */ decr_sp(9); /* Deallocate stack frame */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ Define_label(mercury____Compare___poly_0_0_i12); /* next case */ /* checking that variable number 3 has functor 'const'/1 */ { if ((tag((Integer) r1) == mktag(1))) GOTO_LABEL(mercury____Compare___poly_0_0_i26); } /* branch over failure */ { restore_hp((Integer) detstackvar(7)); } /* Restore heap pointer */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); } /* restore the success ip */ decr_sp(9); /* Deallocate stack frame */ /* * Live lvalues: * detstackvar(9) */ { Declare_entry(mercury__compare_error_0_0); tailcall(ENTRY(mercury__compare_error_0_0), LABEL(mercury____Compare___poly_0_0)); } /* branch to det procedure (redirected return) */ Define_label(mercury____Compare___poly_0_0_i26); { r2 = (Integer) field(mktag(1), (Integer) r3, 0); } /* Assigning from variable number 12 */ { r3 = (Integer) field(mktag(1), (Integer) r1, 0); } /* Assigning from variable number 13 */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); } /* vn flush */ decr_sp(9); /* * Live lvalues: * r2 * r3 * detstackvar(7) * detstackvar(9) */ { Declare_entry(mercury__builtin_compare_int_3_0); tailcall(ENTRY(mercury__builtin_compare_int_3_0), LABEL(mercury____Compare___poly_0_0)); } /* branch to det procedure (redirected return) */ Define_label(mercury____Compare___poly_0_0_i29); /* end of if-then-else */ { LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); } /* restore the success ip */ decr_sp(9); /* Deallocate stack frame */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ END_MODULE #if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \ || defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \ || defined(DEBUG_LABELS) || !defined(SPEED) static void mercury__poly_bunch_0(void) { mercury__poly_module(); } #endif void mercury__poly__init(void); /* suppress gcc warning */ void mercury__poly__init(void) { #if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \ || defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \ || defined(DEBUG_LABELS) || !defined(SPEED) mercury__poly_bunch_0(); #endif }