freebsd-skq/lib/csu/mips/crti.S
John Baldwin e896328044 Don't include GNU object attributes when building with clang.
LLVM's MIPS assembler parser does not understand the GNU as
'.gnu_attribute' keyword.  This could be re-enabled if LLVM is updated
in the future.  The desired floating point ABI is already described in
the .MIPS.abiflags section.

Reviewed by:	emaste
Sponsored by:	DARPA / AFRL
2017-08-30 19:19:31 +00:00

54 lines
1.1 KiB
ArmAsm

#include <machine/asm.h>
__FBSDID("$FreeBSD$");
#ifndef __clang__
.gnu_attribute 4, 0
#endif
.section .init,"ax",%progbits
.align 4
.globl _init
.type _init,%function
_init:
.set noreorder
#if defined(__ABICALLS__) && (defined(__mips_o32) || defined(__mips_o64))
SETUP_GP
#endif
PTR_ADDU sp, sp, -CALLFRAME_SIZ
REG_S ra, CALLFRAME_RA(sp)
#if defined(__ABICALLS__)
#if defined(__mips_o32) || defined(__mips_o64)
SAVE_GP(CALLFRAME_GP)
#else
SETUP_GP64(CALLFRAME_GP, _init)
#endif
#else /* __ABICALLS__ */
#if defined(__mips_n32) || defined(__mips_n64)
REG_S gp, CALLFRAME_GP(sp)
#endif
#endif
.set reorder
.section .fini,"ax",%progbits
.align 4
.globl _fini
.type _fini,%function
_fini:
.set noreorder
#if defined(__ABICALLS__) && (defined(__mips_o32) || defined(__mips_o64))
SETUP_GP
#endif
PTR_ADDU sp, sp, -CALLFRAME_SIZ
REG_S ra, CALLFRAME_RA(sp)
#if defined(__ABICALLS__)
#if defined(__mips_o32) || defined(__mips_o64)
SAVE_GP(CALLFRAME_GP)
#else
SETUP_GP64(CALLFRAME_GP, _fini)
#endif
#else /* __ABICALLS__ */
#if defined(__mips_n32) || defined(__mips_n64)
REG_S gp, CALLFRAME_GP(sp)
#endif
#endif
.set reorder