diff options
Diffstat (limited to 'parse-opcodes')
-rwxr-xr-x | parse-opcodes | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/parse-opcodes b/parse-opcodes index 6857c58..45d16db 100755 --- a/parse-opcodes +++ b/parse-opcodes @@ -24,6 +24,9 @@ arglut['imm12lo'] = (16,10) arglut['shamt'] = (15,10) arglut['shamtw'] = (14,10) +arglut['crd5'] = (9,5) +arglut['cimm6'] = (15,10) + typelut = {} # 0=unimp,1=j,2=lui,3=imm,4=r,5=r4,6=ish,7=ishw,10=b typelut[0x00] = 0 typelut[0x03] = 3 @@ -126,18 +129,18 @@ def make_switch(match,mask): print ' #include "insns/%s.h"' % name2 print ' break;' print ' }' - print ' #include "insns/unimp.h"' + print ' throw trap_illegal_instruction;' print ' }' print ' default:' print ' {' - print ' #include "insns/unimp.h"' + print ' throw trap_illegal_instruction;' print ' }' print ' }' print ' break;' print ' }' print ' default:' print ' {' - print ' #include "insns/unimp.h"' + print ' throw trap_illegal_instruction;' print ' }' print '}' @@ -781,7 +784,7 @@ for line in sys.stdin: else: sys.exit("%s: unknown token %s" % (name,token)) - if cover != 0xFFFFFFFF: + if not (cover == 0xFFFFFFFF or cover == 0xFFFF): sys.exit("%s: not all bits are covered" % name) for name2,match2 in match.iteritems(): |