From 3618294bacbb5b3a2514e5ef69effb0f82c321af Mon Sep 17 00:00:00 2001 From: phsauter Date: Mon, 6 Nov 2023 16:35:00 +0100 Subject: [PATCH] peepopt: Add assert of consistent `shiftadd` data --- passes/pmgen/peepopt_shiftadd.pmg | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/passes/pmgen/peepopt_shiftadd.pmg b/passes/pmgen/peepopt_shiftadd.pmg index 25f0756da..f9c930eae 100644 --- a/passes/pmgen/peepopt_shiftadd.pmg +++ b/passes/pmgen/peepopt_shiftadd.pmg @@ -85,10 +85,11 @@ endmatch code { - if (offset>0 && var_signed) { - log("I should not be here %x\n", var_signed); - reject; - } + // positive constant offset with a signed variable (index) cannot be handled + // the above filter should get rid of this case but 'offset' is calculated differently + // due to limitations of state-variables in pmgen + // it should only differ if previous passes create invalid data + log_assert(!(offset>0 && var_signed)); did_something = true; log("shiftadd pattern in %s: shift=%s, add/sub=%s, offset: %d\n", \