projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.15.35: fix bitrotted GC sanity checks
[sbcl.git]
/
src
/
runtime
/
x86-64-assem.S
diff --git
a/src/runtime/x86-64-assem.S
b/src/runtime/x86-64-assem.S
index
8cfd582
..
02cbf26
100644
(file)
--- a/
src/runtime/x86-64-assem.S
+++ b/
src/runtime/x86-64-assem.S
@@
-105,9
+105,6
@@
.globl GNAME(call_into_c)
TYPE(GNAME(call_into_c))
GNAME(call_into_c):
.globl GNAME(call_into_c)
TYPE(GNAME(call_into_c))
GNAME(call_into_c):
- /* ABI requires that the direction flag be clear on function
- * entry and exit. */
- cld
push %rbp # Save old frame pointer.
mov %rsp,%rbp # Establish new frame.
push %rbp # Save old frame pointer.
mov %rsp,%rbp # Establish new frame.
@@
-182,6
+179,10
@@
Lstack:
push %rsi #
push %rdx #
#ifdef LISP_FEATURE_SB_THREAD
push %rsi #
push %rdx #
#ifdef LISP_FEATURE_SB_THREAD
+#ifdef LISP_FEATURE_GCC_TLS
+ movq %fs:0, %rax
+ movq GNAME(current_thread)@TPOFF(%rax), %r12
+#else
#ifdef LISP_FEATURE_DARWIN
mov GSYM(GNAME(specials)),%rdi
#else
#ifdef LISP_FEATURE_DARWIN
mov GSYM(GNAME(specials)),%rdi
#else
@@
-190,6
+191,7
@@
Lstack:
call GNAME(pthread_getspecific)
mov %rax,%r12
#endif
call GNAME(pthread_getspecific)
mov %rax,%r12
#endif
+#endif
pop %rcx # num args
pop %rbx # arg vector
pop %rax # function ptr/lexenv
pop %rcx # num args
pop %rbx # arg vector
pop %rax # function ptr/lexenv
@@
-236,10
+238,6
@@
LsingleValue:
pop %r12
pop %rbx
pop %r12
pop %rbx
- /* ABI requires that the direction flag be clear on function
- * entry and exit. */
- cld
-
/* FIXME Restore the NPX state. */
/* return value is already in rax where lisp expects it */
/* FIXME Restore the NPX state. */
/* return value is already in rax where lisp expects it */