/* ** 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 }