tocopt5.s 681 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. .section .toc,"aw"
  2. x4t:
  3. .quad x4
  4. x5t:
  5. .quad x5
  6. x6t:
  7. .quad x6
  8. .section .sdata,"aw"
  9. x1:
  10. .byte 1
  11. x2:
  12. .byte 2
  13. x3:
  14. .byte 3
  15. x4:
  16. .byte 4
  17. x5:
  18. .byte 5
  19. x6:
  20. .byte 6
  21. .globl _start
  22. .text
  23. _start:
  24. # no need for got entry, optimise to nop,addi
  25. addis 9,2,x1@got@ha
  26. ld 9,x1@got@l(9)
  27. # must keep got entry, optimise to nop,addi,ld
  28. addis 4,2,x2@got@ha
  29. addi 5,4,x2@got@l
  30. ld 6,0(5)
  31. # no need for toc entry, optimise to nop,addi
  32. addis 9,2,x4t@toc@ha
  33. ld 9,x4t@toc@l(9)
  34. # must keep toc entry, optimise to nop,addi,ld
  35. # if we had a reloc tying the ld to x5/x5t then we could throw away
  36. # the toc entry and optimise to nop,nop,addi
  37. addis 4,2,x5t@toc@ha
  38. addi 5,4,x5t@toc@l
  39. ld 6,0(5)