1.0.41.39: ppc: Rename reg_L2 to reg_THREAD on threaded builds.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sun, 8 Aug 2010 01:13:50 +0000 (01:13 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sun, 8 Aug 2010 01:13:50 +0000 (01:13 +0000)
  * This is largely to make the disassembly less confusing when it
refers to TLS slots and other per-thread data.

src/compiler/ppc/vm.lisp
src/runtime/ppc-assem.S
src/runtime/ppc-lispregs.h
version.lisp-expr

index 058f252..e655d12 100644 (file)
@@ -74,7 +74,7 @@
   (defreg a3 27)
   (defreg l0 28)
   (defreg l1 29)
-  (defreg l2 30)
+  (defreg #!-sb-thread l2 #!+sb-thread thread 30)
   (defreg lip 31)
 
   (defregset non-descriptor-regs
 #!+sb-thread
 (defparameter thread-base-tn
   (make-random-tn :kind :normal :sc (sc-or-lose 'unsigned-reg)
-                  :offset l2-offset))
+                  :offset thread-offset))
 
 (export 'single-value-return-byte-offset)
 
index 72838ca..5ecd384 100644 (file)
@@ -346,10 +346,10 @@ x:
 
        li reg_ALLOC,4
 #if defined(LISP_FEATURE_SB_THREAD)
-       stw reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_L2)
-       lwz reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_L2)
-       lwz reg_CSP,THREAD_CONTROL_STACK_POINTER_OFFSET(reg_L2)
-       lwz reg_OCFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_L2)
+       stw reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+       lwz reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_THREAD)
+       lwz reg_CSP,THREAD_CONTROL_STACK_POINTER_OFFSET(reg_THREAD)
+       lwz reg_OCFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
 #else
        store(reg_ZERO,reg_NL4,CSYMBOL(foreign_function_call_active))
        load(reg_BSP,CSYMBOL(current_binding_stack_pointer))
@@ -411,12 +411,12 @@ lra:
 
 #if defined(LISP_FEATURE_SB_THREAD)
        /* Store lisp state */
-       stw reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_L2)
-       stw reg_CSP,THREAD_CONTROL_STACK_POINTER_OFFSET(reg_L2)
-       stw reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_L2)
+       stw reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_THREAD)
+       stw reg_CSP,THREAD_CONTROL_STACK_POINTER_OFFSET(reg_THREAD)
+       stw reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
 
        /* No longer in Lisp. */
-       stw reg_ALLOC,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_L2)
+       stw reg_ALLOC,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
 #else
        /* Store lisp state */
        clrrwi reg_NL1,reg_ALLOC,3
@@ -474,12 +474,12 @@ lra:
 
 #ifdef LISP_FEATURE_SB_THREAD
        /* Store Lisp state */
-       stw reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_L2)
-       stw reg_CSP,THREAD_CONTROL_STACK_POINTER_OFFSET(reg_L2)
-       stw reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_L2)
+       stw reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_THREAD)
+       stw reg_CSP,THREAD_CONTROL_STACK_POINTER_OFFSET(reg_THREAD)
+       stw reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
 
        /* No longer in Lisp. */
-       stw reg_CSP,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_L2)
+       stw reg_CSP,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
 #else
        /* Store Lisp state */
        clrrwi reg_NFP,reg_ALLOC,3
@@ -547,10 +547,10 @@ lra:
 
 #if defined(LISP_FEATURE_SB_THREAD)
        /* No longer in foreign function call. */
-       stw reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_L2)
+       stw reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
 
        /* The binding stack pointer isn't preserved by C. */
-       lwz reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_L2)
+       lwz reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_THREAD)
 #else
        /* No long in foreign function call. */
        store(reg_ZERO,reg_NL2,CSYMBOL(foreign_function_call_active))
index 9681253..1ba8fab 100644 (file)
 #define reg_A3        REG(27)   /* Last of (only) 4 arg regs */
 #define reg_L0        REG(28)   /* Tagged temp regs */
 #define reg_L1        REG(29)
+#ifdef LISP_FEATURE_SB_THREAD
+#define reg_THREAD    REG(30)   /* TLS block pointer */
+#else
 #define reg_L2        REG(30)   /* Last lisp temp reg */
+#endif
 #define reg_LIP       REG(31)   /* Lisp Interior Pointer, e.g., locative */
 
+#ifdef LISP_FEATURE_SB_THREAD
+#define REG30_NAME "THREAD"
+#else
+#define REG30_NAME "L2"
+#endif
+
 #define REGNAMES \
         "ZERO",         "NSP",          "???",          "NL0", \
         "NL1",          "NL2",          "NL3P",         "NL4", \
         "CSP",          "ALLOC",        "NULL",         "CODE", \
         "CNAME",        "LEXENV",       "OCFP",         "LRA", \
         "A0",           "A1",           "A2",           "A3", \
-        "L0",           "L1",           "L2",           "LIP"
+        "L0",           "L1",           REG30_NAME,     "LIP"
 
 #define BOXED_REGISTERS { \
     reg_FDEFN, reg_CODE, reg_CNAME, reg_LEXENV, reg_OCFP, reg_LRA, \
     reg_A0, reg_A1, reg_A2, reg_A3, \
-    reg_L0, reg_L1, reg_L2 \
+    reg_L0, reg_L1, REG(30) \
 }
index 0b23bc7..c7105bd 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.41.38"
+"1.0.41.39"