* Modern processors like it that way, and x86-64 was mostly there
already.
* Also fix a stupid typo in bug 419.
(ASSERT (EQUAL (BUG419 42) '(1 2 3 4 5 6))) => failure
(ASSERT (EQUAL (BUG419 42) '(1 2 3 4 5 6))) => failure
- Note: as of SBCL 1.0.26.29 this bug no longer affects user code, as
+ Note: as of SBCL 1.0.16.29 this bug no longer affects user code, as
SB-INT:TRULY-DYNAMIC-EXTENT needs to be used instead of
DYNAMIC-EXTENT for this to happen. Proper fix for this bug requires
(Nikodemus thinks) storing the relevant LAMBDA-VARs in a
SB-INT:TRULY-DYNAMIC-EXTENT needs to be used instead of
DYNAMIC-EXTENT for this to happen. Proper fix for this bug requires
(Nikodemus thinks) storing the relevant LAMBDA-VARs in a
.text
.globl GNAME(fpu_save)
TYPE(GNAME(fpu_save))
.text
.globl GNAME(fpu_save)
TYPE(GNAME(fpu_save))
+ .align align_16byte,0x90
GNAME(fpu_save):
fnsave (%rdi) # Save the NPX state. (resets NPX)
ret
GNAME(fpu_save):
fnsave (%rdi) # Save the NPX state. (resets NPX)
ret
.globl GNAME(fpu_restore)
TYPE(GNAME(fpu_restore))
.globl GNAME(fpu_restore)
TYPE(GNAME(fpu_restore))
+ .align align_16byte,0x90
GNAME(fpu_restore):
frstor (%rdi) # Restore the NPX state.
ret
GNAME(fpu_restore):
frstor (%rdi) # Restore the NPX state.
ret
multiple_value_return:
.globl GNAME(fun_end_breakpoint_trap)
multiple_value_return:
.globl GNAME(fun_end_breakpoint_trap)
+ .align align_16byte,0x90
GNAME(fun_end_breakpoint_trap):
TRAP
.byte trap_FunEndBreakpoint
GNAME(fun_end_breakpoint_trap):
TRAP
.byte trap_FunEndBreakpoint
* the undefined-function trampoline
*/
.text
* the undefined-function trampoline
*/
.text
- .align align_4byte,0x90
+ .align align_16byte,0x90
.globl GNAME(undefined_tramp)
TYPE(GNAME(undefined_tramp))
.byte 0, 0, 0, SIMPLE_FUN_HEADER_WIDETAG
.globl GNAME(undefined_tramp)
TYPE(GNAME(undefined_tramp))
.byte 0, 0, 0, SIMPLE_FUN_HEADER_WIDETAG
* the closure trampoline
*/
.text
* the closure trampoline
*/
.text
- .align align_4byte,0x90
+ .align align_16byte,0x90
.globl GNAME(closure_tramp)
TYPE(GNAME(closure_tramp))
.byte 0, 0, 0, SIMPLE_FUN_HEADER_WIDETAG
.globl GNAME(closure_tramp)
TYPE(GNAME(closure_tramp))
.byte 0, 0, 0, SIMPLE_FUN_HEADER_WIDETAG
SIZE(GNAME(closure_tramp))
.text
SIZE(GNAME(closure_tramp))
.text
- .align align_4byte,0x90
+ .align align_16byte,0x90
.globl GNAME(funcallable_instance_tramp)
TYPE(GNAME(funcallable_instance_tramp))
GNAME(funcallable_instance_tramp):
.globl GNAME(funcallable_instance_tramp)
TYPE(GNAME(funcallable_instance_tramp))
GNAME(funcallable_instance_tramp):
*/
.text
.globl GNAME(fun_end_breakpoint_guts)
*/
.text
.globl GNAME(fun_end_breakpoint_guts)
GNAME(fun_end_breakpoint_guts):
/* Multiple Value return */
jc multiple_value_return
GNAME(fun_end_breakpoint_guts):
/* Multiple Value return */
jc multiple_value_return
\f
.globl GNAME(do_pending_interrupt)
TYPE(GNAME(do_pending_interrupt))
\f
.globl GNAME(do_pending_interrupt)
TYPE(GNAME(do_pending_interrupt))
- .align align_4byte,0x90
+ .align align_16byte,0x90
GNAME(do_pending_interrupt):
TRAP
.byte trap_PendingInterrupt
GNAME(do_pending_interrupt):
TRAP
.byte trap_PendingInterrupt
#define DEFINE_ALLOC_TO_EAX(name,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
#define DEFINE_ALLOC_TO_EAX(name,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
- .align align_4byte,0x90; \
+ .align align_16byte,0x90; \
GNAME(name): \
pushl %ecx; /* Save ECX and EDX */ \
pushl %edx; \
GNAME(name): \
pushl %ecx; /* Save ECX and EDX */ \
pushl %edx; \
#define DEFINE_ALLOC_TO_ECX(name,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
#define DEFINE_ALLOC_TO_ECX(name,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
- .align align_4byte,0x90; \
+ .align align_16byte,0x90; \
GNAME(name): \
pushl %eax; /* Save EAX and EDX */ \
pushl %edx; \
GNAME(name): \
pushl %eax; /* Save EAX and EDX */ \
pushl %edx; \
#define DEFINE_ALLOC_TO_EDX(name,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
#define DEFINE_ALLOC_TO_EDX(name,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
- .align align_4byte,0x90; \
+ .align align_16byte,0x90; \
GNAME(name): \
pushl %eax; /* Save EAX and ECX */ \
pushl %ecx; \
GNAME(name): \
pushl %eax; /* Save EAX and ECX */ \
pushl %ecx; \
#define DEFINE_ALLOC_TO_REG(name,reg,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
#define DEFINE_ALLOC_TO_REG(name,reg,size) \
.globl GNAME(name); \
TYPE(GNAME(name)); \
- .align align_4byte,0x90; \
+ .align align_16byte,0x90; \
GNAME(name): \
pushl %eax; /* Save EAX, ECX, and EDX */ \
pushl %ecx; \
GNAME(name): \
pushl %eax; /* Save EAX, ECX, and EDX */ \
pushl %ecx; \
/* This routine handles an overflow with eax=crfp+size. So the
size=eax-crfp. */
/* This routine handles an overflow with eax=crfp+size. So the
size=eax-crfp. */
.globl GNAME(alloc_overflow_eax)
TYPE(GNAME(alloc_overflow_eax))
GNAME(alloc_overflow_eax):
.globl GNAME(alloc_overflow_eax)
TYPE(GNAME(alloc_overflow_eax))
GNAME(alloc_overflow_eax):
ret
SIZE(GNAME(alloc_overflow_eax))
ret
SIZE(GNAME(alloc_overflow_eax))
.globl GNAME(alloc_overflow_ecx)
TYPE(GNAME(alloc_overflow_ecx))
GNAME(alloc_overflow_ecx):
.globl GNAME(alloc_overflow_ecx)
TYPE(GNAME(alloc_overflow_ecx))
GNAME(alloc_overflow_ecx):
ret
SIZE(GNAME(alloc_overflow_ecx))
ret
SIZE(GNAME(alloc_overflow_ecx))
.globl GNAME(alloc_overflow_edx)
TYPE(GNAME(alloc_overflow_edx))
GNAME(alloc_overflow_edx):
.globl GNAME(alloc_overflow_edx)
TYPE(GNAME(alloc_overflow_edx))
GNAME(alloc_overflow_edx):
/* This routine handles an overflow with ebx=crfp+size. So the
size=ebx-crfp. */
/* This routine handles an overflow with ebx=crfp+size. So the
size=ebx-crfp. */
.globl GNAME(alloc_overflow_ebx)
TYPE(GNAME(alloc_overflow_ebx))
GNAME(alloc_overflow_ebx):
.globl GNAME(alloc_overflow_ebx)
TYPE(GNAME(alloc_overflow_ebx))
GNAME(alloc_overflow_ebx):
/* This routine handles an overflow with esi=crfp+size. So the
size=esi-crfp. */
/* This routine handles an overflow with esi=crfp+size. So the
size=esi-crfp. */
.globl GNAME(alloc_overflow_esi)
TYPE(GNAME(alloc_overflow_esi))
GNAME(alloc_overflow_esi):
.globl GNAME(alloc_overflow_esi)
TYPE(GNAME(alloc_overflow_esi))
GNAME(alloc_overflow_esi):
ret
SIZE(GNAME(alloc_overflow_esi))
ret
SIZE(GNAME(alloc_overflow_esi))
.globl GNAME(alloc_overflow_edi)
TYPE(GNAME(alloc_overflow_edi))
GNAME(alloc_overflow_edi):
.globl GNAME(alloc_overflow_edi)
TYPE(GNAME(alloc_overflow_edi))
GNAME(alloc_overflow_edi):
* and EIP from the exception context and use it to fake
* up a stack frame which will skip over the system SEH
* code. */
* and EIP from the exception context and use it to fake
* up a stack frame which will skip over the system SEH
* code. */
.globl GNAME(exception_handler_wrapper)
TYPE(GNAME(exception_handler_wrapper))
GNAME(exception_handler_wrapper):
.globl GNAME(exception_handler_wrapper)
TYPE(GNAME(exception_handler_wrapper))
GNAME(exception_handler_wrapper):
#endif
#ifdef LISP_FEATURE_DARWIN
#endif
#ifdef LISP_FEATURE_DARWIN
.globl GNAME(call_into_lisp_tramp)
TYPE(GNAME(call_into_lisp_tramp))
GNAME(call_into_lisp_tramp):
.globl GNAME(call_into_lisp_tramp)
TYPE(GNAME(call_into_lisp_tramp))
GNAME(call_into_lisp_tramp):
SIZE(call_into_lisp_tramp)
#endif
SIZE(call_into_lisp_tramp)
#endif
- .align align_4byte,0x90
+ .align align_16byte,0x90
.globl GNAME(post_signal_tramp)
TYPE(GNAME(post_signal_tramp))
GNAME(post_signal_tramp):
.globl GNAME(post_signal_tramp)
TYPE(GNAME(post_signal_tramp))
GNAME(post_signal_tramp):
\f
.globl GNAME(fast_bzero_pointer)
.data
\f
.globl GNAME(fast_bzero_pointer)
.data
GNAME(fast_bzero_pointer):
/* Variable containing a pointer to the bzero function to use.
* Initially points to a basic function. Change this variable
GNAME(fast_bzero_pointer):
/* Variable containing a pointer to the bzero function to use.
* Initially points to a basic function. Change this variable
.long GNAME(fast_bzero_base)
\f
.text
.long GNAME(fast_bzero_base)
\f
.text
- .align align_8byte,0x90
+ .align align_16byte,0x90
.globl GNAME(fast_bzero)
TYPE(GNAME(fast_bzero))
GNAME(fast_bzero):
.globl GNAME(fast_bzero)
TYPE(GNAME(fast_bzero))
GNAME(fast_bzero):
- .align align_8byte,0x90
+ .align align_16byte,0x90
.globl GNAME(fast_bzero_detect)
TYPE(GNAME(fast_bzero_detect))
GNAME(fast_bzero_detect):
.globl GNAME(fast_bzero_detect)
TYPE(GNAME(fast_bzero_detect))
GNAME(fast_bzero_detect):
- .align align_8byte,0x90
+ .align align_16byte,0x90
.globl GNAME(fast_bzero_sse)
TYPE(GNAME(fast_bzero_sse))
.globl GNAME(fast_bzero_sse)
TYPE(GNAME(fast_bzero_sse))
- .align align_8byte,0x90
+ .align align_16byte,0x90
.globl GNAME(fast_bzero_base)
TYPE(GNAME(fast_bzero_base))
.globl GNAME(fast_bzero_base)
TYPE(GNAME(fast_bzero_base))
;;; 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".)
;;; 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".)