20 PREG = (
yamop *)(((
char *)PREG)-(Int)(NEXTOP((
yamop *)NULL,Osbpp)));
28 PREG = NEXTOP(PREG,l);
33#ifdef LOW_LEVEL_TRACER
34 if (Yap_do_low_level_trace) {
35 low_level_trace(try_or, PREG->y_u.Osblp.p0, NULL);
40 check_stack(NoStackEither, HR);
46 d0 = PREG->y_u.Osblp.s;
48 pt1 = (
choiceptr) ((
char *) YREG + (yslot) d0);
53 if (pt1 > top_b || pt1 < (
choiceptr)HR) pt1 = top_b;
55 if (pt1 > top_b) pt1 = top_b;
64 *(CELL **) pt1 = YREG;
65 store_yaam_regs_for_either(PREG->y_u.Osblp.l, PREG);
66 SREG = (CELL *) (B = pt1);
73 PREG = NEXTOP(NEXTOP(PREG, Osblp),l);
79 PROCESS_INT(interrupt_either, either_notest);
85 HR = HBREG = PROTECT_FROZEN_H(B);
91 SET_BB(PROTECT_FROZEN_B(B));
93 if (SCH_top_shared_cp(B)) {
94 SCH_new_alternative(PREG, PREG->y_u.Osblp.l);
97 B->cp_ap = PREG->y_u.Osblp.l;
98 PREG = NEXTOP(PREG, Osblp);
99 YREG = (CELL *) B->cp_a1;
111 if (SCH_top_shared_cp(B)) {
112 HR = HBREG = PROTECT_FROZEN_H(pt0);
113 YREG = (CELL *) pt0->cp_a1;
116 DEPTH = pt0->cp_depth;
118 SCH_new_alternative(PREG, NULL);
124 HR = PROTECT_FROZEN_H(pt0);
125 YREG = (CELL *) pt0->cp_a1;
128 DEPTH = pt0->cp_depth;
130 HBREG = PROTECT_FROZEN_H(B);
133 PREG = NEXTOP(PREG, Osblp);
135 PREG = NEXTOP(PREG, p);
137 SET_BB(PROTECT_FROZEN_B(B));
150 SP = (CELL *) (((
char *) SP) + d0);
156 SREG = (CELL *) (SP[1]);
158 PREG = NEXTOP(PREG, s);
164 SREG = (CELL *) (SP[1]);
166 PREG = NEXTOP(PREG, s);
176 SREG = (CELL *) (SP[1]);
180 PREG = NEXTOP(PREG, e);
186 PREG = NEXTOP(PREG, e);