tocopt7.s 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. .section .toc,"aw"
  2. .p2align 4
  3. x4t:
  4. .quad x4
  5. x5t:
  6. .quad x5
  7. x6t:
  8. .quad x6
  9. .section .sdata,"aw"
  10. .p2align 4
  11. x1:
  12. .quad 1
  13. x2:
  14. .quad 2
  15. x3:
  16. .quad 3
  17. x4:
  18. .quad 4
  19. x5:
  20. .quad 5
  21. x6:
  22. .quad 6
  23. .globl _start
  24. .text
  25. _start:
  26. # no need for got entry, optimise to nop,addi
  27. addis 9,2,x1@got@ha
  28. ld 9,x1@got@l(9)
  29. # must keep got entry, optimise to nop,addi,ld
  30. addis 4,2,x2@got@ha
  31. addi 5,4,x2@got@l
  32. ld 6,0(5)
  33. # can't optimise due to possibility that r28 isn't dead
  34. addis 28,2,x1@got@ha
  35. ldu 9,x1@got@l(28)
  36. # no need for toc entry, optimise to nop,addi
  37. addis 9,2,x4t@toc@ha
  38. ld 9,x4t@toc@l(9)
  39. # must keep toc entry, optimise to nop,addi,ld
  40. # if we had a reloc tying the ld to x5/x5t then we could throw away
  41. # the toc entry and optimise to nop,nop,addi
  42. addis 4,2,x5t@toc@ha
  43. addi 5,4,x5t@toc@l
  44. ld 6,0(5)
  45. # can't optimise due to possibility that r28 isn't dead
  46. addis 28,2,x4t@toc@ha
  47. ldu 9,x4t@toc@l(28)
  48. addis 4,2,x2@got@ha
  49. addi 5,4,x2@got@l
  50. lwz 6,0(5)
  51. addis 9,2,x4t@toc@ha
  52. lwz 9,x4t@toc@l(9)
  53. addis 4,2,x5t@toc@ha
  54. addi 5,4,x5t@toc@l
  55. lwz 6,0(5)
  56. addis 28,2,x4t@toc@ha
  57. lwzu 9,x4t@toc@l(28)
  58. addis 4,2,x2@got@ha
  59. addi 5,4,x2@got@l
  60. lwa 6,0(5)
  61. addis 9,2,x4t@toc@ha
  62. lwa 9,x4t@toc@l(9)
  63. addis 4,2,x5t@toc@ha
  64. addi 5,4,x5t@toc@l
  65. lwa 6,0(5)
  66. addis 4,2,x2@got@ha
  67. addi 5,4,x2@got@l
  68. lhz 6,0(5)
  69. addis 9,2,x4t@toc@ha
  70. lhz 9,x4t@toc@l(9)
  71. addis 4,2,x5t@toc@ha
  72. addi 5,4,x5t@toc@l
  73. lhz 6,0(5)
  74. addis 28,2,x4t@toc@ha
  75. lhzu 9,x4t@toc@l(28)
  76. addis 4,2,x2@got@ha
  77. addi 5,4,x2@got@l
  78. lha 6,0(5)
  79. addis 9,2,x4t@toc@ha
  80. lha 9,x4t@toc@l(9)
  81. addis 4,2,x5t@toc@ha
  82. addi 5,4,x5t@toc@l
  83. lha 6,0(5)
  84. addis 4,2,x2@got@ha
  85. addi 5,4,x2@got@l
  86. lbz 6,0(5)
  87. addis 9,2,x4t@toc@ha
  88. lbz 9,x4t@toc@l(9)
  89. addis 4,2,x5t@toc@ha
  90. addi 5,4,x5t@toc@l
  91. lbz 6,0(5)
  92. addis 28,2,x4t@toc@ha
  93. lbzu 9,x4t@toc@l(28)
  94. addis 4,2,x2@got@ha
  95. addi 5,4,x2@got@l
  96. lfs 6,0(5)
  97. addis 9,2,x4t@toc@ha
  98. lfs 9,x4t@toc@l(9)
  99. addis 4,2,x5t@toc@ha
  100. addi 5,4,x5t@toc@l
  101. lfs 6,0(5)
  102. addis 28,2,x4t@toc@ha
  103. lfsu 9,x4t@toc@l(28)
  104. addis 4,2,x2@got@ha
  105. addi 5,4,x2@got@l
  106. lfd 6,0(5)
  107. addis 9,2,x4t@toc@ha
  108. lfd 9,x4t@toc@l(9)
  109. addis 4,2,x5t@toc@ha
  110. addi 5,4,x5t@toc@l
  111. lfd 6,0(5)
  112. addis 28,2,x4t@toc@ha
  113. lfdu 9,x4t@toc@l(28)
  114. addis 4,2,x2@got@ha
  115. addi 5,4,x2@got@l
  116. lxv 6,0(5)
  117. addis 9,2,x4t@toc@ha
  118. lxv 9,x4t@toc@l(9)
  119. addis 4,2,x6t@toc@ha
  120. addi 5,4,x6t@toc@l
  121. lxv 6,0(5)
  122. addis 4,2,x2@got@ha
  123. addi 5,4,x2@got@l
  124. lxsd 6,0(5)
  125. addis 9,2,x4t@toc@ha
  126. lxsd 9,x4t@toc@l(9)
  127. addis 4,2,x5t@toc@ha
  128. addi 5,4,x5t@toc@l
  129. lxsd 6,0(5)
  130. addis 4,2,x2@got@ha
  131. addi 5,4,x2@got@l
  132. lxssp 6,0(5)
  133. addis 9,2,x4t@toc@ha
  134. lxssp 9,x4t@toc@l(9)
  135. addis 4,2,x5t@toc@ha
  136. addi 5,4,x5t@toc@l
  137. lxssp 6,0(5)
  138. addis 9,2,x4t@toc@ha
  139. std 9,x4t@toc@l(9)
  140. addis 4,2,x5t@toc@ha
  141. addi 5,4,x5t@toc@l
  142. std 6,0(5)
  143. addis 28,2,x4t@toc@ha
  144. stdu 9,x4t@toc@l(28)
  145. addis 9,2,x4t@toc@ha
  146. stw 9,x4t@toc@l(9)
  147. addis 4,2,x5t@toc@ha
  148. addi 5,4,x5t@toc@l
  149. stw 6,0(5)
  150. addis 28,2,x4t@toc@ha
  151. stwu 9,x4t@toc@l(28)
  152. addis 9,2,x4t@toc@ha
  153. sth 9,x4t@toc@l(9)
  154. addis 4,2,x5t@toc@ha
  155. addi 5,4,x5t@toc@l
  156. sth 6,0(5)
  157. addis 28,2,x4t@toc@ha
  158. sthu 9,x4t@toc@l(28)
  159. addis 9,2,x4t@toc@ha
  160. stb 9,x4t@toc@l(9)
  161. addis 4,2,x5t@toc@ha
  162. addi 5,4,x5t@toc@l
  163. stb 6,0(5)
  164. addis 28,2,x4t@toc@ha
  165. stbu 9,x4t@toc@l(28)
  166. addis 9,2,x4t@toc@ha
  167. stfs 9,x4t@toc@l(9)
  168. addis 4,2,x5t@toc@ha
  169. addi 5,4,x5t@toc@l
  170. stfs 6,0(5)
  171. addis 28,2,x4t@toc@ha
  172. stfsu 9,x4t@toc@l(28)
  173. addis 9,2,x4t@toc@ha
  174. stfd 9,x4t@toc@l(9)
  175. addis 4,2,x5t@toc@ha
  176. addi 5,4,x5t@toc@l
  177. stfd 6,0(5)
  178. addis 28,2,x4t@toc@ha
  179. stfdu 9,x4t@toc@l(28)
  180. addis 9,2,x4t@toc@ha
  181. stxv 9,x4t@toc@l(9)
  182. addis 4,2,x6t@toc@ha
  183. addi 5,4,x6t@toc@l
  184. stxv 6,0(5)
  185. addis 9,2,x4t@toc@ha
  186. stxsd 9,x4t@toc@l(9)
  187. addis 4,2,x5t@toc@ha
  188. addi 5,4,x5t@toc@l
  189. stxsd 6,0(5)
  190. addis 9,2,x4t@toc@ha
  191. stxssp 9,x4t@toc@l(9)
  192. addis 4,2,x5t@toc@ha
  193. addi 5,4,x5t@toc@l
  194. stxssp 6,0(5)