Made the decoder handle reg_or_imm type arguments with type qualifiers.
authorGabe Black <gblack@eecs.umich.edu>
Mon, 15 May 2006 03:56:16 +0000 (23:56 -0400)
committerGabe Black <gblack@eecs.umich.edu>
Mon, 15 May 2006 03:56:16 +0000 (23:56 -0400)
--HG--
extra : convert_revision : f0ec58d754401fa6f3d64998355644882c5f5c96

arch/sparc/isa/base.isa

index cb370a3e7701a7fffc3b7afad363fc252c45151f..8ea11b40e50720ab5f79d32c8f964d19e72c7f3e 100644 (file)
@@ -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)
 }};