The use of ORG asserts that we're at the correct location. */
/* ??? The clang assembler doesn't handle .org with symbolic expressions. */
#if defined(__clang__) || defined(__APPLE__)
-# define E(X) .align 8
+# define E(X) .balign 8
#else
-# define E(X) .align 8; .org 0b + X * 8
+# define E(X) .balign 8; .org 0b + X * 8
#endif
.text
- .align 16
+ .balign 16
.globl ffi_call_i386
FFI_HIDDEN(ffi_call_i386)
movl 16(%ebp), %ecx /* load result address */
jmp *%ebx
- .align 8
+ .balign 8
0:
E(X86_RET_FLOAT)
fstps (%ecx)
#endif /* __PIC__ */
#define FFI_GO_CLOSURE(suffix, chain, t1, t2) \
- .align 16; \
+ .balign 16; \
.globl C(C1(ffi_go_closure_,suffix)); \
FFI_HIDDEN(C(C1(ffi_go_closure_,suffix))); \
C(C1(ffi_go_closure_,suffix)): \
/* The closure entry points are reached from the ffi_closure trampoline.
On entry, %eax contains the address of the ffi_closure. */
- .align 16
+ .balign 16
.globl C(ffi_closure_i386)
FFI_HIDDEN(C(ffi_closure_i386))
FFI_CLOSURE_CALL_INNER
FFI_CLOSURE_MASK_AND_JUMP
- .align 8
+ .balign 8
0:
E(X86_RET_FLOAT)
flds (%esp)
/* For REGISTER, we have no available parameter registers, and so we
enter here having pushed the closure onto the stack. */
- .align 16
+ .balign 16
.globl C(ffi_closure_REGISTER)
FFI_HIDDEN(C(ffi_closure_REGISTER))
C(ffi_closure_REGISTER):
the stack following the closure. The amount needing to be popped
is returned to us from ffi_closure_inner. */
- .align 16
+ .balign 16
.globl C(ffi_closure_STDCALL)
FFI_HIDDEN(C(ffi_closure_STDCALL))
C(ffi_closure_STDCALL):
FFI_CLOSURE_MASK_AND_JUMP
- .align 8
+ .balign 8
0:
E(X86_RET_FLOAT)
flds (%esp)
#define raw_closure_S_FS (16+16+12)
- .align 16
+ .balign 16
.globl C(ffi_closure_raw_SYSV)
FFI_HIDDEN(C(ffi_closure_raw_SYSV))
C(ffi_closure_raw_SYSV):
cfi_restore(%ebx)
jmp *%eax
- .align 8
+ .balign 8
0:
E(X86_RET_FLOAT)
flds 16(%esp)
#undef raw_closure_S_FS
#define raw_closure_T_FS (16+16+8)
- .align 16
+ .balign 16
.globl C(ffi_closure_raw_THISCALL)
FFI_HIDDEN(C(ffi_closure_raw_THISCALL))
C(ffi_closure_raw_THISCALL):
cfi_restore(%ebx)
jmp *%eax
- .align 8
+ .balign 8
0:
E(X86_RET_FLOAT)
flds 16(%esp)
The use of ORG asserts that we're at the correct location. */
/* ??? The clang assembler doesn't handle .org with symbolic expressions. */
.macro E index
- .align 8
+ .balign 8
#if !defined(__clang__) && !defined(__APPLE__)
.org 0b + \index * 8, 0x90
#endif
for this function. This has been allocated by ffi_call. We also
deallocate some of the stack that has been alloca'd. */
- .align 8
+ .balign 8
.globl C(ffi_call_unix64)
FFI_HIDDEN(C(ffi_call_unix64))
leaq -20(%rsp), %rsi
jmp *%r10
- .align 8
+ .balign 8
0:
E UNIX64_RET_VOID
ret
shrl $UNIX64_SIZE_SHIFT, %ecx
rep movsb
ret
- .align 8
+ .balign 8
3: movq %xmm0, (%rsi)
shrl $UNIX64_SIZE_SHIFT, %ecx
rep movsb
/* Many times we can avoid loading any SSE registers at all.
It's not worth an indirect jump to load the exact set of
SSE registers needed; zero or all is a good compromise. */
- .align 2
+ .balign 2
cfi_restore_state
.Lload_sse:
movdqa 0x30(%r10), %xmm0
/* The location of rvalue within the red zone after deallocating the frame. */
#define ffi_closure_RED_RVALUE (ffi_closure_OFS_RVALUE - ffi_closure_FS)
- .align 2
+ .balign 2
.globl C(ffi_closure_unix64_sse)
FFI_HIDDEN(C(ffi_closure_unix64_sse))
cfi_endproc
ENDF(C(ffi_closure_unix64_sse))
- .align 2
+ .balign 2
.globl C(ffi_closure_unix64)
FFI_HIDDEN(C(ffi_closure_unix64))
leaq ffi_closure_RED_RVALUE(%rsp), %rsi
jmp *%r10
- .align 8
+ .balign 8
0:
E UNIX64_RET_VOID
ret
movq 8(%rsi), %rdx
2: movq (%rsi), %rax
ret
- .align 8
+ .balign 8
3: movq (%rsi), %xmm0
ret
cfi_endproc
ENDF(C(ffi_closure_unix64))
- .align 2
+ .balign 2
.globl C(ffi_go_closure_unix64_sse)
FFI_HIDDEN(C(ffi_go_closure_unix64_sse))
cfi_endproc
ENDF(C(ffi_go_closure_unix64_sse))
- .align 2
+ .balign 2
.globl C(ffi_go_closure_unix64)
FFI_HIDDEN(C(ffi_go_closure_unix64))