crti.S 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # Specialized code needed to support construction and destruction of
  2. # file-scope objects in C++ and Java code, and to support exception handling.
  3. # Copyright (C) 2012-2022 Free Software Foundation, Inc.
  4. # Contributed by KPIT Cummins Infosystems Limited.
  5. # This file is free software; you can redistribute it and/or modify it
  6. # under the terms of the GNU General Public License as published by the
  7. # Free Software Foundation; either version 3, or (at your option) any
  8. # later version.
  9. #
  10. # This file is distributed in the hope that it will be useful, but
  11. # WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. # General Public License for more details.
  14. #
  15. # Under Section 7 of GPL version 3, you are granted additional
  16. # permissions described in the GCC Runtime Library Exception, version
  17. # 3.1, as published by the Free Software Foundation.
  18. #
  19. # You should have received a copy of the GNU General Public License and
  20. # a copy of the GCC Runtime Library Exception along with this program;
  21. # see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  22. # <http://www.gnu.org/licenses/>.
  23. /* This file just supplies function prologues for the .init and .fini
  24. sections. It is linked in before crtbegin.o. */
  25. .ident "GNU C crti.o"
  26. .section .init
  27. .globl __init
  28. .type __init,@function
  29. __init:
  30. #if defined (__ID_SHARED_LIB__)
  31. push $2, r12, ra
  32. movd $__current_shared_library_r12_offset_, (r1,r0)
  33. loadd [r12]0(r1,r0), (r12)
  34. #else
  35. push ra
  36. #endif
  37. .section .fini
  38. .globl __fini
  39. .type __fini,@function
  40. __fini:
  41. #if defined (__ID_SHARED_LIB__)
  42. push $2, r12, ra
  43. movd $__current_shared_library_r12_offset_, (r1,r0)
  44. loadd [r12]0(r1,r0), (r12)
  45. #else
  46. push ra
  47. #endif