github.com/afumu/libc@v0.0.6/musl/arch/sh/crt_arch.h (about)

     1  #ifdef __SH_FDPIC__
     2  
     3  __asm__(
     4  ".text \n"
     5  ".global " START " \n"
     6  START ": \n"
     7  "	tst r8, r8 \n"
     8  "	bf 1f \n"
     9  "	mov #68, r3 \n"
    10  "	add r3, r3 \n"
    11  "	mov #8, r4 \n"
    12  "	swap.w r4, r4 \n"
    13  "	trapa #31 \n"
    14  "	nop \n"
    15  "	nop \n"
    16  "	nop \n"
    17  "	nop \n"
    18  "1:	nop \n"
    19  #ifndef SHARED
    20  "	mov r8, r4 \n"
    21  "	mova 1f, r0 \n"
    22  "	mov.l 1f, r5 \n"
    23  "	mov.l 1f+4, r6 \n"
    24  "	add r0, r5 \n"
    25  "	mov.l 4f, r1 \n"
    26  "5:	bsrf r1 \n"
    27  "	 add r0, r6 \n"
    28  "	mov r0, r12 \n"
    29  #endif
    30  "	mov r10, r5 \n"
    31  "	mov r15, r4 \n"
    32  "	mov.l r9, @-r15 \n"
    33  "	mov.l r8, @-r15 \n"
    34  "	mov #-16, r0 \n"
    35  "	mov.l 2f, r1 \n"
    36  "3:	bsrf r1 \n"
    37  "	 and r0, r15 \n"
    38  ".align 2 \n"
    39  "1:	.long __ROFIXUP_LIST__@PCREL \n"
    40  "	.long __ROFIXUP_END__@PCREL + 4 \n"
    41  "2:	.long " START "_c@PCREL - (3b+4-.) \n"
    42  #ifndef SHARED
    43  "4:	.long __fdpic_fixup@PCREL - (5b+4-.) \n"
    44  #endif
    45  );
    46  
    47  #ifndef SHARED
    48  #include "fdpic_crt.h"
    49  #endif
    50  
    51  #else
    52  
    53  __asm__(
    54  ".text \n"
    55  ".global " START " \n"
    56  START ": \n"
    57  "	mova 1f, r0 \n"
    58  "	mov.l 1f, r5 \n"
    59  "	add r0, r5 \n"
    60  "	mov r15, r4 \n"
    61  "	mov #-16, r0 \n"
    62  "	mov.l 2f, r1 \n"
    63  "3:	bsrf r1 \n"
    64  "	 and r0, r15 \n"
    65  ".align 2 \n"
    66  ".weak _DYNAMIC \n"
    67  ".hidden _DYNAMIC \n"
    68  "1:	.long _DYNAMIC-. \n"
    69  "2:	.long " START "_c@PCREL - (3b+4-.) \n"
    70  );
    71  
    72  #endif
    73  
    74  /* used by gcc for switching the FPU between single and double precision */
    75  #ifdef SHARED
    76  __attribute__((__visibility__("hidden")))
    77  #endif
    78  const unsigned long __fpscr_values[2] = { 0, 0x80000 };