X86: Allow RIP relative decode on -all- memory forms of operands.
authorGabe Black <gblack@eecs.umich.edu>
Mon, 30 Jul 2007 22:39:25 +0000 (15:39 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Mon, 30 Jul 2007 22:39:25 +0000 (15:39 -0700)
--HG--
extra : convert_revision : 8af62cda2ce1c4acfa26a028a4f7506647bc27f7

src/arch/x86/isa/specialize.isa

index a45c6e80f74752740a906dc4dc86d0549c623754..b5f51ab58e765da0474ea1789ba21956ddf5d56f 100644 (file)
@@ -149,8 +149,8 @@ let {{
             elif opType.tag == "M":
                 # This refers to memory. The macroop constructor sets up modrm
                 # addressing. Non memory modrm settings should cause an error.
-                Name += "_M"
                 env.doModRM = True
+                return doRipRelativeDecode(Name, opTypes, env)
             elif opType.tag == None or opType.size == None:
                 raise Exception, "Problem parsing operand tag: %s" % opType.tag
             elif opType.tag in ("C", "D", "G", "P", "S", "T", "V"):