Use ABI neutral macrosa

Submitted by:	jmallet
This commit is contained in:
Warner Losh 2010-03-03 21:59:23 +00:00
parent 800b5ba27d
commit 75b2bd679b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=204674
2 changed files with 53 additions and 31 deletions

View File

@ -6,32 +6,45 @@ __FBSDID("$FreeBSD$");
.globl _init
.type _init,%function
_init:
#ifdef __ABICALLS__
.set noreorder
.cpload $25
.set reorder
subu sp, sp, 32
.cprestore 16
sw ra, 28(sp)
#else
subu sp, sp, 32
sw ra, 28(sp)
.set nreoorder
#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:
#ifdef __ABICALLS__
.set noreorder
.cpload $25
.set reorder
subu sp, sp, 32
.cprestore 16
sw ra, 28(sp)
#else
subu sp, sp, 32
sw ra, 28(sp)
.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

View File

@ -1,15 +1,24 @@
#include <machine/asm.h>
__FBSDID("$FreeBSD$");
.section .init,"ax",%progbits
lw ra, 28(sp)
.set noreorder
j ra
addu sp, sp, 32
.set reorder
.align 4
.set noreorder
#if defined(__ABICALLS__) && (defined(__mips_n32) || defined(__mips_n64))
REG_L gp, CALLFRAME_GP(sp)
#endif
REG_L ra, CALLFRAME_RA(sp)
jr ra
PTR_ADDU sp, sp, CALLFRAME_SIZ
.set reorder
.section .fini,"ax",%progbits
lw ra, 28(sp)
.set noreorder
j ra
addu sp, sp, 32
.set reorder
.align 4
.set noreorder
#if defined(__ABICALLS__) && (defined(__mips_n32) || defined(__mips_n64))
REG_L gp, CALLFRAME_GP(sp)
#endif
REG_L ra, CALLFRAME_RA(sp)
jr ra
PTR_ADDU sp, sp, CALLFRAME_SIZ
.set reorder