start.s 588 B

12345678910111213141516171819202122232425262728293031323334
  1. .global _dlstart
  2. _dlstart:
  3. l.jal 1f
  4. l.nop
  5. 1: l.movhi r5, gotpchi(_GLOBAL_OFFSET_TABLE_+0)
  6. l.ori r5, r5, gotpclo(_GLOBAL_OFFSET_TABLE_+4)
  7. l.add r5, r5, r9
  8. l.movhi r3, gotoffhi(_DYNAMIC)
  9. l.ori r3, r3, gotofflo(_DYNAMIC)
  10. l.add r5, r5, r3
  11. l.lwz r3, 0(r1)
  12. l.addi r4, r1, 4
  13. l.jal plt(__reloc_self)
  14. l.addi r1, r1, -16
  15. l.lwz r3, 16(r1)
  16. l.jal plt(__dynlink)
  17. l.addi r4, r1, 20
  18. l.addi r1, r1, 16
  19. l.lwz r4, 0(r1)
  20. 1: l.addi r4, r4, -1
  21. l.lwz r5, 4(r1)
  22. l.sfeqi r5, -1
  23. l.bf 1b
  24. l.addi r1, r1, 4
  25. l.addi r4, r4, 1
  26. l.addi r1, r1, -4
  27. l.sw 0(r1), r4
  28. l.jr r11
  29. l.ori r3, r0, 0