/* ** Automatically generated from `query.m' by the ** Mercury compiler, version 0.5-beta. Do not edit. */ /* INIT mercury__query__init ENDINIT */ #include "imp.h" Define_extern_entry(mercury__benchmark_1_0); 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_i2); Declare_label(mercury__main_2_0_i13); Declare_local(mercury__query_1_0_l); Declare_label(mercury__query_1_0_i1); Declare_label(mercury__query_1_0_i2); Declare_local(mercury__density_2_0_l); Declare_label(mercury__density_2_0_i1); Declare_label(mercury__density_2_0_i2); Declare_local(mercury__pop_2_0_l); Declare_label(mercury__pop_2_0_i4); Declare_label(mercury__pop_2_0_i6); Declare_label(mercury__pop_2_0_i9); Declare_label(mercury__pop_2_0_i10); Declare_label(mercury__pop_2_0_i11); Declare_label(mercury__pop_2_0_i12); Declare_label(mercury__pop_2_0_i13); Declare_label(mercury__pop_2_0_i14); Declare_label(mercury__pop_2_0_i15); Declare_label(mercury__pop_2_0_i16); Declare_label(mercury__pop_2_0_i17); Declare_label(mercury__pop_2_0_i18); Declare_label(mercury__pop_2_0_i19); Declare_label(mercury__pop_2_0_i20); Declare_label(mercury__pop_2_0_i21); Declare_label(mercury__pop_2_0_i22); Declare_label(mercury__pop_2_0_i23); Declare_label(mercury__pop_2_0_i24); Declare_label(mercury__pop_2_0_i25); Declare_label(mercury__pop_2_0_i26); Declare_label(mercury__pop_2_0_i27); Declare_label(mercury__pop_2_0_i28); Declare_label(mercury__pop_2_0_i29); Declare_label(mercury__pop_2_0_i30); Declare_label(mercury__pop_2_0_i31); Declare_label(mercury__pop_2_0_i32); Declare_label(mercury__pop_2_0_i33); Declare_label(mercury__pop_2_0_i1); Declare_local(mercury__pop_2_1_l); Declare_label(mercury__pop_2_1_i2); Declare_label(mercury__pop_2_1_i5); Declare_label(mercury__pop_2_1_i7); Declare_label(mercury__pop_2_1_i9); Declare_label(mercury__pop_2_1_i11); Declare_label(mercury__pop_2_1_i13); Declare_label(mercury__pop_2_1_i15); Declare_label(mercury__pop_2_1_i17); Declare_label(mercury__pop_2_1_i19); Declare_label(mercury__pop_2_1_i21); Declare_label(mercury__pop_2_1_i23); Declare_label(mercury__pop_2_1_i25); Declare_label(mercury__pop_2_1_i27); Declare_label(mercury__pop_2_1_i29); Declare_label(mercury__pop_2_1_i31); Declare_label(mercury__pop_2_1_i33); Declare_label(mercury__pop_2_1_i35); Declare_label(mercury__pop_2_1_i37); Declare_label(mercury__pop_2_1_i39); Declare_label(mercury__pop_2_1_i41); Declare_label(mercury__pop_2_1_i43); Declare_label(mercury__pop_2_1_i45); Declare_label(mercury__pop_2_1_i47); Declare_label(mercury__pop_2_1_i49); Declare_local(mercury__area_2_0_l); Declare_label(mercury__area_2_0_i4); Declare_label(mercury__area_2_0_i6); Declare_label(mercury__area_2_0_i9); Declare_label(mercury__area_2_0_i10); Declare_label(mercury__area_2_0_i11); Declare_label(mercury__area_2_0_i12); Declare_label(mercury__area_2_0_i13); Declare_label(mercury__area_2_0_i14); Declare_label(mercury__area_2_0_i15); Declare_label(mercury__area_2_0_i16); Declare_label(mercury__area_2_0_i17); Declare_label(mercury__area_2_0_i18); Declare_label(mercury__area_2_0_i19); Declare_label(mercury__area_2_0_i20); Declare_label(mercury__area_2_0_i21); Declare_label(mercury__area_2_0_i22); Declare_label(mercury__area_2_0_i23); Declare_label(mercury__area_2_0_i24); Declare_label(mercury__area_2_0_i25); Declare_label(mercury__area_2_0_i26); Declare_label(mercury__area_2_0_i27); Declare_label(mercury__area_2_0_i28); Declare_label(mercury__area_2_0_i29); Declare_label(mercury__area_2_0_i30); Declare_label(mercury__area_2_0_i31); Declare_label(mercury__area_2_0_i32); Declare_label(mercury__area_2_0_i33); Declare_label(mercury__area_2_0_i1); Declare_local(mercury__area_2_1_l); Declare_label(mercury__area_2_1_i2); Declare_label(mercury__area_2_1_i5); Declare_label(mercury__area_2_1_i7); Declare_label(mercury__area_2_1_i9); Declare_label(mercury__area_2_1_i11); Declare_label(mercury__area_2_1_i13); Declare_label(mercury__area_2_1_i15); Declare_label(mercury__area_2_1_i17); Declare_label(mercury__area_2_1_i19); Declare_label(mercury__area_2_1_i21); Declare_label(mercury__area_2_1_i23); Declare_label(mercury__area_2_1_i25); Declare_label(mercury__area_2_1_i27); Declare_label(mercury__area_2_1_i29); Declare_label(mercury__area_2_1_i31); Declare_label(mercury__area_2_1_i33); Declare_label(mercury__area_2_1_i35); Declare_label(mercury__area_2_1_i37); Declare_label(mercury__area_2_1_i39); Declare_label(mercury__area_2_1_i41); Declare_label(mercury__area_2_1_i43); Declare_label(mercury__area_2_1_i45); Declare_label(mercury__area_2_1_i47); Declare_label(mercury__area_2_1_i49); Define_extern_entry(mercury____Unify___quad_0_0); 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__query_module) init_entry(mercury__benchmark_1_0); 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_i2); init_label(mercury__main_2_0_i13); init_local(mercury__query_1_0_l); init_label(mercury__query_1_0_i1); init_label(mercury__query_1_0_i2); init_local(mercury__density_2_0_l); init_label(mercury__density_2_0_i1); init_label(mercury__density_2_0_i2); init_local(mercury__pop_2_0_l); init_label(mercury__pop_2_0_i4); init_label(mercury__pop_2_0_i6); init_label(mercury__pop_2_0_i9); init_label(mercury__pop_2_0_i10); init_label(mercury__pop_2_0_i11); init_label(mercury__pop_2_0_i12); init_label(mercury__pop_2_0_i13); init_label(mercury__pop_2_0_i14); init_label(mercury__pop_2_0_i15); init_label(mercury__pop_2_0_i16); init_label(mercury__pop_2_0_i17); init_label(mercury__pop_2_0_i18); init_label(mercury__pop_2_0_i19); init_label(mercury__pop_2_0_i20); init_label(mercury__pop_2_0_i21); init_label(mercury__pop_2_0_i22); init_label(mercury__pop_2_0_i23); init_label(mercury__pop_2_0_i24); init_label(mercury__pop_2_0_i25); init_label(mercury__pop_2_0_i26); init_label(mercury__pop_2_0_i27); init_label(mercury__pop_2_0_i28); init_label(mercury__pop_2_0_i29); init_label(mercury__pop_2_0_i30); init_label(mercury__pop_2_0_i31); init_label(mercury__pop_2_0_i32); init_label(mercury__pop_2_0_i33); init_label(mercury__pop_2_0_i1); init_local(mercury__pop_2_1_l); init_label(mercury__pop_2_1_i2); init_label(mercury__pop_2_1_i5); init_label(mercury__pop_2_1_i7); init_label(mercury__pop_2_1_i9); init_label(mercury__pop_2_1_i11); init_label(mercury__pop_2_1_i13); init_label(mercury__pop_2_1_i15); init_label(mercury__pop_2_1_i17); init_label(mercury__pop_2_1_i19); init_label(mercury__pop_2_1_i21); init_label(mercury__pop_2_1_i23); init_label(mercury__pop_2_1_i25); init_label(mercury__pop_2_1_i27); init_label(mercury__pop_2_1_i29); init_label(mercury__pop_2_1_i31); init_label(mercury__pop_2_1_i33); init_label(mercury__pop_2_1_i35); init_label(mercury__pop_2_1_i37); init_label(mercury__pop_2_1_i39); init_label(mercury__pop_2_1_i41); init_label(mercury__pop_2_1_i43); init_label(mercury__pop_2_1_i45); init_label(mercury__pop_2_1_i47); init_label(mercury__pop_2_1_i49); init_local(mercury__area_2_0_l); init_label(mercury__area_2_0_i4); init_label(mercury__area_2_0_i6); init_label(mercury__area_2_0_i9); init_label(mercury__area_2_0_i10); init_label(mercury__area_2_0_i11); init_label(mercury__area_2_0_i12); init_label(mercury__area_2_0_i13); init_label(mercury__area_2_0_i14); init_label(mercury__area_2_0_i15); init_label(mercury__area_2_0_i16); init_label(mercury__area_2_0_i17); init_label(mercury__area_2_0_i18); init_label(mercury__area_2_0_i19); init_label(mercury__area_2_0_i20); init_label(mercury__area_2_0_i21); init_label(mercury__area_2_0_i22); init_label(mercury__area_2_0_i23); init_label(mercury__area_2_0_i24); init_label(mercury__area_2_0_i25); init_label(mercury__area_2_0_i26); init_label(mercury__area_2_0_i27); init_label(mercury__area_2_0_i28); init_label(mercury__area_2_0_i29); init_label(mercury__area_2_0_i30); init_label(mercury__area_2_0_i31); init_label(mercury__area_2_0_i32); init_label(mercury__area_2_0_i33); init_label(mercury__area_2_0_i1); init_local(mercury__area_2_1_l); init_label(mercury__area_2_1_i2); init_label(mercury__area_2_1_i5); init_label(mercury__area_2_1_i7); init_label(mercury__area_2_1_i9); init_label(mercury__area_2_1_i11); init_label(mercury__area_2_1_i13); init_label(mercury__area_2_1_i15); init_label(mercury__area_2_1_i17); init_label(mercury__area_2_1_i19); init_label(mercury__area_2_1_i21); init_label(mercury__area_2_1_i23); init_label(mercury__area_2_1_i25); init_label(mercury__area_2_1_i27); init_label(mercury__area_2_1_i29); init_label(mercury__area_2_1_i31); init_label(mercury__area_2_1_i33); init_label(mercury__area_2_1_i35); init_label(mercury__area_2_1_i37); init_label(mercury__area_2_1_i39); init_label(mercury__area_2_1_i41); init_label(mercury__area_2_1_i43); init_label(mercury__area_2_1_i45); init_label(mercury__area_2_1_i47); init_label(mercury__area_2_1_i49); init_entry(mercury____Unify___quad_0_0); 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): */ Define_entry(mercury__benchmark_1_0); /* Procedure entry point */ { mkframe("benchmark/1", 1, ENTRY(do_fail)); } /* Nondet stackframe */ /* End of procedure prologue */ { LVALUE_CAST(Word,maxfr) = (Integer) bt_prevfr((Integer) curfr); } /* discard this frame */ { LVALUE_CAST(Word,succip) = (Integer) bt_succip((Integer) curfr); } /* setup PC on return from tailcall */ { LVALUE_CAST(Word,curfr) = (Integer) bt_succfr((Integer) curfr); } /* setup curfr on return from tailcall */ /* * Live lvalues: */ { localtailcall(mercury__query_1_0_l, LABEL(mercury__benchmark_1_0)); } /* branch to nondet procedure (redirected return) */ /*-------------------------------------------------------------------------*/ /* code for predicate main/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): DCG_0 -> framevar(0) C1 -> framevar(1) C2 -> framevar(2) D1 -> framevar(3) D2 -> framevar(4) */ Define_entry(mercury__main_2_0); /* Procedure entry point */ { mkframe("main/2", 7, LABEL(mercury__main_2_0_i2)); } /* Nondet stackframe */ { framevar(5) = (Integer) maxfr; } /* Save maxfr */ { mark_hp(framevar(6)); } /* Save heap pointer */ { framevar(0) = (Integer) r1; } /* Assigning from DCG_0 */ /* * Live lvalues: * framevar(0) * framevar(5) * framevar(6) */ { localcall(mercury__benchmark_1_0, LABEL(mercury__main_2_0_i3), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r1 num(7) * framevar(6) hp * framevar(5) maxfr * framevar(0) num(8) */ /* branch to nondet procedure */ Define_label(mercury__main_2_0_i3); update_prof_current_proc(LABEL(mercury__main_2_0)); { framevar(1) = (Integer) field(mktag(0), (Integer) r1, 0); } /* vn flush */ { framevar(2) = (Integer) field(mktag(0), (Integer) r1, 2); } /* vn flush */ { framevar(3) = (Integer) field(mktag(0), (Integer) r1, 1); } /* vn flush */ { framevar(4) = (Integer) field(mktag(0), (Integer) r1, 3); } /* vn flush */ { r1 = string_const("quad(\"", 6); } /* vn flush */ { r2 = (Integer) framevar(0); } /* vn flush */ { LVALUE_CAST(Word,bt_redoip((Integer) framevar(5))) = (Integer) ENTRY(do_fail); } /* vn flush */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(1) * framevar(2) * framevar(3) * framevar(4) * framevar(5) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__main_2_0_i4), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) * framevar(1) num(0) * framevar(2) num(0) * framevar(3) num(2) * framevar(4) num(2) */ Define_label(mercury__main_2_0_i4); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = (Integer) framevar(1); } /* Assigning from C1 */ { r2 = (Integer) r3; } /* Assigning from DCG_1 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(2) * framevar(3) * framevar(4) * framevar(5) */ { 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 * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) * framevar(2) num(0) * framevar(3) num(2) * framevar(4) num(2) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i5); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = string_const("\", ", 3); } /* Assigning from variable number 22 */ { r2 = (Integer) r3; } /* Assigning from DCG_2 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(2) * framevar(3) * framevar(4) * framevar(5) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__main_2_0_i6), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) * framevar(2) num(0) * framevar(3) num(2) * framevar(4) num(2) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i6); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = (Integer) framevar(3); } /* Assigning from D1 */ { r2 = (Integer) r3; } /* Assigning from DCG_3 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(2) * framevar(4) * framevar(5) */ { Declare_entry(mercury__io__write_int_3_0); call(ENTRY(mercury__io__write_int_3_0), LABEL(mercury__main_2_0_i7), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) * framevar(2) num(0) * framevar(4) num(2) */ /* 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(", \"", 3); } /* Assigning from variable number 21 */ { r2 = (Integer) r3; } /* Assigning from DCG_4 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(2) * framevar(4) * framevar(5) */ { 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 * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) * framevar(2) num(0) * framevar(4) num(2) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i8); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = (Integer) framevar(2); } /* Assigning from C2 */ { r2 = (Integer) r3; } /* Assigning from DCG_5 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(4) * framevar(5) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__main_2_0_i9), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) * framevar(4) num(2) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i9); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = string_const("\", ", 3); } /* Assigning from variable number 20 */ { r2 = (Integer) r3; } /* Assigning from DCG_6 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(4) * framevar(5) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__main_2_0_i10), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) * framevar(4) num(2) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i10); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = (Integer) framevar(4); } /* Assigning from D2 */ { r2 = (Integer) r3; } /* Assigning from DCG_7 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(5) */ { Declare_entry(mercury__io__write_int_3_0); call(ENTRY(mercury__io__write_int_3_0), LABEL(mercury__main_2_0_i11), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i11); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r1 = string_const(")\n", 2); } /* Assigning from variable number 19 */ { r2 = (Integer) r3; } /* Assigning from DCG_8 */ /* * Live lvalues: * r1 * r2 * framevar(0) * framevar(5) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__main_2_0_i12), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr * framevar(0) num(8) */ /* branch to det procedure */ Define_label(mercury__main_2_0_i12); update_prof_current_proc(LABEL(mercury__main_2_0)); { r2 = (Integer) r3; } /* vn flush */ /* * Live lvalues: * r2 */ { succeed(); } Define_label(mercury__main_2_0_i2); update_prof_current_proc(LABEL(mercury__main_2_0)); { restore_hp((Integer) framevar(6)); } { r1 = string_const("no solution\n", 12); } /* vn flush */ { r2 = (Integer) framevar(0); } /* vn flush */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); } /* vn flush */ /* * Live lvalues: * r1 * r2 * framevar(5) */ { Declare_entry(mercury__io__write_string_3_0); call(ENTRY(mercury__io__write_string_3_0), LABEL(mercury__main_2_0_i13), LABEL(mercury__main_2_0)); } /* * Garbage collection livevals info * r3 num(8) * framevar(5) maxfr */ Define_label(mercury__main_2_0_i13); update_prof_current_proc(LABEL(mercury__main_2_0)); /* Continuation label */ { r2 = (Integer) r3; } /* Assigning from HeadVar__2 */ /* Start of procedure epilogue */ /* * Live lvalues: * r2 */ { succeed(); } /* Succeed */ /*-------------------------------------------------------------------------*/ /* code for predicate query/1 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): C1 -> framevar(0) D1 -> framevar(1) */ Define_local(mercury__query_1_0_l); /* Procedure entry point */ { mkframe("query/1", 2, ENTRY(do_fail)); } /* Nondet stackframe */ /* End of procedure prologue */ /* * Live lvalues: */ { localcall(mercury__density_2_0_l, LABEL(mercury__query_1_0_i1), LABEL(mercury__query_1_0_l)); } /* * Garbage collection livevals info * r2 num(2) * r1 num(0) */ /* branch to nondet procedure */ Define_label(mercury__query_1_0_i1); update_prof_current_proc(LABEL(mercury__query_1_0_l)); /* Continuation label */ { framevar(0) = (Integer) r1; } /* Assigning from C1 */ { framevar(1) = (Integer) r2; } /* Assigning from D1 */ /* * Live lvalues: * framevar(0) * framevar(1) */ { localcall(mercury__density_2_0_l, LABEL(mercury__query_1_0_i2), LABEL(mercury__query_1_0_l)); } /* * Garbage collection livevals info * r2 num(2) * r1 num(0) * framevar(0) num(0) * framevar(1) num(2) */ /* branch to nondet procedure */ Define_label(mercury__query_1_0_i2); update_prof_current_proc(LABEL(mercury__query_1_0_l)); /* Continuation label */ { if (((Integer) framevar(1) <= (Integer) r2)) redo(); } /* Test for failure */ { r3 = (20 * (Integer) framevar(1)); } /* Assigning from T1 */ { r4 = (21 * (Integer) r2); } /* Assigning from T2 */ { if (((Integer) r3 >= (Integer) r4)) redo(); } /* Test for failure */ /* Start of procedure epilogue */ { r3 = (Integer) r1; } /* shuffle lval */ { tag_incr_hp(r1, mktag(0), 4); } /* Allocating heap for HeadVar__1 */ { field(mktag(0), (Integer) r1, 0) = (Integer) framevar(0); } /* Assigning from */ { field(mktag(0), (Integer) r1, 1) = (Integer) framevar(1); } /* Assigning from */ { field(mktag(0), (Integer) r1, 2) = (Integer) r3; } /* Assigning from */ { field(mktag(0), (Integer) r1, 3) = (Integer) r2; } /* Assigning from */ /* * Live lvalues: * r1 */ { succeed(); } /* Succeed */ /*-------------------------------------------------------------------------*/ /* code for predicate density/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): HeadVar__1 -> framevar(0) P -> framevar(1) */ Define_local(mercury__density_2_0_l); /* Procedure entry point */ { mkframe("density/2", 2, ENTRY(do_fail)); } /* Nondet stackframe */ /* End of procedure prologue */ /* * Live lvalues: */ { localcall(mercury__pop_2_1_l, LABEL(mercury__density_2_0_i1), LABEL(mercury__density_2_0_l)); } /* * Garbage collection livevals info * r2 num(2) * r1 num(0) */ /* branch to nondet procedure */ Define_label(mercury__density_2_0_i1); update_prof_current_proc(LABEL(mercury__density_2_0_l)); { framevar(1) = (Integer) r2; } /* vn flush */ { r2 = (Integer) r1; } /* vn flush */ { framevar(0) = (Integer) r1; } /* vn flush */ /* * Live lvalues: * r2 * framevar(0) * framevar(1) */ { localcall(mercury__area_2_0_l, LABEL(mercury__density_2_0_i2), LABEL(mercury__density_2_0_l)); } /* * Garbage collection livevals info * r3 num(2) * framevar(0) num(0) * framevar(1) num(2) */ Define_label(mercury__density_2_0_i2); update_prof_current_proc(LABEL(mercury__density_2_0_l)); /* Continuation label */ { if (!((Integer) r1)) redo(); } /* fail */ /* Start of procedure epilogue */ { r1 = (Integer) framevar(0); } /* Assigning from HeadVar__1 */ { r2 = (((Integer) framevar(1) * 100) / (Integer) r3); } /* Assigning from HeadVar__2 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ /*-------------------------------------------------------------------------*/ /* code for predicate pop/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__pop_2_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* hashed string switch */ { r1 = (hash_string((Integer) r2) & 63); } /* compute the hash value of the input string */ Define_label(mercury__pop_2_0_i4); /* begin hash chain loop */ while (1) { { static const Word mercury_const_8[] = { string_const("spain", 5), string_const("argentina", 9), 0, string_const("ussr", 4), string_const("usa", 3), 0, 0, 0, string_const("brazil", 6), 0, 0, 0, 0, 0, string_const("india", 5), 0, string_const("iran", 4), 0, 0, string_const("mexico", 6), 0, string_const("indonesia", 9), 0, 0, string_const("nigeria", 7), 0, string_const("egypt", 5), string_const("france", 6), 0, 0, string_const("poland", 6), 0, 0, 0, string_const("turkey", 6), 0, 0, 0, 0, 0, string_const("china", 5), 0, string_const("w_germany", 9), 0, string_const("italy", 5), 0, string_const("philippines", 11), string_const("ethiopia", 8), 0, string_const("japan", 5), 0, string_const("pakistan", 8), 0, 0, 0, string_const("bangladesh", 10), 0, string_const("s_korea", 7), 0, string_const("thailand", 8), string_const("uk", 2), 0, 0, 0 }; r3 = ((Word *)mkword(mktag(0), mercury_const_8))[(Integer) r1]; } /* lookup the string for this hash slot */ { if (((Integer) r3 && (strcmp((char *)(Integer) r3, (char *)(Integer) r2) ==0))) GOTO_LABEL(mercury__pop_2_0_i6); } /* did we find a match? */ { static const Word mercury_const_7[] = { -1, -1, -2, -1, 1, -2, -2, -2, -1, -2, -2, -2, -2, -2, -1, -2, -1, -2, -2, -1, -2, -1, -2, -2, -1, -2, -1, -1, -2, -2, -1, -2, -2, -2, -1, -2, -2, -2, -2, -2, -1, -2, -1, -2, -1, -2, -1, -1, -2, -1, -2, -1, -2, -2, -2, -1, -2, -1, -2, -1, -1, -2, -2, -2 }; r1 = ((Word *)mkword(mktag(0), mercury_const_7))[(Integer) r1]; } /* not yet, so get next slot in hash chain */ { if (((Integer) r1 >= 0)) continue; } /* keep searching until we reach the end of the chain */ /* no succip restoration */ /* no sp restoration */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ break; } /* end while */ Define_label(mercury__pop_2_0_i6); /* we found a match */ { COMPUTED_GOTO((Integer) r1, LABEL(mercury__pop_2_0_i9) AND LABEL(mercury__pop_2_0_i10) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i11) AND LABEL(mercury__pop_2_0_i12) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i13) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i14) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i15) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i16) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i17) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i18) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i19) AND LABEL(mercury__pop_2_0_i20) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i21) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i22) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i23) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i24) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i25) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i26) AND LABEL(mercury__pop_2_0_i27) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i28) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i29) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i30) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i31) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i32) AND LABEL(mercury__pop_2_0_i33) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1) AND LABEL(mercury__pop_2_0_i1)); } /* jump to the corresponding code (some shortcircuits) */ Define_label(mercury__pop_2_0_i9); /* case "spain" */ { r3 = 352; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i10); /* case "argentina" */ { r3 = 251; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i11); /* case "ussr" */ { r3 = 2521; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i12); /* case "usa" */ { r3 = 2119; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i13); /* case "brazil" */ { r3 = 1042; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i14); /* case "india" */ { r3 = 5863; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i15); /* case "iran" */ { r3 = 320; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i16); /* case "mexico" */ { r3 = 581; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i17); /* case "indonesia" */ { r3 = 1276; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i18); /* case "nigeria" */ { r3 = 613; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i19); /* case "egypt" */ { r3 = 364; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i20); /* case "france" */ { r3 = 525; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i21); /* case "poland" */ { r3 = 337; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i22); /* case "turkey" */ { r3 = 383; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i23); /* case "china" */ { r3 = 8250; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i24); /* case "w_germany" */ { r3 = 620; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i25); /* case "italy" */ { r3 = 554; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i26); /* case "philippines" */ { r3 = 415; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i27); /* case "ethiopia" */ { r3 = 272; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i28); /* case "japan" */ { r3 = 1097; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i29); /* case "pakistan" */ { r3 = 682; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i30); /* case "bangladesh" */ { r3 = 750; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i31); /* case "s_korea" */ { r3 = 335; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i32); /* case "thailand" */ { r3 = 410; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__pop_2_0_i33); /* case "uk" */ { r3 = 559; } /* Assigning from HeadVar__2 */ /* Start of procedure epilogue */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* Return from procedure call */ Define_label(mercury__pop_2_0_i1); /* End of failure continuation */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate pop/2 in mode 1 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__pop_2_1_l); /* Procedure entry point */ { mkframe("pop/2", 2, LABEL(mercury__pop_2_1_i2)); } /* Nondet stackframe */ { mark_hp(framevar(1)); } /* Save heap pointer */ { r2 = 8250; } /* Assigning from HeadVar__2 */ { r1 = string_const("china", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i2); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i5); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 5863; } /* Assigning from HeadVar__2 */ { r1 = string_const("india", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i5); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i7); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 2521; } /* Assigning from HeadVar__2 */ { r1 = string_const("ussr", 4); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i7); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i9); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 2119; } /* Assigning from HeadVar__2 */ { r1 = string_const("usa", 3); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i9); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i11); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 1276; } /* Assigning from HeadVar__2 */ { r1 = string_const("indonesia", 9); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i11); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i13); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 1097; } /* Assigning from HeadVar__2 */ { r1 = string_const("japan", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i13); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i15); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 1042; } /* Assigning from HeadVar__2 */ { r1 = string_const("brazil", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i15); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i17); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 750; } /* Assigning from HeadVar__2 */ { r1 = string_const("bangladesh", 10); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i17); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i19); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 682; } /* Assigning from HeadVar__2 */ { r1 = string_const("pakistan", 8); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i19); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i21); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 620; } /* Assigning from HeadVar__2 */ { r1 = string_const("w_germany", 9); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i21); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i23); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 613; } /* Assigning from HeadVar__2 */ { r1 = string_const("nigeria", 7); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i23); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i25); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 581; } /* Assigning from HeadVar__2 */ { r1 = string_const("mexico", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i25); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i27); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 559; } /* Assigning from HeadVar__2 */ { r1 = string_const("uk", 2); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i27); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i29); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 554; } /* Assigning from HeadVar__2 */ { r1 = string_const("italy", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i29); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i31); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 525; } /* Assigning from HeadVar__2 */ { r1 = string_const("france", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i31); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i33); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 415; } /* Assigning from HeadVar__2 */ { r1 = string_const("philippines", 11); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i33); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i35); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 410; } /* Assigning from HeadVar__2 */ { r1 = string_const("thailand", 8); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i35); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i37); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 383; } /* Assigning from HeadVar__2 */ { r1 = string_const("turkey", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i37); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i39); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 364; } /* Assigning from HeadVar__2 */ { r1 = string_const("egypt", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i39); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i41); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 352; } /* Assigning from HeadVar__2 */ { r1 = string_const("spain", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i41); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i43); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 337; } /* Assigning from HeadVar__2 */ { r1 = string_const("poland", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i43); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i45); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 335; } /* Assigning from HeadVar__2 */ { r1 = string_const("s_korea", 7); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i45); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i47); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 320; } /* Assigning from HeadVar__2 */ { r1 = string_const("iran", 4); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i47); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i49); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 272; } /* Assigning from HeadVar__2 */ { r1 = string_const("ethiopia", 8); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__pop_2_1_i49); update_prof_current_proc(LABEL(mercury__pop_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); } /* restore failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 251; } /* Assigning from HeadVar__2 */ { r1 = string_const("argentina", 9); } /* Assigning from HeadVar__1 */ /* Start of procedure epilogue */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ /*-------------------------------------------------------------------------*/ /* code for predicate area/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__area_2_0_l); /* Procedure entry point */ /* End of procedure prologue */ /* hashed string switch */ { r1 = (hash_string((Integer) r2) & 63); } /* compute the hash value of the input string */ Define_label(mercury__area_2_0_i4); /* begin hash chain loop */ while (1) { { static const Word mercury_const_8[] = { string_const("spain", 5), string_const("argentina", 9), 0, string_const("ussr", 4), string_const("usa", 3), 0, 0, 0, string_const("brazil", 6), 0, 0, 0, 0, 0, string_const("india", 5), 0, string_const("iran", 4), 0, 0, string_const("mexico", 6), 0, string_const("indonesia", 9), 0, 0, string_const("nigeria", 7), 0, string_const("egypt", 5), string_const("france", 6), 0, 0, string_const("poland", 6), 0, 0, 0, string_const("turkey", 6), 0, 0, 0, 0, 0, string_const("china", 5), 0, string_const("w_germany", 9), 0, string_const("italy", 5), 0, string_const("philippines", 11), string_const("ethiopia", 8), 0, string_const("japan", 5), 0, string_const("pakistan", 8), 0, 0, 0, string_const("bangladesh", 10), 0, string_const("s_korea", 7), 0, string_const("thailand", 8), string_const("uk", 2), 0, 0, 0 }; r3 = ((Word *)mkword(mktag(0), mercury_const_8))[(Integer) r1]; } /* lookup the string for this hash slot */ { if (((Integer) r3 && (strcmp((char *)(Integer) r3, (char *)(Integer) r2) ==0))) GOTO_LABEL(mercury__area_2_0_i6); } /* did we find a match? */ { static const Word mercury_const_7[] = { -1, -1, -2, -1, 1, -2, -2, -2, -1, -2, -2, -2, -2, -2, -1, -2, -1, -2, -2, -1, -2, -1, -2, -2, -1, -2, -1, -1, -2, -2, -1, -2, -2, -2, -1, -2, -2, -2, -2, -2, -1, -2, -1, -2, -1, -2, -1, -1, -2, -1, -2, -1, -2, -2, -2, -1, -2, -1, -2, -1, -1, -2, -2, -2 }; r1 = ((Word *)mkword(mktag(0), mercury_const_7))[(Integer) r1]; } /* not yet, so get next slot in hash chain */ { if (((Integer) r1 >= 0)) continue; } /* keep searching until we reach the end of the chain */ /* no succip restoration */ /* no sp restoration */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* shortcircuit */ break; } /* end while */ Define_label(mercury__area_2_0_i6); /* we found a match */ { COMPUTED_GOTO((Integer) r1, LABEL(mercury__area_2_0_i9) AND LABEL(mercury__area_2_0_i10) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i11) AND LABEL(mercury__area_2_0_i12) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i13) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i14) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i15) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i16) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i17) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i18) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i19) AND LABEL(mercury__area_2_0_i20) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i21) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i22) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i23) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i24) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i25) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i26) AND LABEL(mercury__area_2_0_i27) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i28) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i29) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i30) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i31) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i32) AND LABEL(mercury__area_2_0_i33) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1) AND LABEL(mercury__area_2_0_i1)); } /* jump to the corresponding code (some shortcircuits) */ Define_label(mercury__area_2_0_i9); /* case "spain" */ { r3 = 190; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i10); /* case "argentina" */ { r3 = 1080; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i11); /* case "ussr" */ { r3 = 8708; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i12); /* case "usa" */ { r3 = 3609; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i13); /* case "brazil" */ { r3 = 3288; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i14); /* case "india" */ { r3 = 1139; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i15); /* case "iran" */ { r3 = 628; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i16); /* case "mexico" */ { r3 = 764; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i17); /* case "indonesia" */ { r3 = 570; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i18); /* case "nigeria" */ { r3 = 373; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i19); /* case "egypt" */ { r3 = 386; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i20); /* case "france" */ { r3 = 213; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i21); /* case "poland" */ { r3 = 121; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i22); /* case "turkey" */ { r3 = 296; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i23); /* case "china" */ { r3 = 3380; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i24); /* case "w_germany" */ { r3 = 96; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i25); /* case "italy" */ { r3 = 116; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i26); /* case "philippines" */ { r3 = 90; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i27); /* case "ethiopia" */ { r3 = 350; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i28); /* case "japan" */ { r3 = 148; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i29); /* case "pakistan" */ { r3 = 311; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i30); /* case "bangladesh" */ { r3 = 55; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i31); /* case "s_korea" */ { r3 = 37; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i32); /* case "thailand" */ { r3 = 200; } /* Assigning from HeadVar__2 */ /* no succip restoration */ /* no sp restoration */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* shortcircuit */ Define_label(mercury__area_2_0_i33); /* case "uk" */ { r3 = 86; } /* Assigning from HeadVar__2 */ /* Start of procedure epilogue */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 * r3 */ { proceed(); } /* Return from procedure call */ Define_label(mercury__area_2_0_i1); /* End of failure continuation */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate area/2 in mode 1 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_local(mercury__area_2_1_l); /* Procedure entry point */ { mkframe("area/2", 2, LABEL(mercury__area_2_1_i2)); } /* Nondet stackframe */ { mark_hp(framevar(1)); } /* Save heap pointer */ { r2 = 3380; } /* Assigning from HeadVar__2 */ { r1 = string_const("china", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i2); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i5); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 1139; } /* Assigning from HeadVar__2 */ { r1 = string_const("india", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i5); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i7); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 8708; } /* Assigning from HeadVar__2 */ { r1 = string_const("ussr", 4); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i7); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i9); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 3609; } /* Assigning from HeadVar__2 */ { r1 = string_const("usa", 3); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i9); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i11); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 570; } /* Assigning from HeadVar__2 */ { r1 = string_const("indonesia", 9); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i11); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i13); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 148; } /* Assigning from HeadVar__2 */ { r1 = string_const("japan", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i13); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i15); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 3288; } /* Assigning from HeadVar__2 */ { r1 = string_const("brazil", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i15); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i17); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 55; } /* Assigning from HeadVar__2 */ { r1 = string_const("bangladesh", 10); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i17); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i19); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 311; } /* Assigning from HeadVar__2 */ { r1 = string_const("pakistan", 8); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i19); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i21); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 96; } /* Assigning from HeadVar__2 */ { r1 = string_const("w_germany", 9); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i21); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i23); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 373; } /* Assigning from HeadVar__2 */ { r1 = string_const("nigeria", 7); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i23); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i25); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 764; } /* Assigning from HeadVar__2 */ { r1 = string_const("mexico", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i25); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i27); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 86; } /* Assigning from HeadVar__2 */ { r1 = string_const("uk", 2); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i27); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i29); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 116; } /* Assigning from HeadVar__2 */ { r1 = string_const("italy", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i29); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i31); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 213; } /* Assigning from HeadVar__2 */ { r1 = string_const("france", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i31); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i33); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 90; } /* Assigning from HeadVar__2 */ { r1 = string_const("philippines", 11); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i33); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i35); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 200; } /* Assigning from HeadVar__2 */ { r1 = string_const("thailand", 8); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i35); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i37); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 296; } /* Assigning from HeadVar__2 */ { r1 = string_const("turkey", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i37); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i39); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 386; } /* Assigning from HeadVar__2 */ { r1 = string_const("egypt", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i39); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i41); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 190; } /* Assigning from HeadVar__2 */ { r1 = string_const("spain", 5); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i41); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i43); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 121; } /* Assigning from HeadVar__2 */ { r1 = string_const("poland", 6); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i43); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i45); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 37; } /* Assigning from HeadVar__2 */ { r1 = string_const("s_korea", 7); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i45); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i47); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 628; } /* Assigning from HeadVar__2 */ { r1 = string_const("iran", 4); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i47); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i49); } /* modify failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 350; } /* Assigning from HeadVar__2 */ { r1 = string_const("ethiopia", 8); } /* Assigning from HeadVar__1 */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ Define_label(mercury__area_2_1_i49); update_prof_current_proc(LABEL(mercury__area_2_1_l)); /* Part of the failure continuation */ { LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); } /* restore failure cont */ { restore_hp((Integer) framevar(1)); } /* Reset heap pointer */ { r2 = 1080; } /* Assigning from HeadVar__2 */ { r1 = string_const("argentina", 9); } /* Assigning from HeadVar__1 */ /* Start of procedure epilogue */ /* * Live lvalues: * r1 * r2 */ { succeed(); } /* Succeed */ /*-------------------------------------------------------------------------*/ /* code for predicate __Unify__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Unify___quad_0_0); /* Procedure entry point */ /* End of procedure prologue */ { if ((strcmp((char *)(Integer) field(mktag(0), (Integer) r2, 0), (char *)(Integer) field(mktag(0), (Integer) r3, 0)) !=0)) GOTO_LABEL(mercury____Unify___quad_0_0_i1); } /* Test for failure */ { if (((Integer) field(mktag(0), (Integer) r2, 1) != (Integer) field(mktag(0), (Integer) r3, 1))) GOTO_LABEL(mercury____Unify___quad_0_0_i1); } /* Test for failure */ { if ((strcmp((char *)(Integer) field(mktag(0), (Integer) r2, 2), (char *)(Integer) field(mktag(0), (Integer) r3, 2)) !=0)) GOTO_LABEL(mercury____Unify___quad_0_0_i1); } /* Test for failure */ { if (((Integer) field(mktag(0), (Integer) r2, 3) != (Integer) field(mktag(0), (Integer) r3, 3))) GOTO_LABEL(mercury____Unify___quad_0_0_i1); } /* Test for failure */ /* Start of procedure epilogue */ { r1 = TRUE; } /* Succeed */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ Define_label(mercury____Unify___quad_0_0_i1); /* End of failure continuation */ { r1 = FALSE; } /* Fail */ /* * Live lvalues: * r1 */ { proceed(); } /* Return from procedure call */ /*-------------------------------------------------------------------------*/ /* code for predicate __Index__/2 in mode 0 */ /* Start of procedure prologue */ /* Stack slot assignments (if any): */ Define_entry(mercury____Index___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) */ { Declare_entry(mercury__builtin_compare_string_3_0); call(ENTRY(mercury__builtin_compare_string_3_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(0) * detstackvar(4) num(0) * detstackvar(5) num(2) * detstackvar(6) num(2) * detstackvar(7) num(2) * detstackvar(8) num(2) */ 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) */ { Declare_entry(mercury__builtin_compare_int_3_0); call(ENTRY(mercury__builtin_compare_int_3_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(0) * detstackvar(4) num(0) * detstackvar(7) num(2) * detstackvar(8) num(2) */ /* 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) */ { Declare_entry(mercury__builtin_compare_string_3_0); call(ENTRY(mercury__builtin_compare_string_3_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(2) * detstackvar(8) num(2) */ /* 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) */ { Declare_entry(mercury__builtin_compare_int_3_0); tailcall(ENTRY(mercury__builtin_compare_int_3_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__query_bunch_0(void) { mercury__query_module(); } #endif void mercury__query__init(void); /* suppress gcc warning */ void mercury__query__init(void) { #if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \ || defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \ || defined(DEBUG_LABELS) || !defined(SPEED) mercury__query_bunch_0(); #endif }