changeset 1699:93103ad9d7f7

Fix constant propagation to a non-ephemeral destination in CPU DSL
author Michael Pavone <pavone@retrodev.com>
date Fri, 25 Jan 2019 14:13:46 -0800
parents 90272218469c
children e4b4e21a37fa
files cpu_dsl.py
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/cpu_dsl.py	Fri Jan 25 13:55:30 2019 -0800
+++ b/cpu_dsl.py	Fri Jan 25 14:13:46 2019 -0800
@@ -475,7 +475,9 @@
 					dst = maybeLocal
 				parent.regValues[dst] = result
 				if prog.isReg(dst):
-					output.append(_opMap['mov'].generate(otype, prog, procParams, self.params))
+					shortProc = (procParams[0], procParams[-1])
+					shortParams = (self.params[0], self.params[-1])
+					output.append(_opMap['mov'].generate(otype, prog, shortProc, shortParams))
 			else:
 				output.append(opDef.generate(otype, prog, procParams, self.params))
 		elif self.op in prog.subroutines: