/*
** Automatically generated from `deriv.m' by the
** Mercury compiler, version 0.5-beta. Do not edit.
*/
/*
INIT mercury__deriv__init
ENDINIT
*/
#include "imp.h"
Define_extern_entry(mercury__benchmark_1_0);
Declare_label(mercury__benchmark_1_0_i3);
Declare_label(mercury__benchmark_1_0_i4);
Declare_label(mercury__benchmark_1_0_i5);
Declare_label(mercury__benchmark_1_0_i6);
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);
Declare_label(mercury__main_2_0_i6);
Declare_label(mercury__main_2_0_i7);
Declare_label(mercury__main_2_0_i8);
Declare_label(mercury__main_2_0_i9);
Declare_label(mercury__main_2_0_i10);
Declare_label(mercury__main_2_0_i11);
Declare_label(mercury__main_2_0_i12);
Declare_label(mercury__main_2_0_i13);
Declare_label(mercury__main_2_0_i14);
Declare_local(mercury__times10_1_0_l);
Declare_label(mercury__times10_1_0_i12);
Declare_local(mercury__log10_1_0_l);
Declare_label(mercury__log10_1_0_i13);
Declare_local(mercury__ops8_1_0_l);
Declare_label(mercury__ops8_1_0_i13);
Declare_local(mercury__divide10_1_0_l);
Declare_label(mercury__divide10_1_0_i12);
Declare_local(mercury__d_3_0_l);
Declare_label(mercury__d_3_0_i1008);
Declare_label(mercury__d_3_0_i1007);
Declare_label(mercury__d_3_0_i1006);
Declare_label(mercury__d_3_0_i1005);
Declare_label(mercury__d_3_0_i1004);
Declare_label(mercury__d_3_0_i1003);
Declare_label(mercury__d_3_0_i8);
Declare_label(mercury__d_3_0_i10);
Declare_label(mercury__d_3_0_i17);
Declare_label(mercury__d_3_0_i18);
Declare_label(mercury__d_3_0_i21);
Declare_label(mercury__d_3_0_i22);
Declare_label(mercury__d_3_0_i25);
Declare_label(mercury__d_3_0_i30);
Declare_label(mercury__d_3_0_i34);
Declare_label(mercury__d_3_0_i1002);
Declare_label(mercury__d_3_0_i41);
Declare_label(mercury__d_3_0_i42);
Declare_label(mercury__d_3_0_i36);
Declare_label(mercury__d_3_0_i45);
Declare_label(mercury__d_3_0_i44);
Declare_label(mercury__d_3_0_i47);
Declare_label(mercury__d_3_0_i49);
Declare_label(mercury__d_3_0_i1000);
Declare_local(mercury__print_expr_3_0_l);
Declare_label(mercury__print_expr_3_0_i1015);
Declare_label(mercury__print_expr_3_0_i1014);
Declare_label(mercury__print_expr_3_0_i1013);
Declare_label(mercury__print_expr_3_0_i1012);
Declare_label(mercury__print_expr_3_0_i1011);
Declare_label(mercury__print_expr_3_0_i1010);
Declare_label(mercury__print_expr_3_0_i7);
Declare_label(mercury__print_expr_3_0_i8);
Declare_label(mercury__print_expr_3_0_i9);
Declare_label(mercury__print_expr_3_0_i10);
Declare_label(mercury__print_expr_3_0_i15);
Declare_label(mercury__print_expr_3_0_i16);
Declare_label(mercury__print_expr_3_0_i17);
Declare_label(mercury__print_expr_3_0_i18);
Declare_label(mercury__print_expr_3_0_i21);
Declare_label(mercury__print_expr_3_0_i22);
Declare_label(mercury__print_expr_3_0_i23);
Declare_label(mercury__print_expr_3_0_i24);
Declare_label(mercury__print_expr_3_0_i27);
Declare_label(mercury__print_expr_3_0_i28);
Declare_label(mercury__print_expr_3_0_i31);
Declare_label(mercury__print_expr_3_0_i32);
Declare_label(mercury__print_expr_3_0_i33);
Declare_label(mercury__print_expr_3_0_i34);
Declare_label(mercury__print_expr_3_0_i37);
Declare_label(mercury__print_expr_3_0_i38);
Declare_label(mercury__print_expr_3_0_i1009);
Declare_label(mercury__print_expr_3_0_i40);
Declare_label(mercury__print_expr_3_0_i43);
Declare_label(mercury__print_expr_3_0_i44);
Declare_label(mercury__print_expr_3_0_i42);
Declare_label(mercury__print_expr_3_0_i46);
Declare_label(mercury__print_expr_3_0_i47);
Declare_label(mercury__print_expr_3_0_i48);
Declare_label(mercury__print_expr_3_0_i49);
Declare_label(mercury__print_expr_3_0_i1001);
Define_extern_entry(mercury____Unify___expr_0_0);
Declare_label(mercury____Unify___expr_0_0_i1012);
Declare_label(mercury____Unify___expr_0_0_i1011);
Declare_label(mercury____Unify___expr_0_0_i1010);
Declare_label(mercury____Unify___expr_0_0_i1009);
Declare_label(mercury____Unify___expr_0_0_i1008);
Declare_label(mercury____Unify___expr_0_0_i1007);
Declare_label(mercury____Unify___expr_0_0_i1006);
Declare_label(mercury____Unify___expr_0_0_i8);
Declare_label(mercury____Unify___expr_0_0_i9);
Declare_label(mercury____Unify___expr_0_0_i15);
Declare_label(mercury____Unify___expr_0_0_i18);
Declare_label(mercury____Unify___expr_0_0_i19);
Declare_label(mercury____Unify___expr_0_0_i25);
Declare_label(mercury____Unify___expr_0_0_i26);
Declare_label(mercury____Unify___expr_0_0_i37);
Declare_label(mercury____Unify___expr_0_0_i38);
Declare_label(mercury____Unify___expr_0_0_i1005);
Declare_label(mercury____Unify___expr_0_0_i45);
Declare_label(mercury____Unify___expr_0_0_i48);
Declare_label(mercury____Unify___expr_0_0_i54);
Declare_label(mercury____Unify___expr_0_0_i55);
Declare_label(mercury____Unify___expr_0_0_i1);
Declare_label(mercury____Unify___expr_0_0_i1000);
Declare_label(mercury____Unify___expr_0_0_i1001);
Declare_label(mercury____Unify___expr_0_0_i1002);
Declare_label(mercury____Unify___expr_0_0_i1003);
Declare_label(mercury____Unify___expr_0_0_i1004);
Define_extern_entry(mercury____Index___expr_0_0);
Declare_label(mercury____Index___expr_0_0_i6);
Declare_label(mercury____Index___expr_0_0_i7);
Declare_label(mercury____Index___expr_0_0_i8);
Declare_label(mercury____Index___expr_0_0_i9);
Declare_label(mercury____Index___expr_0_0_i10);
Declare_label(mercury____Index___expr_0_0_i11);
Declare_label(mercury____Index___expr_0_0_i12);
Declare_label(mercury____Index___expr_0_0_i5);
Declare_label(mercury____Index___expr_0_0_i13);
Declare_label(mercury____Index___expr_0_0_i14);
Define_extern_entry(mercury____Compare___expr_0_0);
Declare_label(mercury____Compare___expr_0_0_i3);
Declare_label(mercury____Compare___expr_0_0_i4);
Declare_label(mercury____Compare___expr_0_0_i5);
Declare_label(mercury____Compare___expr_0_0_i7);
Declare_label(mercury____Compare___expr_0_0_i14);
Declare_label(mercury____Compare___expr_0_0_i16);
Declare_label(mercury____Compare___expr_0_0_i19);
Declare_label(mercury____Compare___expr_0_0_i26);
Declare_label(mercury____Compare___expr_0_0_i28);
Declare_label(mercury____Compare___expr_0_0_i30);
Declare_label(mercury____Compare___expr_0_0_i32);
Declare_label(mercury____Compare___expr_0_0_i35);
Declare_label(mercury____Compare___expr_0_0_i42);
Declare_label(mercury____Compare___expr_0_0_i44);
Declare_label(mercury____Compare___expr_0_0_i47);
Declare_label(mercury____Compare___expr_0_0_i54);
Declare_label(mercury____Compare___expr_0_0_i56);
Declare_label(mercury____Compare___expr_0_0_i58);
Declare_label(mercury____Compare___expr_0_0_i60);
Declare_label(mercury____Compare___expr_0_0_i63);
Declare_label(mercury____Compare___expr_0_0_i70);
Declare_label(mercury____Compare___expr_0_0_i72);
Declare_label(mercury____Compare___expr_0_0_i13);
Declare_label(mercury____Compare___expr_0_0_i76);
Declare_label(mercury____Compare___expr_0_0_i74);
Declare_label(mercury____Compare___expr_0_0_i79);
Declare_label(mercury____Compare___expr_0_0_i77);
Declare_label(mercury____Compare___expr_0_0_i82);
Declare_label(mercury____Compare___expr_0_0_i85);
Declare_label(mercury____Compare___expr_0_0_i89);
Declare_label(mercury____Compare___expr_0_0_i93);
Define_extern_entry(mercury____Unify___quad_0_0);
Declare_label(mercury____Unify___quad_0_0_i3);
Declare_label(mercury____Unify___quad_0_0_i5);
Declare_label(mercury____Unify___quad_0_0_i7);
Declare_label(mercury____Unify___quad_0_0_i1);
Define_extern_entry(mercury____Index___quad_0_0);
Define_extern_entry(mercury____Compare___quad_0_0);
Declare_label(mercury____Compare___quad_0_0_i5);
Declare_label(mercury____Compare___quad_0_0_i9);
Declare_label(mercury____Compare___quad_0_0_i12);
Declare_label(mercury____Compare___quad_0_0_i16);
Declare_label(mercury____Compare___quad_0_0_i19);
Declare_label(mercury____Compare___quad_0_0_i23);
BEGIN_MODULE(mercury__deriv_module)
init_entry(mercury__benchmark_1_0);
init_label(mercury__benchmark_1_0_i3);
init_label(mercury__benchmark_1_0_i4);
init_label(mercury__benchmark_1_0_i5);
init_label(mercury__benchmark_1_0_i6);
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_label(mercury__main_2_0_i6);
init_label(mercury__main_2_0_i7);
init_label(mercury__main_2_0_i8);
init_label(mercury__main_2_0_i9);
init_label(mercury__main_2_0_i10);
init_label(mercury__main_2_0_i11);
init_label(mercury__main_2_0_i12);
init_label(mercury__main_2_0_i13);
init_label(mercury__main_2_0_i14);
init_local(mercury__times10_1_0_l);
init_label(mercury__times10_1_0_i12);
init_local(mercury__log10_1_0_l);
init_label(mercury__log10_1_0_i13);
init_local(mercury__ops8_1_0_l);
init_label(mercury__ops8_1_0_i13);
init_local(mercury__divide10_1_0_l);
init_label(mercury__divide10_1_0_i12);
init_local(mercury__d_3_0_l);
init_label(mercury__d_3_0_i1008);
init_label(mercury__d_3_0_i1007);
init_label(mercury__d_3_0_i1006);
init_label(mercury__d_3_0_i1005);
init_label(mercury__d_3_0_i1004);
init_label(mercury__d_3_0_i1003);
init_label(mercury__d_3_0_i8);
init_label(mercury__d_3_0_i10);
init_label(mercury__d_3_0_i17);
init_label(mercury__d_3_0_i18);
init_label(mercury__d_3_0_i21);
init_label(mercury__d_3_0_i22);
init_label(mercury__d_3_0_i25);
init_label(mercury__d_3_0_i30);
init_label(mercury__d_3_0_i34);
init_label(mercury__d_3_0_i1002);
init_label(mercury__d_3_0_i41);
init_label(mercury__d_3_0_i42);
init_label(mercury__d_3_0_i36);
init_label(mercury__d_3_0_i45);
init_label(mercury__d_3_0_i44);
init_label(mercury__d_3_0_i47);
init_label(mercury__d_3_0_i49);
init_label(mercury__d_3_0_i1000);
init_local(mercury__print_expr_3_0_l);
init_label(mercury__print_expr_3_0_i1015);
init_label(mercury__print_expr_3_0_i1014);
init_label(mercury__print_expr_3_0_i1013);
init_label(mercury__print_expr_3_0_i1012);
init_label(mercury__print_expr_3_0_i1011);
init_label(mercury__print_expr_3_0_i1010);
init_label(mercury__print_expr_3_0_i7);
init_label(mercury__print_expr_3_0_i8);
init_label(mercury__print_expr_3_0_i9);
init_label(mercury__print_expr_3_0_i10);
init_label(mercury__print_expr_3_0_i15);
init_label(mercury__print_expr_3_0_i16);
init_label(mercury__print_expr_3_0_i17);
init_label(mercury__print_expr_3_0_i18);
init_label(mercury__print_expr_3_0_i21);
init_label(mercury__print_expr_3_0_i22);
init_label(mercury__print_expr_3_0_i23);
init_label(mercury__print_expr_3_0_i24);
init_label(mercury__print_expr_3_0_i27);
init_label(mercury__print_expr_3_0_i28);
init_label(mercury__print_expr_3_0_i31);
init_label(mercury__print_expr_3_0_i32);
init_label(mercury__print_expr_3_0_i33);
init_label(mercury__print_expr_3_0_i34);
init_label(mercury__print_expr_3_0_i37);
init_label(mercury__print_expr_3_0_i38);
init_label(mercury__print_expr_3_0_i1009);
init_label(mercury__print_expr_3_0_i40);
init_label(mercury__print_expr_3_0_i43);
init_label(mercury__print_expr_3_0_i44);
init_label(mercury__print_expr_3_0_i42);
init_label(mercury__print_expr_3_0_i46);
init_label(mercury__print_expr_3_0_i47);
init_label(mercury__print_expr_3_0_i48);
init_label(mercury__print_expr_3_0_i49);
init_label(mercury__print_expr_3_0_i1001);
init_entry(mercury____Unify___expr_0_0);
init_label(mercury____Unify___expr_0_0_i1012);
init_label(mercury____Unify___expr_0_0_i1011);
init_label(mercury____Unify___expr_0_0_i1010);
init_label(mercury____Unify___expr_0_0_i1009);
init_label(mercury____Unify___expr_0_0_i1008);
init_label(mercury____Unify___expr_0_0_i1007);
init_label(mercury____Unify___expr_0_0_i1006);
init_label(mercury____Unify___expr_0_0_i8);
init_label(mercury____Unify___expr_0_0_i9);
init_label(mercury____Unify___expr_0_0_i15);
init_label(mercury____Unify___expr_0_0_i18);
init_label(mercury____Unify___expr_0_0_i19);
init_label(mercury____Unify___expr_0_0_i25);
init_label(mercury____Unify___expr_0_0_i26);
init_label(mercury____Unify___expr_0_0_i37);
init_label(mercury____Unify___expr_0_0_i38);
init_label(mercury____Unify___expr_0_0_i1005);
init_label(mercury____Unify___expr_0_0_i45);
init_label(mercury____Unify___expr_0_0_i48);
init_label(mercury____Unify___expr_0_0_i54);
init_label(mercury____Unify___expr_0_0_i55);
init_label(mercury____Unify___expr_0_0_i1);
init_label(mercury____Unify___expr_0_0_i1000);
init_label(mercury____Unify___expr_0_0_i1001);
init_label(mercury____Unify___expr_0_0_i1002);
init_label(mercury____Unify___expr_0_0_i1003);
init_label(mercury____Unify___expr_0_0_i1004);
init_entry(mercury____Index___expr_0_0);
init_label(mercury____Index___expr_0_0_i6);
init_label(mercury____Index___expr_0_0_i7);
init_label(mercury____Index___expr_0_0_i8);
init_label(mercury____Index___expr_0_0_i9);
init_label(mercury____Index___expr_0_0_i10);
init_label(mercury____Index___expr_0_0_i11);
init_label(mercury____Index___expr_0_0_i12);
init_label(mercury____Index___expr_0_0_i5);
init_label(mercury____Index___expr_0_0_i13);
init_label(mercury____Index___expr_0_0_i14);
init_entry(mercury____Compare___expr_0_0);
init_label(mercury____Compare___expr_0_0_i3);
init_label(mercury____Compare___expr_0_0_i4);
init_label(mercury____Compare___expr_0_0_i5);
init_label(mercury____Compare___expr_0_0_i7);
init_label(mercury____Compare___expr_0_0_i14);
init_label(mercury____Compare___expr_0_0_i16);
init_label(mercury____Compare___expr_0_0_i19);
init_label(mercury____Compare___expr_0_0_i26);
init_label(mercury____Compare___expr_0_0_i28);
init_label(mercury____Compare___expr_0_0_i30);
init_label(mercury____Compare___expr_0_0_i32);
init_label(mercury____Compare___expr_0_0_i35);
init_label(mercury____Compare___expr_0_0_i42);
init_label(mercury____Compare___expr_0_0_i44);
init_label(mercury____Compare___expr_0_0_i47);
init_label(mercury____Compare___expr_0_0_i54);
init_label(mercury____Compare___expr_0_0_i56);
init_label(mercury____Compare___expr_0_0_i58);
init_label(mercury____Compare___expr_0_0_i60);
init_label(mercury____Compare___expr_0_0_i63);
init_label(mercury____Compare___expr_0_0_i70);
init_label(mercury____Compare___expr_0_0_i72);
init_label(mercury____Compare___expr_0_0_i13);
init_label(mercury____Compare___expr_0_0_i76);
init_label(mercury____Compare___expr_0_0_i74);
init_label(mercury____Compare___expr_0_0_i79);
init_label(mercury____Compare___expr_0_0_i77);
init_label(mercury____Compare___expr_0_0_i82);
init_label(mercury____Compare___expr_0_0_i85);
init_label(mercury____Compare___expr_0_0_i89);
init_label(mercury____Compare___expr_0_0_i93);
init_entry(mercury____Unify___quad_0_0);
init_label(mercury____Unify___quad_0_0_i3);
init_label(mercury____Unify___quad_0_0_i5);
init_label(mercury____Unify___quad_0_0_i7);
init_label(mercury____Unify___quad_0_0_i1);
init_entry(mercury____Index___quad_0_0);
init_entry(mercury____Compare___quad_0_0);
init_label(mercury____Compare___quad_0_0_i5);
init_label(mercury____Compare___quad_0_0_i9);
init_label(mercury____Compare___quad_0_0_i12);
init_label(mercury____Compare___quad_0_0_i16);
init_label(mercury____Compare___quad_0_0_i19);
init_label(mercury____Compare___quad_0_0_i23);
BEGIN_CODE
/*-------------------------------------------------------------------------*/
/* code for predicate benchmark/1 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
E3 -> stackvar(1)
E1 -> stackvar(2)
E2 -> stackvar(3)
*/
Define_entry(mercury__benchmark_1_0);
/* Procedure entry point */
/* End of procedure prologue */
incr_sp(4);
/* late setup */
{ detstackvar(4) = (Integer) succip; }
/* late save */
{ localcall(mercury__ops8_1_0_l,
LABEL(mercury__benchmark_1_0_i3),
LABEL(mercury__benchmark_1_0)); }
/*
* Garbage collection livevals info
* detstackvar(4) succip
* r1 num(7)
*/
/* branch to det procedure */
Define_label(mercury__benchmark_1_0_i3);
update_prof_current_proc(LABEL(mercury__benchmark_1_0));
/* Continuation label */
{ detstackvar(2) = (Integer) r1; }
/* Assigning from E1 */
/*
* Live lvalues:
* detstackvar(2)
* detstackvar(4)
*/
{ localcall(mercury__divide10_1_0_l,
LABEL(mercury__benchmark_1_0_i4),
LABEL(mercury__benchmark_1_0)); }
/*
* Garbage collection livevals info
* detstackvar(4) succip
* r1 num(7)
* detstackvar(2) num(7)
*/
/* branch to det procedure */
Define_label(mercury__benchmark_1_0_i4);
update_prof_current_proc(LABEL(mercury__benchmark_1_0));
/* Continuation label */
{ detstackvar(3) = (Integer) r1; }
/* Assigning from E2 */
/*
* Live lvalues:
* detstackvar(2)
* detstackvar(3)
* detstackvar(4)
*/
{ localcall(mercury__log10_1_0_l,
LABEL(mercury__benchmark_1_0_i5),
LABEL(mercury__benchmark_1_0)); }
/*
* Garbage collection livevals info
* detstackvar(4) succip
* r1 num(7)
* detstackvar(2) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury__benchmark_1_0_i5);
update_prof_current_proc(LABEL(mercury__benchmark_1_0));
/* Continuation label */
{ detstackvar(1) = (Integer) r1; }
/* Assigning from E3 */
/*
* Live lvalues:
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
* detstackvar(4)
*/
{ localcall(mercury__times10_1_0_l,
LABEL(mercury__benchmark_1_0_i6),
LABEL(mercury__benchmark_1_0)); }
/*
* Garbage collection livevals info
* detstackvar(4) succip
* r1 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury__benchmark_1_0_i6);
update_prof_current_proc(LABEL(mercury__benchmark_1_0));
/* Continuation label */
/* Start of procedure epilogue */
{ r2 = (Integer) r1; }
/* shuffle lval */
{ tag_incr_hp(r1, mktag(0), 4); }
/* Allocating heap for HeadVar__1 */
{ field(mktag(0), (Integer) r1, 0) = (Integer) detstackvar(2); }
/* Assigning from */
{ field(mktag(0), (Integer) r1, 1) = (Integer) detstackvar(3); }
/* Assigning from */
{ field(mktag(0), (Integer) r1, 2) = (Integer) detstackvar(1); }
/* Assigning from */
{ field(mktag(0), (Integer) r1, 3) = (Integer) r2; }
/* Assigning from */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(4); }
/* restore the success ip */
decr_sp(4);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* Return from procedure call */
/*-------------------------------------------------------------------------*/
/* code for predicate main/2 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
DCG_2 -> stackvar(1)
DCG_6 -> stackvar(1)
DCG_4 -> stackvar(1)
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__ops8_1_0_l,
LABEL(mercury__main_2_0_i3),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r1 num(7)
* detstackvar(1) num(8)
*/
/* 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_expr_3_0_l,
LABEL(mercury__main_2_0_i4),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r3 num(8)
*/
/* 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\n", 2); }
/* Assigning from variable number 19 */
{ 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(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i5);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ detstackvar(1) = (Integer) r3; }
/* Assigning from DCG_2 */
/*
* Live lvalues:
* detstackvar(1)
* detstackvar(2)
*/
{ localcall(mercury__divide10_1_0_l,
LABEL(mercury__main_2_0_i6),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r1 num(7)
* detstackvar(1) num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i6);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ r2 = (Integer) detstackvar(1); }
/* Assigning from DCG_2 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(2)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__main_2_0_i7),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i7);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ r1 = string_const("\n\n", 2); }
/* Assigning from variable number 18 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_3 */
/*
* 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_i8),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i8);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ detstackvar(1) = (Integer) r3; }
/* Assigning from DCG_4 */
/*
* Live lvalues:
* detstackvar(1)
* detstackvar(2)
*/
{ localcall(mercury__log10_1_0_l,
LABEL(mercury__main_2_0_i9),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r1 num(7)
* detstackvar(1) num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i9);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ r2 = (Integer) detstackvar(1); }
/* Assigning from DCG_4 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(2)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__main_2_0_i10),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i10);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ r1 = string_const("\n\n", 2); }
/* Assigning from variable number 17 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_5 */
/*
* 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_i11),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i11);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ detstackvar(1) = (Integer) r3; }
/* Assigning from DCG_6 */
/*
* Live lvalues:
* detstackvar(1)
* detstackvar(2)
*/
{ localcall(mercury__times10_1_0_l,
LABEL(mercury__main_2_0_i12),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r1 num(7)
* detstackvar(1) num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i12);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ r2 = (Integer) detstackvar(1); }
/* Assigning from DCG_6 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(2)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__main_2_0_i13),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i13);
update_prof_current_proc(LABEL(mercury__main_2_0));
/* Continuation label */
{ r1 = string_const("\n", 1); }
/* Assigning from variable number 16 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_7 */
/*
* 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_i14),
LABEL(mercury__main_2_0)); }
/*
* Garbage collection livevals info
* detstackvar(2) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__main_2_0_i14);
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 times10/1 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
*/
Define_local(mercury__times10_1_0_l);
/* Procedure entry point */
/* End of procedure prologue */
{ static const Word mercury_const_3[] = {
(Integer) mkword(mktag(0), mkbody(0)),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_4[] = {
mkword(mktag(2), mercury_const_3),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_5[] = {
mkword(mktag(2), mercury_const_4),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_6[] = {
mkword(mktag(2), mercury_const_5),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_7[] = {
mkword(mktag(2), mercury_const_6),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_8[] = {
mkword(mktag(2), mercury_const_7),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_9[] = {
mkword(mktag(2), mercury_const_8),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_10[] = {
mkword(mktag(2), mercury_const_9),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_11[] = {
mkword(mktag(2), mercury_const_10),
(Integer) mkword(mktag(0), mkbody(0))
};
r1 = mkword(mktag(2), mercury_const_11); }
/* Assigning from variable number 3 */
{ r2 = (Integer) mkword(mktag(0), mkbody(0)); }
/* Assigning from variable number 4 */
incr_sp(1);
/* late setup */
{ detstackvar(1) = (Integer) succip; }
/* late save */
{ localcall(mercury__d_3_0_l,
LABEL(mercury__times10_1_0_i12),
LABEL(mercury__times10_1_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(1) succip
* r3 num(7)
*/
/* branch to det procedure */
Define_label(mercury__times10_1_0_i12);
update_prof_current_proc(LABEL(mercury__times10_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 log10/1 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
*/
Define_local(mercury__log10_1_0_l);
/* Procedure entry point */
/* End of procedure prologue */
{ static const Word mercury_const_3[] = {
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_4[] = {
mkword(mktag(1), mercury_const_3)
};
static const Word mercury_const_5[] = {
mkword(mktag(1), mercury_const_4)
};
static const Word mercury_const_6[] = {
mkword(mktag(1), mercury_const_5)
};
static const Word mercury_const_7[] = {
mkword(mktag(1), mercury_const_6)
};
static const Word mercury_const_8[] = {
mkword(mktag(1), mercury_const_7)
};
static const Word mercury_const_9[] = {
mkword(mktag(1), mercury_const_8)
};
static const Word mercury_const_10[] = {
mkword(mktag(1), mercury_const_9)
};
static const Word mercury_const_11[] = {
mkword(mktag(1), mercury_const_10)
};
static const Word mercury_const_12[] = {
mkword(mktag(1), mercury_const_11)
};
r1 = mkword(mktag(1), mercury_const_12); }
/* Assigning from variable number 3 */
{ r2 = (Integer) mkword(mktag(0), mkbody(0)); }
/* Assigning from variable number 4 */
incr_sp(1);
/* late setup */
{ detstackvar(1) = (Integer) succip; }
/* late save */
{ localcall(mercury__d_3_0_l,
LABEL(mercury__log10_1_0_i13),
LABEL(mercury__log10_1_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(1) succip
* r3 num(7)
*/
/* branch to det procedure */
Define_label(mercury__log10_1_0_i13);
update_prof_current_proc(LABEL(mercury__log10_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 ops8/1 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
*/
Define_local(mercury__ops8_1_0_l);
/* Procedure entry point */
/* End of procedure prologue */
{ static const Word mercury_const_3[] = {
1,
1
};
static const Word mercury_const_4[] = {
2,
(Integer) mkword(mktag(0), mkbody(0)),
mkword(mktag(3), mercury_const_3)
};
static const Word mercury_const_5[] = {
5,
(Integer) mkword(mktag(0), mkbody(0)),
2
};
static const Word mercury_const_6[] = {
1,
2
};
static const Word mercury_const_7[] = {
2,
mkword(mktag(3), mercury_const_5),
mkword(mktag(3), mercury_const_6)
};
static const Word mercury_const_8[] = {
5,
(Integer) mkword(mktag(0), mkbody(0)),
3
};
static const Word mercury_const_9[] = {
1,
3
};
static const Word mercury_const_10[] = {
2,
mkword(mktag(3), mercury_const_8),
mkword(mktag(3), mercury_const_9)
};
static const Word mercury_const_11[] = {
mkword(mktag(3), mercury_const_7),
mkword(mktag(3), mercury_const_10)
};
static const Word mercury_const_12[] = {
mkword(mktag(3), mercury_const_4),
mkword(mktag(2), mercury_const_11)
};
r1 = mkword(mktag(2), mercury_const_12); }
/* Assigning from variable number 3 */
{ r2 = (Integer) mkword(mktag(0), mkbody(0)); }
/* Assigning from variable number 4 */
incr_sp(1);
/* late setup */
{ detstackvar(1) = (Integer) succip; }
/* late save */
{ localcall(mercury__d_3_0_l,
LABEL(mercury__ops8_1_0_i13),
LABEL(mercury__ops8_1_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(1) succip
* r3 num(7)
*/
/* branch to det procedure */
Define_label(mercury__ops8_1_0_i13);
update_prof_current_proc(LABEL(mercury__ops8_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 divide10/1 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
*/
Define_local(mercury__divide10_1_0_l);
/* Procedure entry point */
/* End of procedure prologue */
{ static const Word mercury_const_3[] = {
0,
(Integer) mkword(mktag(0), mkbody(0)),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_4[] = {
0,
mkword(mktag(3), mercury_const_3),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_5[] = {
0,
mkword(mktag(3), mercury_const_4),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_6[] = {
0,
mkword(mktag(3), mercury_const_5),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_7[] = {
0,
mkword(mktag(3), mercury_const_6),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_8[] = {
0,
mkword(mktag(3), mercury_const_7),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_9[] = {
0,
mkword(mktag(3), mercury_const_8),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_10[] = {
0,
mkword(mktag(3), mercury_const_9),
(Integer) mkword(mktag(0), mkbody(0))
};
static const Word mercury_const_11[] = {
0,
mkword(mktag(3), mercury_const_10),
(Integer) mkword(mktag(0), mkbody(0))
};
r1 = mkword(mktag(3), mercury_const_11); }
/* Assigning from variable number 3 */
{ r2 = (Integer) mkword(mktag(0), mkbody(0)); }
/* Assigning from variable number 4 */
incr_sp(1);
/* late setup */
{ detstackvar(1) = (Integer) succip; }
/* late save */
{ localcall(mercury__d_3_0_l,
LABEL(mercury__divide10_1_0_i12),
LABEL(mercury__divide10_1_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(1) succip
* r3 num(7)
*/
/* branch to det procedure */
Define_label(mercury__divide10_1_0_i12);
update_prof_current_proc(LABEL(mercury__divide10_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 d/3 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
X -> stackvar(1)
DU -> stackvar(1)
variable number 28 -> stackvar(1)
X -> stackvar(1)
V -> stackvar(1)
X -> stackvar(1)
variable number 38 -> stackvar(1)
V -> stackvar(1)
U -> stackvar(2)
variable number 46 -> stackvar(1)
V -> stackvar(2)
U -> stackvar(2)
HeadVar__3 -> stackvar(2)
variable number 19 -> stackvar(1)
X -> stackvar(2)
variable number 27 -> stackvar(3)
DU -> stackvar(1)
variable number 39 -> stackvar(2)
X -> stackvar(4)
V -> stackvar(3)
U -> stackvar(1)
*/
Define_local(mercury__d_3_0_l);
/* Procedure entry point */
/* End of procedure prologue */
{ r3 = tag((Integer) r1); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r3 != mktag(3)))
GOTO_LABEL(mercury__d_3_0_i1002); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r1, 0),
LABEL(mercury__d_3_0_i1008) AND
LABEL(mercury__d_3_0_i1000) AND
LABEL(mercury__d_3_0_i1007) AND
LABEL(mercury__d_3_0_i1006) AND
LABEL(mercury__d_3_0_i1005) AND
LABEL(mercury__d_3_0_i1004) AND
LABEL(mercury__d_3_0_i1003)); }
/* switch on secondary tag */
Define_label(mercury__d_3_0_i1008);
/* setup bridging label */
incr_sp(5);
/* late setup after succip */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ tag_incr_hp(r4, mktag(3), 3); }
{ detstackvar(1) = (Integer) r3; }
/* vn flush */
{ field(mktag(3), (Integer) r4, 1) = (Integer) r3; }
/* vn flush */
{ detstackvar(3) = (Integer) r4; }
/* vn flush */
{ r1 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) r1; }
/* vn flush */
{ detstackvar(4) = (Integer) r2; }
/* vn flush */
{ field(mktag(3), (Integer) r4, 0) = 5; }
/* vn flush */
{ field(mktag(3), (Integer) r4, 2) = 2; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
* detstackvar(4)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i8),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
* detstackvar(3) num(7)
* detstackvar(4) num(7)
*/
Define_label(mercury__d_3_0_i1007);
/* setup bridging label */
incr_sp(5);
/* late setup after succip */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ r1 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(1) = (Integer) r2; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(2)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i17),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury__d_3_0_i1006);
/* setup bridging label */
incr_sp(5);
/* late setup after succip */
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ r1 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) r2; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(2)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i21),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury__d_3_0_i1005);
/* setup bridging label */
incr_sp(5);
/* late setup after succip */
{ r1 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i25),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
*/
Define_label(mercury__d_3_0_i1004);
/* setup bridging label */
incr_sp(5);
/* late setup after succip */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ incr_hp(r5, 5); }
{ r4 = (Integer) mkword(mktag(3), ((Integer) r5 + 12)); }
/* vn flush */
{ Word temp1;
{ temp1 = (Integer) mkword(mktag(3), (Integer) r5); }
/* vn flush */
{ field(mktag(3), (Integer) r4, 1) = (Integer) r3; }
/* vn flush */
{ detstackvar(1) = (Integer) temp1; }
/* vn flush */
{ detstackvar(2) = (Integer) r4; }
/* vn flush */
{ r1 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ field(mktag(3), (Integer) r4, 0) = 1; }
/* vn flush */
{ field(mktag(3), (Integer) temp1, 2) = ((Integer) r3 - 1); }
/* vn flush */
{ field(mktag(3), (Integer) temp1, 1) = (Integer) r1; }
/* vn flush */
{ field(mktag(3), (Integer) temp1, 0) = 5; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(2)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i30),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
}
incr_sp(5);
/* late setup */
{ detstackvar(5) = (Integer) succip; }
/* late save */
{ incr_hp(r2, 4); }
{ r1 = (Integer) mkword(mktag(2), ((Integer) r2 + 8)); }
/* vn flush */
{ field(mktag(2), (Integer) r1, 0) = (Integer) r3; }
/* vn flush */
{ r3 = (Integer) mkword(mktag(2), (Integer) r2); }
/* vn flush */
{ field(mktag(2), (Integer) r3, 0) = (Integer) r1; }
/* vn flush */
{ field(mktag(2), (Integer) r1, 1) = (Integer) detstackvar(2); }
/* vn flush */
{ field(mktag(2), (Integer) r3, 1) = (Integer) detstackvar(1); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* vn flush */
decr_sp(5);
/*
* Live lvalues:
* r3
*/
{ proceed(); }
Define_label(mercury__d_3_0_i1003);
/* setup bridging label */
incr_sp(5);
/* late setup after succip */
{ detstackvar(1) = (Integer) r1; }
/* vn flush */
{ r1 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i34),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
*/
Define_label(mercury__d_3_0_i8);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
{ r1 = (Integer) detstackvar(1); }
/* vn flush */
{ tag_incr_hp(r4, mktag(2), 2); }
{ field(mktag(2), (Integer) r4, 1) = (Integer) r1; }
/* vn flush */
{ detstackvar(1) = (Integer) r4; }
/* vn flush */
{ r2 = (Integer) detstackvar(4); }
/* vn flush */
{ field(mktag(2), (Integer) r4, 0) = (Integer) r3; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i10),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
* detstackvar(3) num(7)
*/
Define_label(mercury__d_3_0_i10);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
{ incr_hp(r2, 8); }
{ r1 = (Integer) mkword(mktag(2), ((Integer) r2 + 24)); }
/* vn flush */
{ field(mktag(2), (Integer) r1, 1) = (Integer) r3; }
/* vn flush */
{ r4 = (Integer) mkword(mktag(3), ((Integer) r2 + 12)); }
/* vn flush */
{ r3 = (Integer) mkword(mktag(3), (Integer) r2); }
/* vn flush */
{ field(mktag(3), (Integer) r4, 2) = (Integer) r1; }
/* vn flush */
{ field(mktag(3), (Integer) r3, 1) = (Integer) r4; }
/* vn flush */
{ field(mktag(3), (Integer) r4, 1) = (Integer) detstackvar(1); }
/* vn flush */
{ field(mktag(3), (Integer) r4, 0) = 3; }
/* vn flush */
{ field(mktag(3), (Integer) r3, 2) = (Integer) detstackvar(3); }
/* vn flush */
{ field(mktag(3), (Integer) r3, 0) = 0; }
/* vn flush */
{ field(mktag(2), (Integer) r1, 0) = (Integer) detstackvar(2); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* vn flush */
decr_sp(5);
/*
* Live lvalues:
* r3
*/
{ proceed(); }
Define_label(mercury__d_3_0_i17);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
{ r2 = (Integer) detstackvar(1); }
/* vn flush */
{ r1 = (Integer) detstackvar(2); }
/* vn flush */
{ detstackvar(1) = (Integer) r3; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i18),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
*/
Define_label(mercury__d_3_0_i18);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
/* Continuation label */
{ r1 = (Integer) r3; }
/* shuffle lval */
{ tag_incr_hp(r3, mktag(3), 3); }
/* Allocating heap for HeadVar__3 */
{ field(mktag(3), (Integer) r3, 0) = 2; }
/* Assigning from */
{ field(mktag(3), (Integer) r3, 1) = (Integer) detstackvar(1); }
/* Assigning from */
{ field(mktag(3), (Integer) r3, 2) = (Integer) r1; }
/* Assigning from */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* restore the success ip */
decr_sp(5);
/* Deallocate stack frame */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury__d_3_0_i21);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* shuffle lval */
{ detstackvar(1) = (Integer) r3; }
/* Assigning from DU */
{ r2 = (Integer) detstackvar(2); }
/* Assigning from X */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i22),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
*/
/* branch to det procedure */
Define_label(mercury__d_3_0_i22);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
/* Continuation label */
{ r1 = (Integer) r3; }
/* shuffle lval */
{ tag_incr_hp(r3, mktag(3), 3); }
/* Allocating heap for HeadVar__3 */
{ field(mktag(3), (Integer) r3, 0) = 3; }
/* Assigning from */
{ field(mktag(3), (Integer) r3, 1) = (Integer) detstackvar(1); }
/* Assigning from */
{ field(mktag(3), (Integer) r3, 2) = (Integer) r1; }
/* Assigning from */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* restore the success ip */
decr_sp(5);
/* Deallocate stack frame */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury__d_3_0_i25);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
/* Continuation label */
{ r1 = (Integer) r3; }
/* shuffle lval */
{ tag_incr_hp(r3, mktag(3), 2); }
/* Allocating heap for HeadVar__3 */
{ field(mktag(3), (Integer) r3, 0) = 4; }
/* Assigning from */
{ field(mktag(3), (Integer) r3, 1) = (Integer) r1; }
/* Assigning from */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* restore the success ip */
decr_sp(5);
/* Deallocate stack frame */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury__d_3_0_i30);
{ incr_hp(r2, 4); }
{ r1 = (Integer) mkword(mktag(2), ((Integer) r2 + 8)); }
/* vn flush */
{ field(mktag(2), (Integer) r1, 0) = (Integer) r3; }
/* vn flush */
{ r3 = (Integer) mkword(mktag(2), (Integer) r2); }
/* vn flush */
{ field(mktag(2), (Integer) r3, 0) = (Integer) r1; }
/* vn flush */
{ field(mktag(2), (Integer) r1, 1) = (Integer) detstackvar(2); }
/* vn flush */
{ field(mktag(2), (Integer) r3, 1) = (Integer) detstackvar(1); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* vn flush */
decr_sp(5);
/*
* Live lvalues:
* r3
*/
{ proceed(); }
Define_label(mercury__d_3_0_i34);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
/* Continuation label */
{ r1 = (Integer) r3; }
/* shuffle lval */
{ tag_incr_hp(r3, mktag(2), 2); }
/* Allocating heap for HeadVar__3 */
{ field(mktag(2), (Integer) r3, 0) = (Integer) detstackvar(1); }
/* Assigning from */
{ field(mktag(2), (Integer) r3, 1) = (Integer) r1; }
/* Assigning from */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* restore the success ip */
decr_sp(5);
/* Deallocate stack frame */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury__d_3_0_i1002);
/* label for late setup code */
incr_sp(5);
/* late setup after succip */
{ if (((Integer) r3 != mktag(0)))
GOTO_LABEL(mercury__d_3_0_i36); }
/* test primary tag only */
{ r3 = unmkbody((Integer) r1); }
/* compute remote sec tag to switch on */
{ static const Word mercury_const_37[] = {
1,
1
};
r1 = mkword(mktag(3), mercury_const_37); }
/* Assigning from HeadVar__3 */
/* checking that X has functor 'x'/0 */
{ if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0))))
GOTO_LABEL(mercury__d_3_0_i41); }
/* branch over failure */
{ detstackvar(2) = (Integer) r1; }
/* vn flush */
{ r1 = string_const("differentiating wrt nonvariable", 31); }
/* vn flush */
/*
* Live lvalues:
* r1
* detstackvar(2)
* detstackvar(5)
*/
{ Declare_entry(mercury__error_1_0);
call(ENTRY(mercury__error_1_0),
LABEL(mercury__d_3_0_i42),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* detstackvar(2) num(7)
*/
Define_label(mercury__d_3_0_i41);
{ r3 = (Integer) r1; }
/* Assigning from HeadVar__3 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* restore the success ip */
decr_sp(5);
/* Deallocate stack frame */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* Return from procedure call */
Define_label(mercury__d_3_0_i42);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
/* Continuation label */
{ r3 = (Integer) detstackvar(2); }
/* Assigning from HeadVar__3 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* restore the success ip */
decr_sp(5);
/* Deallocate stack frame */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury__d_3_0_i36);
/* handle next primary tag */
{ if (((Integer) r3 != mktag(1)))
GOTO_LABEL(mercury__d_3_0_i44); }
/* test primary tag only */
{ r1 = (Integer) field(mktag(1), (Integer) r1, 0); }
/* vn flush */
{ detstackvar(1) = (Integer) r1; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i45),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
*/
Define_label(mercury__d_3_0_i45);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
/* Continuation label */
{ r1 = (Integer) r3; }
/* shuffle lval */
{ tag_incr_hp(r3, mktag(3), 3); }
/* Allocating heap for HeadVar__3 */
{ field(mktag(3), (Integer) r3, 0) = 0; }
/* Assigning from */
{ field(mktag(3), (Integer) r3, 1) = (Integer) r1; }
/* Assigning from */
{ field(mktag(3), (Integer) r3, 2) = (Integer) detstackvar(1); }
/* Assigning from */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* restore the success ip */
decr_sp(5);
/* Deallocate stack frame */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury__d_3_0_i44);
{ detstackvar(3) = (Integer) field(mktag(2), (Integer) r1, 1); }
/* vn flush */
{ r1 = (Integer) field(mktag(2), (Integer) r1, 0); }
/* vn flush */
{ detstackvar(1) = (Integer) r2; }
/* vn flush */
{ detstackvar(2) = (Integer) r1; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i47),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
* detstackvar(3) num(7)
*/
Define_label(mercury__d_3_0_i47);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
{ r2 = (Integer) detstackvar(1); }
/* vn flush */
{ tag_incr_hp(r4, mktag(2), 2); }
{ detstackvar(1) = (Integer) r4; }
/* vn flush */
{ r1 = (Integer) detstackvar(3); }
/* vn flush */
{ field(mktag(2), (Integer) r4, 1) = (Integer) r1; }
/* vn flush */
{ field(mktag(2), (Integer) r4, 0) = (Integer) r3; }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(2)
* detstackvar(5)
*/
{ localcall(mercury__d_3_0_l,
LABEL(mercury__d_3_0_i49),
LABEL(mercury__d_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(5) succip
* r3 num(7)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury__d_3_0_i49);
update_prof_current_proc(LABEL(mercury__d_3_0_l));
{ incr_hp(r2, 5); }
{ r1 = (Integer) mkword(mktag(2), ((Integer) r2 + 12)); }
/* vn flush */
{ field(mktag(2), (Integer) r1, 1) = (Integer) r3; }
/* vn flush */
{ r3 = (Integer) mkword(mktag(3), (Integer) r2); }
/* vn flush */
{ field(mktag(3), (Integer) r3, 2) = (Integer) r1; }
/* vn flush */
{ field(mktag(3), (Integer) r3, 1) = (Integer) detstackvar(1); }
/* vn flush */
{ field(mktag(3), (Integer) r3, 0) = 2; }
/* vn flush */
{ field(mktag(2), (Integer) r1, 0) = (Integer) detstackvar(2); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(5); }
/* vn flush */
decr_sp(5);
/*
* Live lvalues:
* r3
*/
{ proceed(); }
Define_label(mercury__d_3_0_i1000);
/* non-teardown parallel label */
{ static const Word mercury_const_15[] = {
1,
0
};
r3 = mkword(mktag(3), mercury_const_15); }
/* Assigning from HeadVar__3 */
/*
* Live lvalues:
* r3
*/
{ proceed(); }
/* shortcircuit */
/*-------------------------------------------------------------------------*/
/* code for predicate print_expr/3 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
E -> stackvar(1)
E1 -> stackvar(1)
E2 -> stackvar(1)
E -> stackvar(1)
E2 -> stackvar(1)
E1 -> stackvar(1)
E -> stackvar(1)
N -> stackvar(2)
E1 -> stackvar(2)
E2 -> stackvar(2)
E1 -> stackvar(2)
E -> stackvar(1)
E2 -> stackvar(2)
*/
Define_local(mercury__print_expr_3_0_l);
/* Procedure entry point */
/* End of procedure prologue */
{ r3 = tag((Integer) r1); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r3 != mktag(3)))
GOTO_LABEL(mercury__print_expr_3_0_i1009); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r1, 0),
LABEL(mercury__print_expr_3_0_i1015) AND
LABEL(mercury__print_expr_3_0_i1001) AND
LABEL(mercury__print_expr_3_0_i1014) AND
LABEL(mercury__print_expr_3_0_i1013) AND
LABEL(mercury__print_expr_3_0_i1012) AND
LABEL(mercury__print_expr_3_0_i1011) AND
LABEL(mercury__print_expr_3_0_i1010)); }
/* switch on secondary tag */
Define_label(mercury__print_expr_3_0_i1015);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ r1 = string_const("(", 1); }
/* 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_expr_3_0_i7),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury__print_expr_3_0_i1014);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ r1 = string_const("(", 1); }
/* 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_expr_3_0_i15),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury__print_expr_3_0_i1013);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ r1 = string_const("(", 1); }
/* 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_expr_3_0_i21),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury__print_expr_3_0_i1012);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ r1 = string_const("- (", 3); }
/* 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_expr_3_0_i27),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
*/
Define_label(mercury__print_expr_3_0_i1011);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ r1 = string_const("^(", 2); }
/* 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_expr_3_0_i31),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
* detstackvar(2) num(2)
*/
Define_label(mercury__print_expr_3_0_i1010);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ r1 = string_const("exp(", 4); }
/* 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_expr_3_0_i37),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
*/
Define_label(mercury__print_expr_3_0_i7);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E1 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i8),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(2) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i8);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(" / ", 3); }
/* Assigning from variable number 77 */
{ 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_expr_3_0_i9),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(2) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i9);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(2); }
/* Assigning from E2 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_3 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i10),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i10);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 76 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_expr_3_0_i15);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(2); }
/* Assigning from E1 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i16),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i16);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(" + ", 3); }
/* Assigning from variable number 44 */
{ 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_expr_3_0_i17),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i17);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E2 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_3 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i18),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i18);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 43 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_expr_3_0_i21);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E1 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i22),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(2) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i22);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(" - ", 3); }
/* Assigning from variable number 55 */
{ 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_expr_3_0_i23),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(2) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i23);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(2); }
/* Assigning from E2 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_3 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i24),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i24);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 54 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_expr_3_0_i27);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i28),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i28);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 84 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_expr_3_0_i31);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i32),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(2) num(2)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i32);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(", ", 2); }
/* Assigning from variable number 33 */
{ 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_expr_3_0_i33),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(2) num(2)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i33);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(2); }
/* Assigning from N */
{ r2 = (Integer) r3; }
/* Assigning from DCG_3 */
/*
* 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_expr_3_0_i34),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i34);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 32 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_expr_3_0_i37);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i38),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i38);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 22 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_expr_3_0_i1009);
/* label for late setup code */
incr_sp(3);
/* late setup after succip */
{ if (((Integer) r3 != mktag(0)))
GOTO_LABEL(mercury__print_expr_3_0_i40); }
/* test primary tag only */
{ r1 = string_const("x", 1); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* vn flush */
decr_sp(3);
/*
* 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_expr_3_0_l)); }
Define_label(mercury__print_expr_3_0_i40);
/* handle next primary tag */
{ if (((Integer) r3 != mktag(1)))
GOTO_LABEL(mercury__print_expr_3_0_i42); }
/* test primary tag only */
{ detstackvar(1) = (Integer) field(mktag(1), (Integer) r1, 0); }
/* vn flush */
{ r1 = string_const("log(", 4); }
/* 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_expr_3_0_i43),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
*/
Define_label(mercury__print_expr_3_0_i43);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i44),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i44);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 15 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_expr_3_0_i42);
{ detstackvar(1) = (Integer) field(mktag(2), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(2), (Integer) r1, 0); }
/* vn flush */
{ r1 = string_const("(", 1); }
/* 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_expr_3_0_i46),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury__print_expr_3_0_i46);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(2); }
/* Assigning from E1 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_1 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(1)
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i47),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i47);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(" * ", 3); }
/* Assigning from variable number 66 */
{ 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_expr_3_0_i48),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
* detstackvar(1) num(7)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i48);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = (Integer) detstackvar(1); }
/* Assigning from E2 */
{ r2 = (Integer) r3; }
/* Assigning from DCG_3 */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ localcall(mercury__print_expr_3_0_l,
LABEL(mercury__print_expr_3_0_i49),
LABEL(mercury__print_expr_3_0_l)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* r3 num(8)
*/
/* branch to det procedure */
Define_label(mercury__print_expr_3_0_i49);
update_prof_current_proc(LABEL(mercury__print_expr_3_0_l));
/* Continuation label */
{ r1 = string_const(")", 1); }
/* Assigning from variable number 65 */
{ 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_expr_3_0_l)); }
/* branch to det procedure (redirected return) */
Define_label(mercury__print_expr_3_0_i1001);
/* non-teardown parallel label */
{ r1 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
/*
* Live lvalues:
* r1
* r2
* detstackvar(3)
*/
{ Declare_entry(mercury__io__write_int_3_0);
tailcall(ENTRY(mercury__io__write_int_3_0),
LABEL(mercury__print_expr_3_0_l)); }
/*-------------------------------------------------------------------------*/
/* code for predicate __Unify__/2 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
variable number 16 -> stackvar(1)
variable number 8 -> stackvar(1)
variable number 20 -> stackvar(1)
variable number 12 -> stackvar(1)
variable number 28 -> stackvar(1)
variable number 18 -> stackvar(2)
variable number 10 -> stackvar(2)
variable number 26 -> stackvar(2)
variable number 6 -> stackvar(2)
variable number 22 -> stackvar(2)
*/
Define_entry(mercury____Unify___expr_0_0);
/* Procedure entry point */
/* End of procedure prologue */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i1012);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ if (((tag((Integer) r2) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r2, 0) == 0)))
GOTO_LABEL(mercury____Unify___expr_0_0_i8); }
/* branch over failure */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1011);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ if (((tag((Integer) r2) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r2, 0) == 1)))
GOTO_LABEL(mercury____Unify___expr_0_0_i15); }
/* branch over failure */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1010);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ if (((tag((Integer) r2) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r2, 0) == 2)))
GOTO_LABEL(mercury____Unify___expr_0_0_i18); }
/* branch over failure */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1009);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ if (((tag((Integer) r2) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r2, 0) == 3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i25); }
/* branch over failure */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1008);
/* setup bridging label */
{ if (((tag((Integer) r2) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r2, 0) == 4)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1000); }
/* branch over failure (teardown redirect) */
{ r1 = FALSE; }
/* Fail */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1007);
/* setup bridging label */
incr_sp(3);
/* late setup after succip */
{ if (((tag((Integer) r2) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r2, 0) == 5)))
GOTO_LABEL(mercury____Unify___expr_0_0_i37); }
/* branch over failure */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1006);
/* setup bridging label */
{ if (((tag((Integer) r2) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r2, 0) == 6)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1001); }
/* branch over failure (teardown redirect) */
{ r1 = FALSE; }
/* Fail */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i8);
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r2, 2); }
/* vn flush */
{ r2 = (Integer) field(mktag(3), (Integer) r2, 1); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___expr_0_0_i9),
LABEL(mercury____Unify___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury____Unify___expr_0_0_i9);
update_prof_current_proc(LABEL(mercury____Unify___expr_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___expr_0_0_i1); }
/* fail */
{ r2 = (Integer) detstackvar(2); }
/* Assigning from variable number 10 */
{ r3 = (Integer) detstackvar(1); }
/* Assigning from variable number 12 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i15);
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
{ if (((Integer) field(mktag(3), (Integer) r2, 1) != (Integer) field(mktag(3), (Integer) r3, 1)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1004); }
/* Test for failure (teardown redirect) */
{ r1 = TRUE; }
/* Succeed */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i18);
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r2, 2); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ r2 = (Integer) field(mktag(3), (Integer) r2, 1); }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___expr_0_0_i19),
LABEL(mercury____Unify___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury____Unify___expr_0_0_i19);
update_prof_current_proc(LABEL(mercury____Unify___expr_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___expr_0_0_i1); }
/* fail */
{ r2 = (Integer) detstackvar(1); }
/* Assigning from variable number 16 */
{ r3 = (Integer) detstackvar(2); }
/* Assigning from variable number 18 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i25);
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r2, 2); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ r2 = (Integer) field(mktag(3), (Integer) r2, 1); }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___expr_0_0_i26),
LABEL(mercury____Unify___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury____Unify___expr_0_0_i26);
update_prof_current_proc(LABEL(mercury____Unify___expr_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___expr_0_0_i1); }
/* fail */
{ r2 = (Integer) detstackvar(1); }
/* Assigning from variable number 20 */
{ r3 = (Integer) detstackvar(2); }
/* Assigning from variable number 22 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i37);
{ detstackvar(1) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(3), (Integer) r2, 2); }
/* vn flush */
{ r2 = (Integer) field(mktag(3), (Integer) r2, 1); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___expr_0_0_i38),
LABEL(mercury____Unify___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* detstackvar(1) num(2)
* detstackvar(2) num(2)
*/
Define_label(mercury____Unify___expr_0_0_i38);
update_prof_current_proc(LABEL(mercury____Unify___expr_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___expr_0_0_i1); }
/* fail */
{ if (((Integer) detstackvar(2) != (Integer) detstackvar(1)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1); }
/* Test for failure */
{ r1 = TRUE; }
/* Succeed */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1005);
/* label for late setup code */
incr_sp(3);
/* late setup after succip */
{ if (((Integer) r1 != mktag(0)))
GOTO_LABEL(mercury____Unify___expr_0_0_i45); }
/* test primary tag only */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* vn flush */
decr_sp(3);
{ if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0))))
GOTO_LABEL(mercury____Unify___expr_0_0_i1002); }
/* (teardown redirect) */
{ r1 = FALSE; }
/* vn flush */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
Define_label(mercury____Unify___expr_0_0_i45);
/* handle next primary tag */
{ if (((Integer) r1 != mktag(1)))
GOTO_LABEL(mercury____Unify___expr_0_0_i48); }
/* test primary tag only */
/* checking that variable number 1 has functor 'log'/1 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
{ if ((tag((Integer) r2) == mktag(1)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1003); }
/* branch over failure (teardown redirect) */
{ r1 = FALSE; }
/* Fail */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i48);
/* handle next primary tag */
/* checking that variable number 1 has functor '*'/2 */
{ if ((tag((Integer) r2) == mktag(2)))
GOTO_LABEL(mercury____Unify___expr_0_0_i54); }
/* branch over failure */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i54);
{ detstackvar(1) = (Integer) field(mktag(2), (Integer) r3, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(2), (Integer) r2, 1); }
/* vn flush */
{ r2 = (Integer) field(mktag(2), (Integer) r2, 0); }
/* vn flush */
{ r3 = (Integer) field(mktag(2), (Integer) r3, 0); }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(2)
* detstackvar(3)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___expr_0_0_i55),
LABEL(mercury____Unify___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(3) succip
* detstackvar(1) num(7)
* detstackvar(2) num(7)
*/
Define_label(mercury____Unify___expr_0_0_i55);
update_prof_current_proc(LABEL(mercury____Unify___expr_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___expr_0_0_i1); }
/* fail */
{ r2 = (Integer) detstackvar(2); }
/* Assigning from variable number 6 */
{ r3 = (Integer) detstackvar(1); }
/* Assigning from variable number 8 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i1);
/* End of failure continuation */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
/* restore the success ip */
decr_sp(3);
/* Deallocate stack frame */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* Return from procedure call */
Define_label(mercury____Unify___expr_0_0_i1000);
/* non-teardown parallel label */
{ r3 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ r2 = (Integer) field(mktag(3), (Integer) r2, 1); }
/* vn flush */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i1001);
/* non-teardown parallel label */
{ r3 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ r2 = (Integer) field(mktag(3), (Integer) r2, 1); }
/* vn flush */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i1002);
/* non-teardown parallel label */
{ r1 = TRUE; }
/* Succeed */
/*
* Live lvalues:
* r1
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Unify___expr_0_0_i1003);
/* non-teardown parallel label */
{ r3 = (Integer) field(mktag(1), (Integer) r3, 0); }
/* vn flush */
{ r2 = (Integer) field(mktag(1), (Integer) r2, 0); }
/* vn flush */
{ r1 = tag((Integer) r3); }
/* compute tag to switch on */
{ detstackvar(0) = (Integer) succip; }
/* late save */
{ if (((Integer) r1 != mktag(3)))
GOTO_LABEL(mercury____Unify___expr_0_0_i1005); }
/* jump to setup */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Unify___expr_0_0_i1012) AND
LABEL(mercury____Unify___expr_0_0_i1011) AND
LABEL(mercury____Unify___expr_0_0_i1010) AND
LABEL(mercury____Unify___expr_0_0_i1009) AND
LABEL(mercury____Unify___expr_0_0_i1008) AND
LABEL(mercury____Unify___expr_0_0_i1007) AND
LABEL(mercury____Unify___expr_0_0_i1006)); }
/* switch on secondary tag */
Define_label(mercury____Unify___expr_0_0_i1004);
/* 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___expr_0_0);
/* Procedure entry point */
/* End of procedure prologue */
{ r2 = tag((Integer) r1); }
/* compute tag to switch on */
{ if (((Integer) r2 != mktag(3)))
GOTO_LABEL(mercury____Index___expr_0_0_i5); }
/* test primary tag only */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r1, 0),
LABEL(mercury____Index___expr_0_0_i6) AND
LABEL(mercury____Index___expr_0_0_i7) AND
LABEL(mercury____Index___expr_0_0_i8) AND
LABEL(mercury____Index___expr_0_0_i9) AND
LABEL(mercury____Index___expr_0_0_i10) AND
LABEL(mercury____Index___expr_0_0_i11) AND
LABEL(mercury____Index___expr_0_0_i12)); }
/* switch on secondary tag */
Define_label(mercury____Index___expr_0_0_i6);
/* start of a case in tag switch */
{ r2 = 2; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i7);
/* start of a case in tag switch */
{ r2 = 4; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i8);
/* start of a case in tag switch */
{ r2 = 5; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i9);
/* start of a case in tag switch */
{ r2 = 6; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i10);
/* start of a case in tag switch */
{ r2 = 7; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i11);
/* start of a case in tag switch */
{ r2 = 8; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i12);
/* start of a case in tag switch */
{ r2 = 9; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i5);
/* handle next primary tag */
{ if (((Integer) r2 != mktag(0)))
GOTO_LABEL(mercury____Index___expr_0_0_i13); }
/* test primary tag only */
{ r2 = 3; }
/* vn flush */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
Define_label(mercury____Index___expr_0_0_i13);
/* handle next primary tag */
{ if (((Integer) r2 != mktag(1)))
GOTO_LABEL(mercury____Index___expr_0_0_i14); }
/* test primary tag only */
{ r2 = 0; }
/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
* Live lvalues:
* r2
*/
{ proceed(); }
/* shortcircuit */
Define_label(mercury____Index___expr_0_0_i14);
/* handle next primary tag */
{ r2 = 1; }
/* 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 16 -> stackvar(1)
variable number 24 -> stackvar(1)
variable number 4 -> stackvar(2)
variable number 36 -> stackvar(1)
variable number 12 -> stackvar(1)
variable number 28 -> stackvar(1)
variable number 2 -> stackvar(1)
variable number 34 -> stackvar(3)
variable number 18 -> stackvar(1)
variable number 10 -> stackvar(3)
variable number 26 -> stackvar(3)
variable number 22 -> stackvar(3)
variable number 14 -> stackvar(3)
variable number 30 -> stackvar(1)
variable number 33 -> stackvar(4)
variable number 17 -> stackvar(4)
variable number 9 -> stackvar(4)
variable number 25 -> stackvar(4)
variable number 5 -> stackvar(5)
variable number 37 -> stackvar(4)
variable number 21 -> stackvar(4)
variable number 13 -> stackvar(4)
variable number 29 -> stackvar(4)
variable number 3 -> stackvar(3)
variable number 35 -> stackvar(6)
variable number 11 -> stackvar(6)
variable number 27 -> stackvar(6)
variable number 23 -> stackvar(6)
variable number 15 -> stackvar(6)
*/
Define_entry(mercury____Compare___expr_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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i3);
update_prof_current_proc(LABEL(mercury____Compare___expr_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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i4),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(2) num(2)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i4);
update_prof_current_proc(LABEL(mercury____Compare___expr_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___expr_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___expr_0_0_i5);
/* End of failure continuation */
{ if (((Integer) r4 <= (Integer) r2))
GOTO_LABEL(mercury____Compare___expr_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___expr_0_0_i7);
/* End of failure continuation */
{ mark_hp(detstackvar(7)); }
/* Save heap pointer */
{ r2 = tag((Integer) r3); }
/* compute tag to switch on */
{ if (((Integer) r2 != mktag(3)))
GOTO_LABEL(mercury____Compare___expr_0_0_i13); }
/* test primary tag only */
{ COMPUTED_GOTO((Integer) field(mktag(3), (Integer) r3, 0),
LABEL(mercury____Compare___expr_0_0_i14) AND
LABEL(mercury____Compare___expr_0_0_i26) AND
LABEL(mercury____Compare___expr_0_0_i30) AND
LABEL(mercury____Compare___expr_0_0_i42) AND
LABEL(mercury____Compare___expr_0_0_i54) AND
LABEL(mercury____Compare___expr_0_0_i58) AND
LABEL(mercury____Compare___expr_0_0_i70)); }
/* switch on secondary tag */
Define_label(mercury____Compare___expr_0_0_i14);
/* start of a case in tag switch */
/* checking that variable number 3 has functor '/'/2 */
{ if (((tag((Integer) r1) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r1, 0) == 0)))
GOTO_LABEL(mercury____Compare___expr_0_0_i16); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i16);
{ mark_hp(detstackvar(8)); }
{ r2 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ detstackvar(6) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ r4 = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ detstackvar(4) = (Integer) r4; }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(4)
* detstackvar(6)
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i19),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r1 num(9)
* detstackvar(8) hp
* detstackvar(7) hp
* detstackvar(4) num(7)
* detstackvar(6) num(7)
*/
Define_label(mercury____Compare___expr_0_0_i19);
update_prof_current_proc(LABEL(mercury____Compare___expr_0_0));
{ if (((Integer) r1 != 0))
GOTO_LABEL(mercury____Compare___expr_0_0_i93); }
{ restore_hp((Integer) detstackvar(8)); }
{ r2 = (Integer) detstackvar(6); }
/* vn flush */
{ r3 = (Integer) detstackvar(4); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
{ 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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i26);
/* start of a case in tag switch */
/* checking that variable number 3 has functor 'num'/1 */
{ if (((tag((Integer) r1) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r1, 0) == 1)))
GOTO_LABEL(mercury____Compare___expr_0_0_i28); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i28);
{ r2 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* Assigning from variable number 19 */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* Assigning from variable number 20 */
{ 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i30);
/* start of a case in tag switch */
/* checking that variable number 3 has functor '+'/2 */
{ if (((tag((Integer) r1) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r1, 0) == 2)))
GOTO_LABEL(mercury____Compare___expr_0_0_i32); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i32);
{ mark_hp(detstackvar(8)); }
{ r2 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ detstackvar(3) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ r4 = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ detstackvar(1) = (Integer) r4; }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(3)
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i35),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r1 num(9)
* detstackvar(8) hp
* detstackvar(7) hp
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
Define_label(mercury____Compare___expr_0_0_i35);
update_prof_current_proc(LABEL(mercury____Compare___expr_0_0));
{ if (((Integer) r1 != 0))
GOTO_LABEL(mercury____Compare___expr_0_0_i93); }
{ restore_hp((Integer) detstackvar(8)); }
{ r2 = (Integer) detstackvar(3); }
/* vn flush */
{ r3 = (Integer) detstackvar(1); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
{ 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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i42);
/* start of a case in tag switch */
/* checking that variable number 3 has functor '-'/2 */
{ if (((tag((Integer) r1) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r1, 0) == 3)))
GOTO_LABEL(mercury____Compare___expr_0_0_i44); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i44);
{ mark_hp(detstackvar(8)); }
{ r2 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ detstackvar(6) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ r4 = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ detstackvar(4) = (Integer) r4; }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(4)
* detstackvar(6)
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i47),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r1 num(9)
* detstackvar(8) hp
* detstackvar(7) hp
* detstackvar(4) num(7)
* detstackvar(6) num(7)
*/
Define_label(mercury____Compare___expr_0_0_i47);
update_prof_current_proc(LABEL(mercury____Compare___expr_0_0));
{ if (((Integer) r1 != 0))
GOTO_LABEL(mercury____Compare___expr_0_0_i93); }
{ restore_hp((Integer) detstackvar(8)); }
{ r2 = (Integer) detstackvar(6); }
/* vn flush */
{ r3 = (Integer) detstackvar(4); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
{ 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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i54);
/* start of a case in tag switch */
/* checking that variable number 3 has functor '-'/1 */
{ if (((tag((Integer) r1) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r1, 0) == 4)))
GOTO_LABEL(mercury____Compare___expr_0_0_i56); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i56);
{ r2 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* Assigning from variable number 31 */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* Assigning from variable number 32 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
{ 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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i58);
/* start of a case in tag switch */
/* checking that variable number 3 has functor '^'/2 */
{ if (((tag((Integer) r1) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r1, 0) == 5)))
GOTO_LABEL(mercury____Compare___expr_0_0_i60); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i60);
{ mark_hp(detstackvar(8)); }
{ r2 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* vn flush */
{ detstackvar(3) = (Integer) field(mktag(3), (Integer) r3, 2); }
/* vn flush */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* vn flush */
{ r4 = (Integer) field(mktag(3), (Integer) r1, 2); }
/* vn flush */
{ detstackvar(1) = (Integer) r4; }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(3)
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i63),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r1 num(9)
* detstackvar(8) hp
* detstackvar(7) hp
* detstackvar(1) num(2)
* detstackvar(3) num(2)
*/
Define_label(mercury____Compare___expr_0_0_i63);
update_prof_current_proc(LABEL(mercury____Compare___expr_0_0));
{ if (((Integer) r1 != 0))
GOTO_LABEL(mercury____Compare___expr_0_0_i93); }
{ restore_hp((Integer) detstackvar(8)); }
{ r2 = (Integer) detstackvar(3); }
/* vn flush */
{ r3 = (Integer) detstackvar(1); }
/* vn flush */
{ 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___expr_0_0)); }
/* (redirected return) */
Define_label(mercury____Compare___expr_0_0_i70);
/* start of a case in tag switch */
/* checking that variable number 3 has functor 'exp'/1 */
{ if (((tag((Integer) r1) == mktag(3)) && ((Integer) field(mktag(3), (Integer) r1, 0) == 6)))
GOTO_LABEL(mercury____Compare___expr_0_0_i72); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i72);
{ r2 = (Integer) field(mktag(3), (Integer) r3, 1); }
/* Assigning from variable number 38 */
{ r3 = (Integer) field(mktag(3), (Integer) r1, 1); }
/* Assigning from variable number 39 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
{ 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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i13);
/* handle next primary tag */
{ if (((Integer) r2 != mktag(0)))
GOTO_LABEL(mercury____Compare___expr_0_0_i74); }
/* test primary tag only */
{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
GOTO_LABEL(mercury____Compare___expr_0_0_i76); }
{ restore_hp((Integer) detstackvar(7)); }
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
decr_sp(9);
/*
* Live lvalues:
* detstackvar(9)
*/
{ Declare_entry(mercury__compare_error_0_0);
tailcall(ENTRY(mercury__compare_error_0_0),
LABEL(mercury____Compare___expr_0_0)); }
Define_label(mercury____Compare___expr_0_0_i76);
{ r1 = 0; }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
decr_sp(9);
/*
* Live lvalues:
* r1
*/
{ proceed(); }
Define_label(mercury____Compare___expr_0_0_i74);
/* handle next primary tag */
{ if (((Integer) r2 != mktag(1)))
GOTO_LABEL(mercury____Compare___expr_0_0_i77); }
/* test primary tag only */
/* checking that variable number 3 has functor 'log'/1 */
{ if ((tag((Integer) r1) == mktag(1)))
GOTO_LABEL(mercury____Compare___expr_0_0_i79); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i79);
{ r2 = (Integer) field(mktag(1), (Integer) r3, 0); }
/* Assigning from variable number 7 */
{ r3 = (Integer) field(mktag(1), (Integer) r1, 0); }
/* Assigning from variable number 8 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
{ 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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i77);
/* handle next primary tag */
/* checking that variable number 3 has functor '*'/2 */
{ if ((tag((Integer) r1) == mktag(2)))
GOTO_LABEL(mercury____Compare___expr_0_0_i82); }
/* 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___expr_0_0)); }
/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___expr_0_0_i82);
{ mark_hp(detstackvar(8)); }
{ r2 = (Integer) field(mktag(2), (Integer) r3, 0); }
/* vn flush */
{ detstackvar(3) = (Integer) field(mktag(2), (Integer) r3, 1); }
/* vn flush */
{ r3 = (Integer) field(mktag(2), (Integer) r1, 0); }
/* vn flush */
{ r4 = (Integer) field(mktag(2), (Integer) r1, 1); }
/* vn flush */
{ detstackvar(1) = (Integer) r4; }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(1)
* detstackvar(3)
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i85),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r1 num(9)
* detstackvar(8) hp
* detstackvar(7) hp
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
Define_label(mercury____Compare___expr_0_0_i85);
update_prof_current_proc(LABEL(mercury____Compare___expr_0_0));
{ if (((Integer) r1 == 0))
GOTO_LABEL(mercury____Compare___expr_0_0_i89); }
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
decr_sp(9);
/*
* Live lvalues:
* r1
*/
{ proceed(); }
Define_label(mercury____Compare___expr_0_0_i89);
{ restore_hp((Integer) detstackvar(8)); }
{ r2 = (Integer) detstackvar(3); }
/* vn flush */
{ r3 = (Integer) detstackvar(1); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
/* vn flush */
{ 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___expr_0_0,
LABEL(mercury____Compare___expr_0_0_i3),
LABEL(mercury____Compare___expr_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(9) succip
* r2 num(2)
* detstackvar(1) num(7)
* detstackvar(3) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___expr_0_0_i93);
/* 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 */
/*-------------------------------------------------------------------------*/
/* code for predicate __Unify__/2 in mode 0 */
/* Start of procedure prologue */
/*
Stack slot assignments (if any):
variable number 8 -> stackvar(1)
variable number 4 -> stackvar(2)
variable number 10 -> stackvar(3)
variable number 6 -> stackvar(4)
variable number 9 -> stackvar(5)
variable number 5 -> stackvar(6)
*/
Define_entry(mercury____Unify___quad_0_0);
incr_sp(7);
/* late setup */
{ detstackvar(7) = (Integer) succip; }
/* late save */
{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r3, 1); }
/* vn flush */
{ detstackvar(2) = (Integer) field(mktag(0), (Integer) r2, 1); }
/* vn flush */
{ detstackvar(3) = (Integer) field(mktag(0), (Integer) r3, 3); }
/* vn flush */
{ detstackvar(4) = (Integer) field(mktag(0), (Integer) r2, 3); }
/* vn flush */
{ detstackvar(5) = (Integer) field(mktag(0), (Integer) r3, 2); }
/* vn flush */
{ detstackvar(6) = (Integer) field(mktag(0), (Integer) r2, 2); }
/* 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(1)
* detstackvar(2)
* detstackvar(3)
* detstackvar(4)
* detstackvar(5)
* detstackvar(6)
* detstackvar(7)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___quad_0_0_i3),
LABEL(mercury____Unify___quad_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(7) succip
* detstackvar(1) num(7)
* detstackvar(2) num(7)
* detstackvar(3) num(7)
* detstackvar(4) num(7)
* detstackvar(5) num(7)
* detstackvar(6) num(7)
*/
Define_label(mercury____Unify___quad_0_0_i3);
update_prof_current_proc(LABEL(mercury____Unify___quad_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___quad_0_0_i1); }
/* fail */
{ r2 = (Integer) detstackvar(2); }
/* Assigning from variable number 4 */
{ r3 = (Integer) detstackvar(1); }
/* Assigning from variable number 8 */
/*
* Live lvalues:
* r2
* r3
* detstackvar(3)
* detstackvar(4)
* detstackvar(5)
* detstackvar(6)
* detstackvar(7)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___quad_0_0_i5),
LABEL(mercury____Unify___quad_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(7) succip
* detstackvar(3) num(7)
* detstackvar(4) num(7)
* detstackvar(5) num(7)
* detstackvar(6) num(7)
*/
/* branch to semidet procedure */
Define_label(mercury____Unify___quad_0_0_i5);
update_prof_current_proc(LABEL(mercury____Unify___quad_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___quad_0_0_i1); }
/* fail */
{ r2 = (Integer) detstackvar(6); }
/* Assigning from variable number 5 */
{ r3 = (Integer) detstackvar(5); }
/* Assigning from variable number 9 */
/*
* Live lvalues:
* r2
* r3
* detstackvar(3)
* detstackvar(4)
* detstackvar(7)
*/
{ localcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___quad_0_0_i7),
LABEL(mercury____Unify___quad_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(7) succip
* detstackvar(3) num(7)
* detstackvar(4) num(7)
*/
/* branch to semidet procedure */
Define_label(mercury____Unify___quad_0_0_i7);
update_prof_current_proc(LABEL(mercury____Unify___quad_0_0));
/* Continuation label */
{ if (!((Integer) r1))
GOTO_LABEL(mercury____Unify___quad_0_0_i1); }
/* fail */
{ r2 = (Integer) detstackvar(4); }
/* Assigning from variable number 6 */
{ r3 = (Integer) detstackvar(3); }
/* Assigning from variable number 10 */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(7); }
/* restore the success ip */
decr_sp(7);
/* Deallocate stack frame */
/*
* Live lvalues:
* r2
* r3
* detstackvar(7)
*/
{ localtailcall(mercury____Unify___expr_0_0,
LABEL(mercury____Unify___quad_0_0)); }
/* branch to semidet procedure (redirected return) */
Define_label(mercury____Unify___quad_0_0_i1);
/* End of failure continuation */
{ r1 = FALSE; }
/* Fail */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(7); }
/* restore the success ip */
decr_sp(7);
/* Deallocate stack frame */
/*
* 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___quad_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(2)
variable number 12 -> stackvar(1)
variable number 10 -> stackvar(3)
variable number 6 -> stackvar(4)
variable number 14 -> stackvar(3)
variable number 9 -> stackvar(5)
variable number 5 -> stackvar(6)
variable number 13 -> stackvar(5)
variable number 11 -> stackvar(7)
variable number 7 -> stackvar(8)
*/
Define_entry(mercury____Compare___quad_0_0);
incr_sp(10);
/* late setup */
{ detstackvar(10) = (Integer) succip; }
/* late save */
{ mark_hp(detstackvar(9)); }
{ detstackvar(3) = (Integer) field(mktag(0), (Integer) r3, 2); }
/* vn flush */
{ detstackvar(4) = (Integer) field(mktag(0), (Integer) r2, 2); }
/* vn flush */
{ detstackvar(5) = (Integer) field(mktag(0), (Integer) r3, 1); }
/* vn flush */
{ detstackvar(6) = (Integer) field(mktag(0), (Integer) r2, 1); }
/* vn flush */
{ detstackvar(7) = (Integer) field(mktag(0), (Integer) r3, 3); }
/* vn flush */
{ detstackvar(8) = (Integer) field(mktag(0), (Integer) r2, 3); }
/* vn flush */
{ r3 = (Integer) field(mktag(0), (Integer) r3, 0); }
/* vn flush */
{ r2 = (Integer) field(mktag(0), (Integer) r2, 0); }
/* vn flush */
/*
* Live lvalues:
* r2
* r3
* detstackvar(3)
* detstackvar(4)
* detstackvar(5)
* detstackvar(6)
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
* detstackvar(10)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___quad_0_0_i5),
LABEL(mercury____Compare___quad_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(10) succip
* r1 num(9)
* detstackvar(9) hp
* detstackvar(3) num(7)
* detstackvar(4) num(7)
* detstackvar(5) num(7)
* detstackvar(6) num(7)
* detstackvar(7) num(7)
* detstackvar(8) num(7)
*/
Define_label(mercury____Compare___quad_0_0_i5);
update_prof_current_proc(LABEL(mercury____Compare___quad_0_0));
{ if (((Integer) r1 == 0))
GOTO_LABEL(mercury____Compare___quad_0_0_i9); }
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
/* vn flush */
decr_sp(10);
/*
* Live lvalues:
* r1
*/
{ proceed(); }
Define_label(mercury____Compare___quad_0_0_i9);
{ r8 = (Integer) detstackvar(3); }
{ r7 = (Integer) detstackvar(4); }
{ r6 = (Integer) detstackvar(5); }
{ r5 = (Integer) detstackvar(6); }
{ r4 = (Integer) detstackvar(7); }
{ r1 = (Integer) detstackvar(8); }
{ restore_hp((Integer) detstackvar(9)); }
/* Restore heap pointer */
{ mark_hp(detstackvar(9)); }
/* Save heap pointer */
{ detstackvar(3) = (Integer) r8; }
/* Assigning from variable number 10 */
{ detstackvar(4) = (Integer) r7; }
/* Assigning from variable number 6 */
{ detstackvar(7) = (Integer) r4; }
/* Assigning from variable number 11 */
{ detstackvar(8) = (Integer) r1; }
/* Assigning from variable number 7 */
{ r2 = (Integer) r5; }
/* Assigning from variable number 5 */
{ r3 = (Integer) r6; }
/* Assigning from variable number 9 */
/*
* Live lvalues:
* r2
* r3
* detstackvar(3)
* detstackvar(4)
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
* detstackvar(10)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___quad_0_0_i12),
LABEL(mercury____Compare___quad_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(10) succip
* r1 num(9)
* detstackvar(9) hp
* detstackvar(3) num(7)
* detstackvar(4) num(7)
* detstackvar(7) num(7)
* detstackvar(8) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___quad_0_0_i12);
update_prof_current_proc(LABEL(mercury____Compare___quad_0_0));
{ if (((Integer) r1 == 0))
GOTO_LABEL(mercury____Compare___quad_0_0_i16); }
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
/* vn flush */
decr_sp(10);
/*
* Live lvalues:
* r1
*/
{ proceed(); }
Define_label(mercury____Compare___quad_0_0_i16);
{ r8 = (Integer) detstackvar(3); }
{ r7 = (Integer) detstackvar(4); }
{ r4 = (Integer) detstackvar(7); }
{ r1 = (Integer) detstackvar(8); }
{ restore_hp((Integer) detstackvar(9)); }
/* Restore heap pointer */
{ mark_hp(detstackvar(9)); }
/* Save heap pointer */
{ detstackvar(7) = (Integer) r4; }
/* Assigning from variable number 11 */
{ detstackvar(8) = (Integer) r1; }
/* Assigning from variable number 7 */
{ r2 = (Integer) r7; }
/* Assigning from variable number 6 */
{ r3 = (Integer) r8; }
/* Assigning from variable number 10 */
/*
* Live lvalues:
* r2
* r3
* detstackvar(7)
* detstackvar(8)
* detstackvar(9)
* detstackvar(10)
*/
{ localcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___quad_0_0_i19),
LABEL(mercury____Compare___quad_0_0)); }
/*
* Garbage collection livevals info
* detstackvar(10) succip
* r1 num(9)
* detstackvar(9) hp
* detstackvar(7) num(7)
* detstackvar(8) num(7)
*/
/* branch to det procedure */
Define_label(mercury____Compare___quad_0_0_i19);
update_prof_current_proc(LABEL(mercury____Compare___quad_0_0));
{ if (((Integer) r1 == 0))
GOTO_LABEL(mercury____Compare___quad_0_0_i23); }
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
/* vn flush */
decr_sp(10);
/*
* Live lvalues:
* r1
*/
{ proceed(); }
Define_label(mercury____Compare___quad_0_0_i23);
{ restore_hp((Integer) detstackvar(9)); }
{ r2 = (Integer) detstackvar(8); }
/* vn flush */
{ r3 = (Integer) detstackvar(7); }
/* vn flush */
{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
/* vn flush */
decr_sp(10);
/*
* Live lvalues:
* r2
* r3
* detstackvar(10)
*/
{ localtailcall(mercury____Compare___expr_0_0,
LABEL(mercury____Compare___quad_0_0)); }
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__deriv_bunch_0(void)
{
mercury__deriv_module();
}
#endif
void mercury__deriv__init(void); /* suppress gcc warning */
void mercury__deriv__init(void)
{
#if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \
|| defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \
|| defined(DEBUG_LABELS) || !defined(SPEED)
mercury__deriv_bunch_0();
#endif
}