Mercurial > repos > blastem
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 |