cprt0.as 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  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. .long _fini
  40. .section ".text"
  41. .align 2
  42. .globl _start
  43. .LCL0:
  44. .long .LCTOC1-.LCF0
  45. .type _start,@function
  46. _start:
  47. stwu 1,-48(1)
  48. mflr 0
  49. stw 24,16(1)
  50. stw 25,20(1)
  51. stw 26,24(1)
  52. stw 27,28(1)
  53. stw 28,32(1)
  54. stw 29,36(1)
  55. stw 30,40(1)
  56. stw 31,44(1)
  57. stw 0,52(1)
  58. bl .LCF0
  59. .LCF0:
  60. mflr 30
  61. lwz 0,(.LCL0-.LCF0)(30)
  62. add 30,0,30
  63. mr 27,4
  64. mr 24,3
  65. mr 28,5
  66. mr 25,6
  67. mr 26,7
  68. mr 29,8
  69. lis %r13,_SDA_BASE_@ha;addi %r13,%r13,_SDA_BASE_@l;lis %r2,_SDA2_BASE_@ha;addi %r2,%r2,_SDA2_BASE_@l
  70. lwz 31,0(27)
  71. cmpwi 0,31,0
  72. bc 12,2,.L7
  73. mr 3,31
  74. li 4,47
  75. bl _strrchr@local
  76. lwz 9,.LC1(30)
  77. cmpwi 0,3,0
  78. stw 3,0(9)
  79. bc 4,2,.L8
  80. stw 31,0(9)
  81. b .L12
  82. .L8:
  83. addi 0,3,1
  84. stw 0,0(9)
  85. .L12:
  86. .L7:
  87. lwz 31,.LC2(30)
  88. cmpwi 0,29,0
  89. stw 28,0(31)
  90. bc 12,2,.L10
  91. lwz 9,.LC3(30)
  92. stw 29,0(9)
  93. .L10:
  94. lwz 0,.LC4(30)
  95. cmpwi 0,0,0
  96. bc 12,2,.L11
  97. mr 3,26
  98. mr 4,25
  99. bl _rtld_setup@plt
  100. .L11:
  101. lwz 3,.LC5(30)
  102. bl atexit@plt
  103. bl _init@plt
  104. lwz 5,0(31)
  105. mr 3,24
  106. mr 4,27
  107. lis 11,operatingsystem_parameter_argc@ha
  108. stw 3,operatingsystem_parameter_argc@l(11);
  109. lis 11,operatingsystem_parameter_argv@ha
  110. stw 4,operatingsystem_parameter_argv@l(11);
  111. lis 11,operatingsystem_parameter_envp@ha
  112. stw 5,operatingsystem_parameter_envp@l(11);
  113. mtlr 0
  114. bl main@plt
  115. _haltproc:
  116. lis 3,operatingsystem_result@h
  117. stw 3,operatingsystem_result@l(3)
  118. bl exit@plt
  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. .LC6:
  145. .string "Corrupt Obj_Entry pointer in GOT\n"
  146. .align 2
  147. .LC8:
  148. .string "Dynamic linker version mismatch\n"
  149. .section ".got2","aw"
  150. .LC7 = .-.LCTOC1
  151. .long .LC6
  152. .LC9 = .-.LCTOC1
  153. .long .LC8
  154. .section ".text"
  155. .align 2
  156. .globl _rtld_setup
  157. .LCL1:
  158. .long .LCTOC1-.LCF1
  159. .type _rtld_setup,@function
  160. _rtld_setup:
  161. stwu 1,-32(1)
  162. mflr 0
  163. stw 29,20(1)
  164. stw 30,24(1)
  165. stw 31,28(1)
  166. stw 0,36(1)
  167. bl .LCF1
  168. .LCF1:
  169. mflr 30
  170. lwz 0,(.LCL1-.LCF1)(30)
  171. add 30,0,30
  172. mr. 31,4
  173. mr 29,3
  174. bc 12,2,.L22
  175. lwz 9,0(31)
  176. lis 0,0xd550
  177. ori 0,0,47226
  178. cmpw 0,9,0
  179. bc 12,2,.L21
  180. .L22:
  181. lwz 6,.LC7(30)
  182. li 3,0
  183. li 4,4
  184. li 5,2
  185. li 7,33
  186. crxor 6,6,6
  187. bl __syscall@plt
  188. li 3,0
  189. li 4,1
  190. li 5,1
  191. crxor 6,6,6
  192. bl __syscall@plt
  193. .L21:
  194. lwz 0,4(31)
  195. cmpwi 0,0,1
  196. bc 12,2,.L27
  197. lwz 6,.LC9(30)
  198. li 3,0
  199. li 4,4
  200. li 5,2
  201. li 7,32
  202. crxor 6,6,6
  203. bl __syscall@plt
  204. li 3,0
  205. li 4,1
  206. li 5,1
  207. crxor 6,6,6
  208. bl __syscall@plt
  209. .L27:
  210. mr 3,29
  211. bl atexit@plt
  212. lwz 0,36(1)
  213. mtlr 0
  214. lwz 29,20(1)
  215. lwz 30,24(1)
  216. lwz 31,28(1)
  217. la 1,32(1)
  218. blr
  219. .Lfe3:
  220. .size _rtld_setup,.Lfe3-_rtld_setup
  221. .weak dlopen ; dlopen = _dlopen
  222. .weak dlclose ; dlclose = _dlclose
  223. .weak dlsym ; dlsym = _dlsym
  224. .weak dlerror ; dlerror = _dlerror
  225. .weak dladdr ; dladdr = _dladdr
  226. .section ".got2","aw"
  227. .LC10 = .-.LCTOC1
  228. .long __mainprog_obj
  229. .section ".text"
  230. .align 2
  231. .globl _dlopen
  232. .LCL2:
  233. .long .LCTOC1-.LCF2
  234. .type _dlopen,@function
  235. _dlopen:
  236. stwu 1,-16(1)
  237. mflr 0
  238. stw 30,8(1)
  239. stw 31,12(1)
  240. stw 0,20(1)
  241. bl .LCF2
  242. .LCF2:
  243. mflr 30
  244. lwz 0,(.LCL2-.LCF2)(30)
  245. add 30,0,30
  246. lwz 9,.LC10(30)
  247. lwz 9,0(9)
  248. cmpwi 0,9,0
  249. bc 12,2,.L33
  250. lwz 0,140(9)
  251. mtlr 0
  252. blrl
  253. b .L34
  254. .L33:
  255. li 3,0
  256. .L34:
  257. lwz 0,20(1)
  258. mtlr 0
  259. lwz 30,8(1)
  260. lwz 31,12(1)
  261. la 1,16(1)
  262. blr
  263. .Lfe4:
  264. .size _dlopen,.Lfe4-_dlopen
  265. .section ".got2","aw"
  266. .LC11 = .-.LCTOC1
  267. .long __mainprog_obj
  268. .section ".text"
  269. .align 2
  270. .globl _dlclose
  271. .LCL3:
  272. .long .LCTOC1-.LCF3
  273. .type _dlclose,@function
  274. _dlclose:
  275. stwu 1,-16(1)
  276. mflr 0
  277. stw 30,8(1)
  278. stw 31,12(1)
  279. stw 0,20(1)
  280. bl .LCF3
  281. .LCF3:
  282. mflr 30
  283. lwz 0,(.LCL3-.LCF3)(30)
  284. add 30,0,30
  285. lwz 9,.LC11(30)
  286. lwz 9,0(9)
  287. cmpwi 0,9,0
  288. bc 12,2,.L36
  289. lwz 0,152(9)
  290. mtlr 0
  291. blrl
  292. b .L37
  293. .L36:
  294. li 3,-1
  295. .L37:
  296. lwz 0,20(1)
  297. mtlr 0
  298. lwz 30,8(1)
  299. lwz 31,12(1)
  300. la 1,16(1)
  301. blr
  302. .Lfe5:
  303. .size _dlclose,.Lfe5-_dlclose
  304. .section ".got2","aw"
  305. .LC12 = .-.LCTOC1
  306. .long __mainprog_obj
  307. .section ".text"
  308. .align 2
  309. .globl _dlsym
  310. .LCL4:
  311. .long .LCTOC1-.LCF4
  312. .type _dlsym,@function
  313. _dlsym:
  314. stwu 1,-16(1)
  315. mflr 0
  316. stw 30,8(1)
  317. stw 31,12(1)
  318. stw 0,20(1)
  319. bl .LCF4
  320. .LCF4:
  321. mflr 30
  322. lwz 0,(.LCL4-.LCF4)(30)
  323. add 30,0,30
  324. lwz 9,.LC12(30)
  325. lwz 9,0(9)
  326. cmpwi 0,9,0
  327. bc 12,2,.L39
  328. lwz 0,144(9)
  329. mtlr 0
  330. blrl
  331. b .L40
  332. .L39:
  333. li 3,0
  334. .L40:
  335. lwz 0,20(1)
  336. mtlr 0
  337. lwz 30,8(1)
  338. lwz 31,12(1)
  339. la 1,16(1)
  340. blr
  341. .Lfe6:
  342. .size _dlsym,.Lfe6-_dlsym
  343. .section ".data" # .rodata
  344. .align 2
  345. .LC14:
  346. .string "Dynamic linker interface not available"
  347. .section ".got2","aw"
  348. .LC13 = .-.LCTOC1
  349. .long __mainprog_obj
  350. .LC15 = .-.LCTOC1
  351. .long .LC14
  352. .section ".text"
  353. .align 2
  354. .globl _dlerror
  355. .LCL5:
  356. .long .LCTOC1-.LCF5
  357. .type _dlerror,@function
  358. _dlerror:
  359. stwu 1,-16(1)
  360. mflr 0
  361. stw 30,8(1)
  362. stw 31,12(1)
  363. stw 0,20(1)
  364. bl .LCF5
  365. .LCF5:
  366. mflr 30
  367. lwz 0,(.LCL5-.LCF5)(30)
  368. add 30,0,30
  369. lwz 9,.LC13(30)
  370. lwz 9,0(9)
  371. cmpwi 0,9,0
  372. bc 12,2,.L42
  373. lwz 0,148(9)
  374. mtlr 0
  375. blrl
  376. b .L43
  377. .L42:
  378. lwz 3,.LC15(30)
  379. .L43:
  380. lwz 0,20(1)
  381. mtlr 0
  382. lwz 30,8(1)
  383. lwz 31,12(1)
  384. la 1,16(1)
  385. blr
  386. .Lfe7:
  387. .size _dlerror,.Lfe7-_dlerror
  388. .section ".got2","aw"
  389. .LC16 = .-.LCTOC1
  390. .long __mainprog_obj
  391. .section ".text"
  392. .align 2
  393. .globl _dladdr
  394. .LCL6:
  395. .long .LCTOC1-.LCF6
  396. .type _dladdr,@function
  397. _dladdr:
  398. stwu 1,-16(1)
  399. mflr 0
  400. stw 30,8(1)
  401. stw 31,12(1)
  402. stw 0,20(1)
  403. bl .LCF6
  404. .LCF6:
  405. mflr 30
  406. lwz 0,(.LCL6-.LCF6)(30)
  407. add 30,0,30
  408. lwz 9,.LC16(30)
  409. lwz 9,0(9)
  410. cmpwi 0,9,0
  411. bc 12,2,.L45
  412. lwz 0,156(9)
  413. mtlr 0
  414. blrl
  415. b .L46
  416. .L45:
  417. li 3,-1
  418. .L46:
  419. lwz 0,20(1)
  420. mtlr 0
  421. lwz 30,8(1)
  422. lwz 31,12(1)
  423. la 1,16(1)
  424. blr
  425. .Lfe8:
  426. .size _dladdr,.Lfe8-_dladdr
  427. .comm environ,4,4
  428. .comm __mainprog_obj,4,4
  429. .ident "GCC: (GNU) 2.95.3 20010315 (release) (NetBSD nb3)"
  430. .comm environ,4,4
  431. .comm operatingsystem_parameter_envp,4,4
  432. .comm operatingsystem_parameter_argc,4,4
  433. .comm operatingsystem_parameter_argv,4,4
  434. .section ".data"
  435. .globl __data_start
  436. __data_start:
  437. data_start:
  438. .globl ___fpc_brk_addr /* heap management */
  439. .type ___fpc_brk_addr,@object
  440. .size ___fpc_brk_addr,4
  441. ___fpc_brk_addr:
  442. .long 0