[pypy-commit] pypy s390x-backend: reverted changes to runner_test (for debug purpose), now the first errno test is fully passing

plan_rich pypy.commits at gmail.com
Tue Dec 22 12:43:36 EST 2015


Author: Richard Plangger <planrichi at gmail.com>
Branch: s390x-backend
Changeset: r81422:5c47bf206610
Date: 2015-12-22 18:42 +0100
http://bitbucket.org/pypy/pypy/changeset/5c47bf206610/

Log:	reverted changes to runner_test (for debug purpose), now the first
	errno test is fully passing

diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -2997,23 +2997,19 @@
         if not isinstance(self.cpu, AbstractLLCPU):
             py.test.skip("not on LLGraph")
         eci = ExternalCompilationInfo(
-            separate_module_sources=["""
+            separate_module_sources=['''
                 #include <errno.h>
-                #include <stdio.h>
                 static long f1(long a, long b, long c, long d,
                                long e, long f, long g) {
                     errno = 42;
-                    printf("value: a %d, b %d, c %d, d %d, e %d, f %d, g %d \\n", a,b,c,d,e,f,g);
-                    long v = (a + 10*b + 100*c + 1000*d +
+                    return (a + 10*b + 100*c + 1000*d +
                             10000*e + 100000*f + 1000000*g);
-                    printf("value: %d\\n", v);
-                    return v;
                 }
                 RPY_EXPORTED
                 long test_call_release_gil_save_errno(void) {
                     return (long)&f1;
                 }
-            """]) 
+            '''])
         fn_name = 'test_call_release_gil_save_errno'
         getter_ptr = rffi.llexternal(fn_name, [], lltype.Signed,
                                      compilation_info=eci, _nowrapper=True)
@@ -3023,8 +3019,8 @@
         #
         for saveerr in [rffi.RFFI_ERR_NONE,
                         rffi.RFFI_SAVE_ERRNO,
-                        #rffi.RFFI_ERR_NONE | rffi.RFFI_ALT_ERRNO,
-                        #rffi.RFFI_SAVE_ERRNO | rffi.RFFI_ALT_ERRNO,
+                        rffi.RFFI_ERR_NONE | rffi.RFFI_ALT_ERRNO,
+                        rffi.RFFI_SAVE_ERRNO | rffi.RFFI_ALT_ERRNO,
                         ]:
             faildescr = BasicFailDescr(1)
             inputargs = [InputArgInt() for i in range(7)]
diff --git a/rpython/jit/backend/zarch/callbuilder.py b/rpython/jit/backend/zarch/callbuilder.py
--- a/rpython/jit/backend/zarch/callbuilder.py
+++ b/rpython/jit/backend/zarch/callbuilder.py
@@ -184,19 +184,19 @@
         RFASTGILPTR = self.RFASTGILPTR    # r10: &fastgil
         RSHADOWOLD  = self.RSHADOWOLD     # r12: previous val of root_stack_top
 
-        # Equivalent of 'r14 = __sync_lock_test_and_set(&rpy_fastgil, 1);'
+        # Equivalent of 'r12 = __sync_lock_test_and_set(&rpy_fastgil, 1);'
         self.mc.LGHI(r.SCRATCH, l.imm(1))
         retry_label = self.mc.currpos()
         # compare and swap, only succeeds if the the contents of the
-        # lock is equal to r14 (= 0)
-        self.mc.LG(r.r14, l.addr(0, RFASTGILPTR))
-        self.mc.CSG(r.r14, r.SCRATCH, l.addr(0, RFASTGILPTR))  # try to claim lock
+        # lock is equal to r12 (= 0)
+        self.mc.LG(r.r12, l.addr(0, RFASTGILPTR))
+        self.mc.CSG(r.r12, r.SCRATCH, l.addr(0, RFASTGILPTR))  # try to claim lock
         self.mc.BRC(c.NE, l.imm(retry_label - self.mc.currpos())) # retry if failed
         self.mc.sync()
 
-        self.mc.CGHI(r.r14, l.imm0)
+        self.mc.CGHI(r.r12, l.imm0)
         b1_location = self.mc.currpos()
-        self.mc.trap()          # boehm: patched with a BEQ: jump if r14 is zero
+        self.mc.trap()          # boehm: patched with a BEQ: jump if r12 is zero
         self.mc.write('\x00'*4) # shadowstack: patched with BNE instead
 
         if self.asm.cpu.gc_ll_descr.gcrootmap:
@@ -214,8 +214,8 @@
 
             # revert the rpy_fastgil acquired above, so that the
             # general 'reacqgil_addr' below can acquire it again...
-            # (here, r14 is conveniently zero)
-            self.mc.STG(r.r14, l.addr(0,RFASTGILPTR))
+            # (here, r12 is conveniently zero)
+            self.mc.STG(r.r12, l.addr(0,RFASTGILPTR))
 
             pmc = OverwritingBuilder(self.mc, bne_location, 1)
             pmc.BCRL(c.NE, self.mc.currpos() - bne_location)
@@ -258,16 +258,16 @@
                 rpy_errno = llerrno.get_rpy_errno_offset(self.asm.cpu)
             p_errno = llerrno.get_p_errno_offset(self.asm.cpu)
             self.mc.LG(r.r11, l.addr(THREADLOCAL_ADDR_OFFSET, r.SP))
-            self.mc.LGH(r.SCRATCH2, l.addr(rpy_errno, r.r11))
+            self.mc.LGF(r.SCRATCH2, l.addr(rpy_errno, r.r11))
             self.mc.LG(r.r11, l.addr(p_errno, r.r11))
-            self.mc.STHY(r.SCRATCH2, l.addr(0,r.r11))
+            self.mc.STY(r.SCRATCH2, l.addr(0,r.r11))
         elif save_err & rffi.RFFI_ZERO_ERRNO_BEFORE:
             # Same, but write zero.
             p_errno = llerrno.get_p_errno_offset(self.asm.cpu)
             self.mc.LG(r.r11, l.addr(THREADLOCAL_ADDR_OFFSET, r.SP))
             self.mc.LG(r.r11, l.addr(p_errno, r.r11))
             self.mc.LGHI(r.SCRATCH, 0)
-            self.mc.STHY(r.SCRATCH, l.addr(0,r.r11))
+            self.mc.STY(r.SCRATCH, l.addr(0,r.r11))
 
     def read_real_errno(self, save_err):
         if save_err & rffi.RFFI_SAVE_ERRNO:
@@ -281,5 +281,5 @@
             p_errno = llerrno.get_p_errno_offset(self.asm.cpu)
             self.mc.LG(r.r12, l.addr(THREADLOCAL_ADDR_OFFSET, r.SP))
             self.mc.LG(r.r11, l.addr(p_errno, r.r12))
-            self.mc.LGH(r.r11, l.addr(0, r.r11))
-            self.mc.STG(r.r11, l.addr(p_errno, r.r12))
+            self.mc.LGF(r.r11, l.addr(0, r.r11))
+            self.mc.STY(r.r11, l.addr(rpy_errno, r.r12))


More information about the pypy-commit mailing list