prt0.as 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. .file "crt0.c"
  2. gcc2_compiled.:
  3. .globl __progname
  4. .section ".data" # .rodata
  5. .align 2
  6. .LC0:
  7. .string ""
  8. .section ".sdata","aw"
  9. .align 2
  10. .type __progname,@object
  11. .size __progname,4
  12. __progname:
  13. .LCP0:
  14. .long (.LC0)@fixup
  15. .section ".fixup","aw"
  16. .align 2
  17. .long .LCP0
  18. .previous
  19. .globl __ps_strings
  20. .align 2
  21. .type __ps_strings,@object
  22. .size __ps_strings,4
  23. __ps_strings:
  24. .long 0
  25. .weak _DYNAMIC
  26. .weak _SDA_BASE_
  27. .weak _SDA2_BASE_
  28. .section ".got2","aw"
  29. .LCTOC1 = .+32768
  30. .LC1 = .-.LCTOC1
  31. .long __progname
  32. .LC2 = .-.LCTOC1
  33. .long environ
  34. .LC3 = .-.LCTOC1
  35. .long __ps_strings
  36. .LC4 = .-.LCTOC1
  37. .long _DYNAMIC
  38. .LC5 = .-.LCTOC1
  39. .section ".text"
  40. .align 2
  41. .globl _start
  42. .LCL0:
  43. .long .LCTOC1-.LCF0
  44. .type _start,@function
  45. _start:
  46. stwu 1,-48(1)
  47. mflr 0
  48. stw 24,16(1)
  49. stw 25,20(1)
  50. stw 26,24(1)
  51. stw 27,28(1)
  52. stw 28,32(1)
  53. stw 29,36(1)
  54. stw 30,40(1)
  55. stw 31,44(1)
  56. stw 0,52(1)
  57. bl .LCF0
  58. .LCF0:
  59. mflr 30
  60. lwz 0,(.LCL0-.LCF0)(30)
  61. add 30,0,30
  62. mr 27,4
  63. mr 24,3
  64. mr 28,5
  65. mr 25,6
  66. mr 26,7
  67. mr 29,8
  68. # lis %r13,_SDA_BASE_@ha;addi %r13,%r13,_SDA_BASE_@l;lis %r2,_SDA2_BASE_@ha;addi %r2,%r2,_SDA2_BASE_@l
  69. lwz 31,0(27)
  70. cmpwi 0,31,0
  71. bc 12,2,.L7
  72. mr 3,31
  73. li 4,47
  74. bl _strrchr@local
  75. lwz 9,.LC1(30)
  76. cmpwi 0,3,0
  77. stw 3,0(9)
  78. bc 4,2,.L8
  79. stw 31,0(9)
  80. b .L12
  81. .L8:
  82. addi 0,3,1
  83. stw 0,0(9)
  84. .L12:
  85. .L7:
  86. lwz 31,.LC2(30)
  87. cmpwi 0,29,0
  88. stw 28,0(31)
  89. bc 12,2,.L10
  90. lwz 9,.LC3(30)
  91. stw 29,0(9)
  92. .L10:
  93. lwz 0,.LC4(30)
  94. cmpwi 0,0,0
  95. bc 12,2,.L11
  96. mr 3,26
  97. mr 4,25
  98. .L11:
  99. lwz 3,.LC5(30)
  100. lwz 5,0(31)
  101. mr 3,24
  102. mr 4,27
  103. lis 11,U_SYSTEM_ARGC@ha
  104. stw 3,U_SYSTEM_ARGC@l(11);
  105. lis 11,U_SYSTEM_ARGV@ha
  106. stw 4,U_SYSTEM_ARGV@l(11);
  107. lis 11,U_SYSTEM_ENVP@ha
  108. stw 5,U_SYSTEM_ENVP@l(11);
  109. mtlr 0
  110. bl PASCALMAIN
  111. .globl _haltproc
  112. .type _haltproc,@function
  113. _haltproc:
  114. li 0,1 /* exit call */
  115. lis 3,U_SYSTEM_EXITCODE@h
  116. stw 3,U_SYSTEM_EXITCODE@l(3)
  117. sc
  118. b _haltproc
  119. .Lfe1:
  120. .size _start,.Lfe1-_start
  121. .section .ident ; .asciz "$NetBSD: crt0.c,v 1.22 2002/05/09 20:32:59 matt Exp $" ; .text
  122. .align 2
  123. .type _strrchr,@function
  124. _strrchr:
  125. rlwinm 4,4,0,0xff
  126. li 10,0
  127. .L14:
  128. lbz 0,0(3)
  129. xor 9,0,4
  130. neg 9,9
  131. srawi 9,9,31
  132. andc 11,3,9
  133. cmpwi 0,0,0
  134. and 9,10,9
  135. or 10,9,11
  136. addi 3,3,1
  137. bc 4,2,.L14
  138. mr 3,10
  139. blr
  140. .Lfe2:
  141. .size _strrchr,.Lfe2-_strrchr
  142. .section ".data" # .rodata
  143. .align 2
  144. .comm environ,4,4
  145. .comm __mainprog_obj,4,4
  146. .ident "GCC: (GNU) 2.95.3 20010315 (release) (NetBSD nb3)"
  147. .section ".data"
  148. .globl __data_start
  149. __data_start:
  150. data_start:
  151. .globl ___fpc_brk_addr /* heap management */
  152. .type ___fpc_brk_addr,@object
  153. .size ___fpc_brk_addr,4
  154. ___fpc_brk_addr:
  155. .long 0