Author: Richard Plangger <planri...@gmail.com>
Branch: ppc-vsx-support
Changeset: r86027:912c2e29f742
Date: 2016-08-05 11:17 +0200
http://bitbucket.org/pypy/pypy/changeset/912c2e29f742/

Log:    jitlog encode fail arguments (how could I forget that :) ppc
        misaligned_is_fine = Ture

diff --git a/rpython/rlib/rawstorage.py b/rpython/rlib/rawstorage.py
--- a/rpython/rlib/rawstorage.py
+++ b/rpython/rlib/rawstorage.py
@@ -48,7 +48,8 @@
 try:
     cpuname = detect_cpu.autodetect()
     misaligned_is_fine = cpuname.startswith('x86') or \
-                         cpuname.startswith('s390x')
+                         cpuname.startswith('s390x') or \
+                         cpuname.startswith('ppc')
     del cpuname
 except detect_cpu.ProcessorAutodetectError:
     misaligned_is_fine = False
diff --git a/rpython/rlib/rjitlog/rjitlog.py b/rpython/rlib/rjitlog/rjitlog.py
--- a/rpython/rlib/rjitlog/rjitlog.py
+++ b/rpython/rlib/rjitlog/rjitlog.py
@@ -509,7 +509,9 @@
         """ an operation is written as follows:
             <marker> <opid (16 bit)> \
                      <len (32 bit)> \
-                     <res_val>,<arg_0>,...,<arg_n>,<descr>
+                     <res_val>,<arg_0>,...,<arg_n> \
+                     <descr>
+                     <failarg_0>,...<failarg_n>
             The marker indicates if the last argument is
             a descr or a normal argument.
         """
@@ -518,16 +520,21 @@
         le_opnum = encode_le_16bit(op.getopnum())
         str_res = self.var_to_str(op)
         line = ','.join([str_res] + str_args)
+        failargslist = op.getfailargs()
+        failargs = ''
+        if failargslist:
+            failargs = ','.join([self.var_to_str(farg) for farg in 
failargslist])
+        #
         if descr:
             descr_str = descr.repr_of_descr()
             line = line + ',' + descr_str
             string = encode_str(line)
             descr_number = compute_unique_id(descr)
             le_descr_number = encode_le_addr(descr_number)
-            return MARK_RESOP_DESCR, le_opnum + string + le_descr_number
+            return MARK_RESOP_DESCR, le_opnum + string + le_descr_number + 
encode_str(failargs)
         else:
             string = encode_str(line)
-            return MARK_RESOP, le_opnum + string
+            return MARK_RESOP, le_opnum + string + encode_str(failargs)
 
 
     def write_core_dump(self, operations, i, op, ops_offset):
@@ -579,6 +586,8 @@
         return ''.join(dump)
 
     def var_to_str(self, arg):
+        if arg is None:
+            return '-'
         try:
             mv = self.memo[arg]
         except KeyError:
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to