add type signed identification, add lh/sh to insn ld/store types
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 23 Oct 2018 05:13:53 +0000 (06:13 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 23 Oct 2018 05:13:53 +0000 (06:13 +0100)
id_regs.py

index ab31521ba610764d1e2f95af39aff1ecb5b4d7e7..ccb4f388ee7bc4afa0431ff8b424b3efd51362cc 100644 (file)
@@ -189,11 +189,10 @@ if __name__ == '__main__':
             if insn in ['beq', 'bne', 'blt', 'bltu', 'bge', 'bgeu']:
                 txt += "#define INSN_TYPE_BRANCH\n"
                 is_branch = 'STD' # standard branch
-            if insn in ['lb', 'lbu', 'lw', 'lwu', 'ld', 'ldu']:
-                load_insn = True
+            if insn in ['lb', 'lbu', 'lh', 'lhu', 'lw', 'lwu', 'ld', 'ldu']:
                 twin_predication = True
                 txt += "#define INSN_TYPE_LOAD\n"
-            elif insn in ['sb', 'sbu', 'sw', 'swu', 'sd', 'sdu']:
+            elif insn in ['sb', 'sbu', 'sh', 'shu', 'sw', 'swu', 'sd', 'sdu']:
                 twin_predication = True
                 txt += "#define INSN_TYPE_STORE\n"
             elif insn in ['c_lwsp', 'c_ldsp', 'c_lqsp', 'c_flwsp', 'c_fldsp']:
@@ -228,6 +227,10 @@ if __name__ == '__main__':
                 txt += "#define INSN_TYPE_FP_BRANCH\n"
             if twin_predication:
                 txt += "\n#define INSN_CATEGORY_TWINPREDICATION\n"
+            if insn in ['lb', 'lh', 'lw', 'ld',
+                        'sb', 'sh', 'sw', 'sd'] or \
+               insn.endswith('w'):
+                txt += "#define INSN_TYPE_SIGNED\n"
             txt += find_registers(fname, insn, twin_predication,
                                   immed_offset, is_branch)
             f.write(txt)