[pypy-svn] r33187 - in pypy/dist/pypy/translator/asm/ppcgen: . test

mwh at codespeak.net mwh at codespeak.net
Wed Oct 11 20:03:25 CEST 2006


Author: mwh
Date: Wed Oct 11 20:03:23 2006
New Revision: 33187

Modified:
   pypy/dist/pypy/translator/asm/ppcgen/rassemblermaker.py
   pypy/dist/pypy/translator/asm/ppcgen/test/test_rassemblermaker.py
Log:
test + fix for a problem with certain kinds of mnemonic in rassemblermaker


Modified: pypy/dist/pypy/translator/asm/ppcgen/rassemblermaker.py
==============================================================================
--- pypy/dist/pypy/translator/asm/ppcgen/rassemblermaker.py	(original)
+++ pypy/dist/pypy/translator/asm/ppcgen/rassemblermaker.py	Wed Oct 11 20:03:23 2006
@@ -1,6 +1,6 @@
 from pypy.tool.sourcetools import compile2
 
-from pypy.translator.asm.ppcgen.form import IDesc
+from pypy.translator.asm.ppcgen.form import IDesc, IDupDesc
 
 ##     "opcode": ( 0,  5),
 ##     "rA":     (11, 15, 'unsigned', regname._R),
@@ -29,6 +29,9 @@
         else:
             sig.append(field.name)
             fieldvalues.append((field, field.name))
+    if isinstance(desc, IDupDesc):
+        for destfield, srcfield in desc.dupfields.iteritems():
+            fieldvalues.append((destfield, srcfield.name))
     body = ['v = 0']
     assert 'v' not in sig # that wouldn't be funny
     #body.append('print %r'%name + ', ' + ', '.join(["'%s:', %s"%(s, s) for s in sig]))

Modified: pypy/dist/pypy/translator/asm/ppcgen/test/test_rassemblermaker.py
==============================================================================
--- pypy/dist/pypy/translator/asm/ppcgen/test/test_rassemblermaker.py	(original)
+++ pypy/dist/pypy/translator/asm/ppcgen/test/test_rassemblermaker.py	Wed Oct 11 20:03:23 2006
@@ -21,3 +21,11 @@
     res = interpret(f, [])
     assert res == add_r3_r3_r4
     
+def test_mnemonic():
+    mrs = []
+    for A in PPCAssembler, RPPCAssembler:
+        a = A()
+        a.mr(3, 4)
+        mrs.append(a.insts[0])
+    assert mrs[0].assemble() == mrs[1]
+    



More information about the Pypy-commit mailing list