fix computation of cut register for either (yapor).

This commit is contained in:
Vitor Santos Costa 2011-07-21 14:39:57 +01:00
parent de60807724
commit 6fdf6b49f6
2 changed files with 7 additions and 7 deletions

View File

@ -2155,7 +2155,7 @@ a_try(op_numbers opcode, CELL lab, CELL opr, int nofalts, int hascut, yamop *cod
#endif
#ifdef YAPOR
INIT_YAMOP_LTT(code_p, nofalts);
if (hascut)
if (cip->clause_has_cut)
PUT_YAMOP_CUT(code_p);
if (ap->PredFlags & SequentialPredFlag)
PUT_YAMOP_SEQ(code_p);
@ -2167,7 +2167,7 @@ a_try(op_numbers opcode, CELL lab, CELL opr, int nofalts, int hascut, yamop *cod
static yamop *
#ifdef YAPOR
a_either(op_numbers opcode, CELL opr, CELL lab, int nofalts, int hascut, yamop *code_p, int pass_no, struct intermediates *cip)
a_either(op_numbers opcode, CELL opr, CELL lab, int nofalts, yamop *code_p, int pass_no, struct intermediates *cip)
#else
a_either(op_numbers opcode, CELL opr, CELL lab, yamop *code_p, int pass_no, struct intermediates *cip)
#endif /* YAPOR */
@ -2179,7 +2179,7 @@ a_either(op_numbers opcode, CELL opr, CELL lab, yamop *code_p, int pass_no, stru
code_p->u.Osblp.p0 = cip->CurrentPred;
#ifdef YAPOR
INIT_YAMOP_LTT(code_p, nofalts);
if (hascut)
if (cip->clause_has_cut)
PUT_YAMOP_CUT(code_p);
if (cip->CurrentPred->PredFlags & SequentialPredFlag)
PUT_YAMOP_SEQ(code_p);
@ -3583,7 +3583,7 @@ do_pass(int pass_no, yamop **entry_codep, int assembling, int *clause_has_blobsp
}
code_p = a_either(_either,
-Signed(RealEnvSize) - CELLSIZE * cip->cpc->rnd2,
Unsigned(cip->code_addr) + cip->label_offset[cip->cpc->rnd1], 0, 0, code_p, pass_no, cip);
Unsign`ed(cip->code_addr) + cip->label_offset[cip->cpc->rnd1], 0, code_p, pass_no, cip);
#else
code_p = a_either(_either,
-Signed(RealEnvSize) - CELLSIZE * cip->cpc->rnd2,
@ -3596,7 +3596,7 @@ do_pass(int pass_no, yamop **entry_codep, int assembling, int *clause_has_blobsp
either_inst[either_cont++] = code_p;
code_p = a_either(_or_else,
-Signed(RealEnvSize) - CELLSIZE * cip->cpc->rnd2,
Unsigned(cip->code_addr) + cip->label_offset[cip->cpc->rnd1], 0, 0, code_p, pass_no, cip);
Unsigned(cip->code_addr) + cip->label_offset[cip->cpc->rnd1], 0, code_p, pass_no, cip);
#else
code_p = a_either(_or_else,
-Signed(RealEnvSize) - CELLSIZE * cip->cpc->rnd2,
@ -3608,7 +3608,7 @@ do_pass(int pass_no, yamop **entry_codep, int assembling, int *clause_has_blobsp
#ifdef YAPOR
if (pass_no)
either_inst[either_cont++] = code_p;
code_p = a_either(_or_last, 0, 0, 0, 0, code_p, pass_no, cip);
code_p = a_either(_or_last, 0, 0, 0, code_p, pass_no, cip);
if (pass_no) {
int cont = 1;
do {

@ -1 +1 @@
Subproject commit b1c05f2dfba27286d3810c6921d027cecd528b01
Subproject commit d41891071193a6c9d20b30bdbe709531948e111b