Mercurial > repos > blastem
diff cpu_dsl.py @ 1765:7b6831305a6a
Fix calculation for whether coalesceFlags is needed for xchg instruction in CPU DSL
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 20 Feb 2019 00:34:52 -0800 |
parents | 6e4faa10f9ee |
children | 0c1491818f4b |
line wrap: on
line diff
--- a/cpu_dsl.py Wed Feb 20 00:16:27 2019 -0800 +++ b/cpu_dsl.py Wed Feb 20 00:34:52 2019 -0800 @@ -731,6 +731,10 @@ for param in self.params: allowConst = (self.op in prog.subroutines or len(procParams) != len(self.params) - 1) and param in parent.regValues isDst = (not opDef is None) and len(procParams) in opDef.outOp + if isDst and self.op == 'xchg': + #xchg uses its regs as both source and destination + #we need to resolve as both so that disperse/coalesce flag stuff gets done + prog.resolveParam(param, parent, fieldVals, allowConst, False) param = prog.resolveParam(param, parent, fieldVals, allowConst, isDst) if (not type(param) is int) and len(procParams) != len(self.params) - 1: