[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sbcl-commits
Subject:    [Sbcl-commits] master: Avoid use of 'boolean' in objdef
From:       snuglas via Sbcl-commits <sbcl-commits () lists ! sourceforge ! net>
Date:       2023-06-29 14:45:37
Message-ID: 1688049937.895375.17623 () sfp-scm-6 ! v30 ! lw ! sourceforge ! com
[Download RAW message or body]

The branch "master" has been updated in SBCL:
       via  975e4451bb723c6a648c4867915da4016b266de1 (commit)
      from  f075d92d218c5c45cbb7fc04a2bd34092e0bcb9a (commit)

- Log -----------------------------------------------------------------
commit 975e4451bb723c6a648c4867915da4016b266de1
Author: Douglas Katzman <dougk@google.com>
Date:   Thu Jun 29 10:45:29 2023 -0400

    Avoid use of 'boolean' in objdef
    
    It unnecessarily complicates the task of making each genesis
    header completely self-contained
---
 src/assembly/riscv/assem-rtns.lisp | 4 ++--
 src/assembly/riscv/tramps.lisp     | 2 +-
 src/compiler/generic/objdef.lisp   | 7 +++++--
 src/runtime/globals.h              | 6 ++----
 src/runtime/ppc-assem.S            | 8 ++++----
 src/runtime/ppc64-assem.S          | 8 ++++----
 src/runtime/thread.c               | 4 ++--
 7 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/src/assembly/riscv/assem-rtns.lisp b/src/assembly/riscv/assem-rtns.lisp
index 721bddc9c..2119c4904 100644
--- a/src/assembly/riscv/assem-rtns.lisp
+++ b/src/assembly/riscv/assem-rtns.lisp
@@ -230,7 +230,7 @@
   (progn
     (loadw stack-pointer thread-base-tn thread-control-stack-pointer-slot)
     (loadw frame-pointer thread-base-tn thread-control-frame-pointer-slot)
-    (storew zero-tn thread-base-tn thread-foreign-function-call-active-slot))
+    (storew zero-tn thread-base-tn thread-ffcall-active-p-slot))
   #-sb-thread
   (progn
     (load-foreign-symbol-value stack-pointer "current_control_stack_pointer" temp)
@@ -244,7 +244,7 @@
   (progn
     (storew stack-pointer thread-base-tn thread-control-stack-pointer-slot)
     (storew frame-pointer thread-base-tn thread-control-frame-pointer-slot)
-    (storew null-tn thread-base-tn thread-foreign-function-call-active-slot))
+    (storew null-tn thread-base-tn thread-ffcall-active-p-slot))
   #-sb-thread
   (progn
     (store-foreign-symbol-value stack-pointer "current_control_stack_pointer" temp)
diff --git a/src/assembly/riscv/tramps.lisp b/src/assembly/riscv/tramps.lisp
index 50da6e7c6..f0e8ff147 100644
--- a/src/assembly/riscv/tramps.lisp
+++ b/src/assembly/riscv/tramps.lisp
@@ -95,7 +95,7 @@
        #-sb-thread
        (store-foreign-symbol-value zero-tn "foreign_function_call_active" temp)
        #+sb-thread
-       (storew zero-tn thread-base-tn thread-foreign-function-call-active-slot)
+       (storew zero-tn thread-base-tn thread-ffcall-active-p-slot)
        (pop-from-stack nl-registers nsp-tn nl-start)
        (inst addi nsp-tn nsp-tn number-framesize)
        (inst jalr zero-tn lip-tn 0))))
diff --git a/src/compiler/generic/objdef.lisp b/src/compiler/generic/objdef.lisp
index e3f1a64db..e8d029636 100644
--- a/src/compiler/generic/objdef.lisp
+++ b/src/compiler/generic/objdef.lisp
@@ -600,8 +600,11 @@ during backtrace.
   ;; handling, we need to know if the machine context is in Lisp code
   ;; or not.  On non-threaded targets, this is a global variable in
   ;; the runtime, but it's clearly a per-thread value.
-  #+(and sb-thread (not arm64))
-  (foreign-function-call-active :c-type "boolean")
+  ;; This is a true/false flag. Since there are about 47 different competing
+  ;; definitions of the C type "boolean", just use "lispobj" for its known size.
+  ;; The name is visually distinct from the global flag of similar purpose
+  ;; so that 'grep' can find the one you want more easily.
+  #+(and sb-thread (not arm64)) (ffcall-active-p)
   ;; Same as above for the location of the current control stack frame.
   #+(and sb-thread (not (or x86 x86-64)))
   (control-frame-pointer :c-type "lispobj *")
diff --git a/src/runtime/globals.h b/src/runtime/globals.h
index d307f5e11..b632c2032 100644
--- a/src/runtime/globals.h
+++ b/src/runtime/globals.h
@@ -29,11 +29,9 @@ extern sword_t next_free_page;
 #ifdef LISP_FEATURE_SB_THREAD
 
 #ifdef LISP_FEATURE_ARM64
-#define foreign_function_call_active_p(thread) \
-    (thread->control_stack_pointer)
+#define foreign_function_call_active_p(thread) (thread->control_stack_pointer)
 #else
-#define foreign_function_call_active_p(thread) \
-    (thread->foreign_function_call_active)
+#define foreign_function_call_active_p(thread) (thread->ffcall_active_p)
 #endif
 
 #else
diff --git a/src/runtime/ppc-assem.S b/src/runtime/ppc-assem.S
index 342952dc0..1aea46f5f 100644
--- a/src/runtime/ppc-assem.S
+++ b/src/runtime/ppc-assem.S
@@ -234,7 +234,7 @@ x:
 
 	BEGIN_PSEUDO_ATOMIC
 #if defined(LISP_FEATURE_SB_THREAD)
-	stw reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	stw reg_ZERO,THREAD_FFCALL_ACTIVE_P_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)
@@ -291,7 +291,7 @@ lra:
 	stw reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
 
 	/* No longer in Lisp. */
-	stw reg_THREAD,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	stw reg_THREAD,THREAD_FFCALL_ACTIVE_P_OFFSET(reg_THREAD)
 #else
 	/* Store lisp state */
 	store(reg_BSP,reg_NL2,CSYMBOL(current_binding_stack_pointer))
@@ -347,7 +347,7 @@ lra:
 	stw reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
 
 	/* No longer in Lisp. */
-	stw reg_CSP,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	stw reg_CSP,THREAD_FFCALL_ACTIVE_P_OFFSET(reg_THREAD)
 #else
 	/* Store Lisp state */
 	/* load(reg_CFUNC,current_thread) */
@@ -397,7 +397,7 @@ lra:
 
 #if defined(LISP_FEATURE_SB_THREAD)
 	/* No longer in foreign function call. */
-	stw reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	stw reg_ZERO,THREAD_FFCALL_ACTIVE_P_OFFSET(reg_THREAD)
 
 	/* The binding stack pointer isn't preserved by C. */
 	lwz reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_THREAD)
diff --git a/src/runtime/ppc64-assem.S b/src/runtime/ppc64-assem.S
index 3a068ae8f..c5546e62c 100644
--- a/src/runtime/ppc64-assem.S
+++ b/src/runtime/ppc64-assem.S
@@ -156,7 +156,7 @@ Low Address
 
 	/* Turn on pseudo-atomic */
 	BEGIN_PSEUDO_ATOMIC
-	std reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	std reg_ZERO,THREAD_FFCALL_ACTIVE_P_OFFSET(reg_THREAD)
 	ld reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_THREAD)
 	ld reg_CSP,THREAD_CONTROL_STACK_POINTER_OFFSET(reg_THREAD)
 	ld reg_OCFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
@@ -215,7 +215,7 @@ lra:
 	std reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
 
 	/* No longer in Lisp. */
-	std reg_THREAD,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	std reg_THREAD,THREAD_FFCALL_ACTIVE_P_OFFSET(reg_THREAD)
 
 	/* Check for interrupt */
 	END_PSEUDO_ATOMIC
@@ -267,7 +267,7 @@ lra:
 	std reg_CFP,THREAD_CONTROL_FRAME_POINTER_OFFSET(reg_THREAD)
 
 	/* No longer in Lisp. */
-	std reg_CSP,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	std reg_CSP,THREAD_FFCALL_ACTIVE_P_OFFSET(reg_THREAD)
 	/* Disable pseudo-atomic; check pending interrupt */
 	END_PSEUDO_ATOMIC
 
@@ -328,7 +328,7 @@ lra:
 	BEGIN_PSEUDO_ATOMIC
 
 	/* No longer in foreign function call. */
-	std reg_ZERO,THREAD_FOREIGN_FUNCTION_CALL_ACTIVE_OFFSET(reg_THREAD)
+	std reg_ZERO,THREAD_FFCALL_ACTIVE_P_OFFSET(reg_THREAD)
 
 	/* The binding stack pointer isn't preserved by C. */
 	ld reg_BSP,THREAD_BINDING_STACK_POINTER_OFFSET(reg_THREAD)
diff --git a/src/runtime/thread.c b/src/runtime/thread.c
index 590d544b9..63246906b 100644
--- a/src/runtime/thread.c
+++ b/src/runtime/thread.c
@@ -1035,9 +1035,9 @@ alloc_thread_struct(void* spaces) {
      * single-threaded foreign_function_call_active, KLUDGE and
      * all. */
 #if defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)
-    th->foreign_function_call_active = 0;
+    th->ffcall_active_p = 0;
 #elif !defined(LISP_FEATURE_ARM64) // uses control_stack_start
-    th->foreign_function_call_active = 1;
+    th->ffcall_active_p = 1;
 #endif
 #endif
 

-----------------------------------------------------------------------


hooks/post-receive
-- 
SBCL


_______________________________________________
Sbcl-commits mailing list
Sbcl-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-commits
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic