diff options
author | Mike Pavone <pavone@retrodev.com> | 2013-04-21 16:44:10 -0700 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2013-04-21 16:44:10 -0700 |
commit | 86772de0d569b77d2e62daafd3871a625fe6b5d7 (patch) | |
tree | 7fd60e1453fd7bfa953fbdb996c32862e51d1afa /gentests.py | |
parent | 28b19a047f98ac80090e5286d5f0c0349b91dc38 (diff) |
Added test cases for divs/divu and added divide by zero handler to test generator
Diffstat (limited to 'gentests.py')
-rwxr-xr-x | gentests.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gentests.py b/gentests.py index 3e8f083..9aa6a92 100755 --- a/gentests.py +++ b/gentests.py @@ -23,10 +23,21 @@ class Program(object): def write_rom_test(self, outfile): outfile.write('\tdc.l $0, start\n') + needdivzero = self.inst.name.startswith('div') for i in xrange(0x8, 0x100, 0x4): - outfile.write('\tdc.l empty_handler\n') - outfile.write('\tdc.b "SEGA"\nempty_handler:\n\trte\nstart:\n') - outfile.write('\tmove #0, CCR\n') + if needdivzero and i == 0x14: + outfile.write('\tdc.l div_zero_handler\n') + else: + outfile.write('\tdc.l empty_handler\n') + outfile.write('\tdc.b "SEGA"\nempty_handler:\n\trte\n') + if needdivzero: + outfile.write('div_zero_handler:\n') + div_zero_count = self.get_dreg() + outfile.write('\taddq #1, ' + str(div_zero_count) + '\n') + outfile.write('\trte\n') + outfile.write('start:\n\tmove #0, CCR\n') + if needdivzero: + outfile.write('\tmoveq #0, ' + str(div_zero_count) + '\n') already = {} self.inst.write_init(outfile, already) if 'label' in already: |