summaryrefslogtreecommitdiff
path: root/arch/sparc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-05-14 23:56:16 -0400
committerGabe Black <gblack@eecs.umich.edu>2006-05-14 23:56:16 -0400
commit42313f33ef6e392975b3bb8809d5522749aaa0e2 (patch)
treeecb66cc9f73f8a2a466a6030c0320fc8f990ce13 /arch/sparc
parentb91b877e9ac51ef22e54c8d161580b6889428792 (diff)
downloadgem5-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')
-rw-r--r--arch/sparc/isa/base.isa6
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)
}};