From: Alastair Bridgewater Date: Sun, 8 Aug 2010 01:13:50 +0000 (+0000) Subject: 1.0.41.39: ppc: Rename reg_L2 to reg_THREAD on threaded builds. X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=0af4499330edd8085a500113d791bdcc9cff46ad;p=sbcl.git 1.0.41.39: ppc: Rename reg_L2 to reg_THREAD on threaded builds. * This is largely to make the disassembly less confusing when it refers to TLS slots and other per-thread data. --- diff --git a/src/compiler/ppc/vm.lisp b/src/compiler/ppc/vm.lisp index 058f252..e655d12 100644 --- a/src/compiler/ppc/vm.lisp +++ b/src/compiler/ppc/vm.lisp @@ -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 @@ -330,7 +330,7 @@ #!+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) diff --git a/src/runtime/ppc-assem.S b/src/runtime/ppc-assem.S index 72838ca..5ecd384 100644 --- a/src/runtime/ppc-assem.S +++ b/src/runtime/ppc-assem.S @@ -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)) diff --git a/src/runtime/ppc-lispregs.h b/src/runtime/ppc-lispregs.h index 9681253..1ba8fab 100644 --- a/src/runtime/ppc-lispregs.h +++ b/src/runtime/ppc-lispregs.h @@ -48,9 +48,19 @@ #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", \ @@ -59,10 +69,10 @@ "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) \ } diff --git a/version.lisp-expr b/version.lisp-expr index 0b23bc7..c7105bd 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"