tlstoc.s 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. .section ".tbss","awT",@nobits
  2. .global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
  3. .align 3
  4. gd0: .space 8
  5. ld0: .space 8
  6. ld1: .space 8
  7. ld2: .space 8
  8. ie0: .space 8
  9. le0: .space 8
  10. le1: .space 8
  11. .section ".tdata","awT",@progbits
  12. .align 3
  13. gd4: .quad 0x123456789abcdef0
  14. ld4: .quad 0x23456789abcdef01
  15. ld5: .quad 0x3456789abcdef012
  16. ld6: .quad 0x456789abcdef0123
  17. ie4: .quad 0x56789abcdef01234
  18. le4: .quad 0x6789abcdef012345
  19. le5: .quad 0x789abcdef0123456
  20. .section ".opd","aw",@progbits
  21. .p2align 3
  22. _start:
  23. .quad .L_start,.TOC.@tocbase,0
  24. .text
  25. .L_start:
  26. #extern syms
  27. #GD
  28. addi 3,2,.Lgd@toc
  29. bl .__tls_get_addr
  30. nop
  31. .section .toc,"aw",@progbits
  32. .Lgd:
  33. .quad gd@dtpmod
  34. .quad gd@dtprel
  35. .text
  36. #LD
  37. addi 3,2,.Lld@toc
  38. bl .__tls_get_addr
  39. nop
  40. .section .toc,"aw",@progbits
  41. .Lld:
  42. .quad ld@dtpmod
  43. .quad 0
  44. .text
  45. #global syms
  46. #GD
  47. addi 3,2,.Lgd0@toc
  48. bl .__tls_get_addr
  49. nop
  50. .section .toc,"aw",@progbits
  51. .Lgd0:
  52. .quad gd0@dtpmod
  53. .quad gd0@dtprel
  54. .text
  55. #LD
  56. addi 3,2,.Lld0@toc
  57. bl .__tls_get_addr
  58. nop
  59. .section .toc,"aw",@progbits
  60. .Lld0:
  61. .quad ld0@dtpmod
  62. .quad 0
  63. .text
  64. addi 9,3,ld0@dtprel
  65. addis 9,3,ld1@dtprel@ha
  66. lwz 10,ld1@dtprel@l(9)
  67. ld 9,.Lld2@toc(2)
  68. ldx 10,9,3
  69. .section .toc,"aw",@progbits
  70. .Lld2:
  71. .quad ld2@dtprel
  72. .text
  73. #IE
  74. ld 9,.Lie0@toc(2)
  75. lhzx 10,9,.Lie0@tls
  76. .section .toc,"aw",@progbits
  77. .Lie0:
  78. .quad ie0@tprel
  79. .text
  80. #LE
  81. lbz 10,le0@tprel(13) #R_PPC64_TPREL16 le0
  82. addis 9,13,le1@tprel@ha #R_PPC64_TPREL16_HA le1
  83. stb 10,le1@tprel@l(9) #R_PPC64_TPREL16_LO le1