diff --git a/H/YapOpcodes.h b/H/YapOpcodes.h index 5b22fb537..d81d0573b 100644 --- a/H/YapOpcodes.h +++ b/H/YapOpcodes.h @@ -9,8 +9,10 @@ OPCODE(trust_me ,Otapl), OPCODE(enter_exo ,e), OPCODE(try_exo ,lp), + OPCODE(try_udi ,p), OPCODE(try_all_exo ,lp), OPCODE(retry_exo ,lp), + OPCODE(retry_udi ,p), OPCODE(retry_all_exo ,lp), OPCODE(enter_profiling ,p), OPCODE(retry_profiled ,p), diff --git a/H/rclause.h b/H/rclause.h index daa64fbe3..c647637e0 100644 --- a/H/rclause.h +++ b/H/rclause.h @@ -447,6 +447,8 @@ restore_opcodes(yamop *pc, yamop *max USES_REGS) case _lock_lu: case _procceed: case _retry_profiled: + case _retry_udi: + case _try_udi: pc->u.p.p = PtoPredAdjust(pc->u.p.p); pc = NEXTOP(pc,p); break; diff --git a/H/rheap.h b/H/rheap.h index 663b443bf..3b8058894 100644 --- a/H/rheap.h +++ b/H/rheap.h @@ -1042,6 +1042,7 @@ RestoreYapRecords__( USES_REGS1 ) ptr->prev_rec = DBRecordAdjust(ptr->prev_rec); ptr->dbrecord = DBTermAdjust(ptr->dbrecord); RestoreDBTerm(ptr->dbrecord, FALSE PASS_REGS); + ptr = ptr->next_rec; } } diff --git a/H/saveclause.h b/H/saveclause.h index 05020703a..e7d0a4a90 100644 --- a/H/saveclause.h +++ b/H/saveclause.h @@ -464,6 +464,8 @@ case _lock_lu: case _procceed: case _retry_profiled: + case _retry_udi: + case _try_udi: CHECK(save_PtoPred(stream, pc->u.p.p)); pc = NEXTOP(pc,p); break; diff --git a/H/walkclause.h b/H/walkclause.h index 6bc7a8a41..479b728b3 100644 --- a/H/walkclause.h +++ b/H/walkclause.h @@ -350,6 +350,8 @@ case _deallocate: case _enter_profiling: case _retry_profiled: + case _retry_udi: + case _try_udi: pc = NEXTOP(pc,p); break; /* instructions type plxxs */