comparison cpu_dsl.py @ 1734:88fbc4e711fd

Implemented the rest of the block move instructions in new Z80 core
author Michael Pavone <pavone@retrodev.com>
date Sun, 03 Feb 2019 10:40:41 -0800
parents 1f0a86f5e055
children ca2336469397
comparison
equal deleted inserted replaced
1733:1f0a86f5e055 1734:88fbc4e711fd
165 size = int(op.params[1]) 165 size = int(op.params[1])
166 self.arg_map[name] = len(self.args) 166 self.arg_map[name] = len(self.args)
167 self.args.append((name, size)) 167 self.args.append((name, size))
168 elif op.op == 'local': 168 elif op.op == 'local':
169 name = op.params[0] 169 name = op.params[0]
170 size = op.params[1] 170 size = int(op.params[1])
171 self.locals[name] = size 171 self.locals[name] = size
172 else: 172 else:
173 self.implementation.append(op) 173 self.implementation.append(op)
174 174
175 def resolveLocal(self, name): 175 def resolveLocal(self, name):
337 calc = prog.flags.flagCalc[flag] 337 calc = prog.flags.flagCalc[flag]
338 calc,_,resultBit = calc.partition('-') 338 calc,_,resultBit = calc.partition('-')
339 if prog.carryFlowDst: 339 if prog.carryFlowDst:
340 lastDst = prog.carryFlowDst 340 lastDst = prog.carryFlowDst
341 else: 341 else:
342 lastDst = prog.resolveParam(prog.lastDst, None, {}) 342 lastDst = prog.resolveParam(prog.lastDst, prog.currentScope, {})
343 storage = prog.flags.getStorage(flag) 343 storage = prog.flags.getStorage(flag)
344 if calc == 'bit' or calc == 'sign' or calc == 'carry' or calc == 'half' or calc == 'overflow': 344 if calc == 'bit' or calc == 'sign' or calc == 'carry' or calc == 'half' or calc == 'overflow':
345 myRes = lastDst 345 myRes = lastDst
346 if calc == 'sign': 346 if calc == 'sign':
347 resultBit = prog.paramSize(prog.lastDst) - 1 347 resultBit = prog.paramSize(prog.lastDst) - 1