[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