fix computation of cut register for either (yapor).
This commit is contained in:
parent
de60807724
commit
6fdf6b49f6
12
C/amasm.c
12
C/amasm.c
@ -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
|
Reference in New Issue
Block a user