diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2006-05-14 23:56:16 -0400 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2006-05-14 23:56:16 -0400 |
commit | 42313f33ef6e392975b3bb8809d5522749aaa0e2 (patch) | |
tree | ecb66cc9f73f8a2a466a6030c0320fc8f990ce13 /arch/sparc/isa/base.isa | |
parent | b91b877e9ac51ef22e54c8d161580b6889428792 (diff) | |
download | gem5-42313f33ef6e392975b3bb8809d5522749aaa0e2.tar.xz |
Made the decoder handle reg_or_imm type arguments with type qualifiers.
--HG--
extra : convert_revision : f0ec58d754401fa6f3d64998355644882c5f5c96
Diffstat (limited to 'arch/sparc/isa/base.isa')
-rw-r--r-- | arch/sparc/isa/base.isa | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/sparc/isa/base.isa b/arch/sparc/isa/base.isa index cb370a3e7..8ea11b40e 100644 --- a/arch/sparc/isa/base.isa +++ b/arch/sparc/isa/base.isa @@ -99,14 +99,16 @@ def template ROrImmDecode {{ let {{ def splitOutImm(code): - matcher = re.compile(r'Rs(?P<rNum>\d)_or_imm(?P<iNum>\d+)') + matcher = re.compile(r'Rs(?P<rNum>\d)_or_imm(?P<iNum>\d+)(?P<typeQual>\.\w+)?') rOrImmMatch = matcher.search(code) if (rOrImmMatch == None): return (False, code, '', '', '') rString = rOrImmMatch.group("rNum") + if (rOrImmMatch.group("typeQual") != None): + rString += rOrImmMatch.group("typeQual") iString = rOrImmMatch.group("iNum") orig_code = code - code = matcher.sub('Rs' + rOrImmMatch.group("rNum"), orig_code) + code = matcher.sub('Rs' + rString, orig_code) imm_code = matcher.sub('imm', orig_code) return (True, code, imm_code, rString, iString) }}; |