123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- __asm__ (
- "#include \"defs.h\"\n"
- "\n"
- "/*@HEADER_ENDS*/\n"
- "\n"
- "/*@_init_PROLOG_BEGINS*/\n"
- " .section .init\n"
- " .align 4\n"
- " .globl _init\n"
- " .type _init,@function\n"
- "_init:\n"
- " stw %rp,-20(%sp)\n"
- " stwm %r4,64(%sp)\n"
- " stw %r19,-32(%sp)\n"
- " bl __pthread_initialize_minimal,%rp\n"
- " copy %r19,%r4 /* delay slot */\n"
- " copy %r4,%r19\n"
- "/*@_init_PROLOG_ENDS*/\n"
- "\n"
- "/*@_init_EPILOG_BEGINS*/\n"
- "/* Here is the tail end of _init. */\n"
- " .section .init\n"
- " ldw -84(%sp),%rp\n"
- " copy %r4,%r19\n"
- " bv %r0(%rp)\n"
- "_end_init:\n"
- " ldwm -64(%sp),%r4\n"
- "\n"
- "/* Our very own unwind info, because the assembler can't handle\n"
- " functions split into two or more pieces. */\n"
- " .section .PARISC.unwind,\"a\",@progbits\n"
- " .extern _init\n"
- " .word _init, _end_init\n"
- " .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08\n"
- "\n"
- "/*@_init_EPILOG_ENDS*/\n"
- "\n"
- "/*@_fini_PROLOG_BEGINS*/\n"
- " .section .fini\n"
- " .align 4\n"
- " .globl _fini\n"
- " .type _fini,@function\n"
- "_fini:\n"
- " stw %rp,-20(%sp)\n"
- " stwm %r4,64(%sp)\n"
- " stw %r19,-32(%sp)\n"
- " copy %r19,%r4\n"
- "/*@_fini_PROLOG_ENDS*/\n"
- "\n"
- "/*@_fini_EPILOG_BEGINS*/\n"
- " .section .fini\n"
- " ldw -84(%sp),%rp\n"
- " copy %r4,%r19\n"
- " bv %r0(%rp)\n"
- "_end_fini:\n"
- " ldwm -64(%sp),%r4\n"
- "\n"
- " .section .PARISC.unwind,\"a\",@progbits\n"
- " .extern _fini\n"
- " .word _fini, _end_fini\n"
- " .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08\n"
- "\n"
- "/*@_fini_EPILOG_ENDS*/\n"
- "\n"
- "/*@TRAILER_BEGINS*/\n"
- );
|