From 4d068e8e049d651d27ee891cd4c35d3c29962c93 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 17 Dec 1992 12:52:21 +0000 Subject: [PATCH] ply adaption was wrong for EM replacements --- mach/proto/cg/codegen.c | 6 ++++-- mach/proto/ncg/codegen.c | 10 ++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mach/proto/cg/codegen.c b/mach/proto/cg/codegen.c index b56fc7c70..e763e085d 100644 --- a/mach/proto/cg/codegen.c +++ b/mach/proto/cg/codegen.c @@ -656,8 +656,10 @@ if (Debug > 1) fprintf(stderr, "cost after coercions: %u\n", t); break; } } - if (!toplevel) - ply += emrepllen; + if (!toplevel) { + if (ply >= j) ply += emrepllen - j; + else ply = emrepllen; + } break; case DO_COST: DEBUG("COST"); diff --git a/mach/proto/ncg/codegen.c b/mach/proto/ncg/codegen.c index 61abf04ae..d73fc04be 100644 --- a/mach/proto/ncg/codegen.c +++ b/mach/proto/ncg/codegen.c @@ -852,8 +852,14 @@ normalfailed: if (stackpad!=tokpatlen) { break; } } - if (!toplevel) - ply += emrepllen; + if (!toplevel) { + if (ply >= j) ply = emrepllen + ply - j; + else ply = emrepllen; +#ifndef NDEBUG + if (Debug > 4) + fprintf(stderr, "ply becomes %d\n", ply); +#endif + } break; } case DO_COST: { -- 2.34.1