Mercurial > repos > blastem
comparison cpu_dsl.py @ 2592:8ef8b2e99f4f
Fix regression in better unimplemented instruction error in CPU dsl
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 09 Feb 2025 16:54:38 -0800 |
parents | 563d05355a12 |
children | 1c493b8c513b |
comparison
equal
deleted
inserted
replaced
2591:563d05355a12 | 2592:8ef8b2e99f4f |
---|---|
497 def _dispatchCImpl(prog, params): | 497 def _dispatchCImpl(prog, params): |
498 if len(params) == 1: | 498 if len(params) == 1: |
499 table = 'main' | 499 table = 'main' |
500 else: | 500 else: |
501 table = params[1] | 501 table = params[1] |
502 if table == 'main': | |
503 prog.mainDispatch.add(params[0]) | |
504 if prog.dispatch == 'call': | 502 if prog.dispatch == 'call': |
505 return '\n\timpl_{tbl}[{op}](context, target_cycle);'.format(tbl = table, op = params[0]) | 503 return '\n\timpl_{tbl}[{op}](context, target_cycle);'.format(tbl = table, op = params[0]) |
506 elif prog.dispatch == 'goto': | 504 elif prog.dispatch == 'goto': |
507 return '\n\tgoto *impl_{tbl}[{op}];'.format(tbl = table, op = params[0]) | 505 return '\n\tgoto *impl_{tbl}[{op}];'.format(tbl = table, op = params[0]) |
508 else: | 506 else: |
2042 pieces.append('\n\t}') | 2040 pieces.append('\n\t}') |
2043 pieces.append('\n}') | 2041 pieces.append('\n}') |
2044 body.append('\nstatic void unimplemented({pre}context *context, uint32_t target_cycle)'.format(pre = self.prefix)) | 2042 body.append('\nstatic void unimplemented({pre}context *context, uint32_t target_cycle)'.format(pre = self.prefix)) |
2045 body.append('\n{') | 2043 body.append('\n{') |
2046 if len(self.mainDispatch) == 1: | 2044 if len(self.mainDispatch) == 1: |
2047 dispatch = list(self.mainDispatch)[0] | 2045 dispatch = self.resolveParam(list(self.mainDispatch)[0], None, {}) |
2048 body.append(f'\n\tfatal_error("Unimplemented instruction: %X\\n", {dispatch});') | 2046 body.append(f'\n\tfatal_error("Unimplemented instruction: %X\\n", {dispatch});') |
2049 else: | 2047 else: |
2050 body.append('\n\tfatal_error("Unimplemented instruction\\n");') | 2048 body.append('\n\tfatal_error("Unimplemented instruction\\n");') |
2051 body.append('\n}\n') | 2049 body.append('\n}\n') |
2052 elif self.dispatch == 'goto': | 2050 elif self.dispatch == 'goto': |