tls-relax-all.s 984 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. .global gdesc_var_1
  2. .global gd_var_1
  3. .section .tdata,"awT",%progbits
  4. gdesc_var_1:
  5. .word 1
  6. gdesc_var_2:
  7. .word 2
  8. gd_var_1:
  9. .word 3
  10. gd_var_2:
  11. .word 4
  12. ie_var:
  13. .word 5
  14. .text
  15. stp x29, x30, [sp, -16]!
  16. add x29, sp, 0
  17. adrp x0, :tlsdesc:gdesc_var_1
  18. ldr x1, [x0, #:tlsdesc_lo12:gdesc_var_1]
  19. add x0, x0, :tlsdesc_lo12:gdesc_var_1
  20. .tlsdesccall gdesc_var_1
  21. blr x1
  22. mrs x1, tpidr_el0
  23. add x0, x1, x0
  24. ldr w1, [x0]
  25. adrp x0, :tlsdesc:gdesc_var_2
  26. ldr x2, [x0, #:tlsdesc_lo12:gdesc_var_2]
  27. add x0, x0, :tlsdesc_lo12:gdesc_var_2
  28. .tlsdesccall gdesc_var_2
  29. blr x2
  30. mrs x2, tpidr_el0
  31. add x0, x2, x0
  32. ldr w0, [x0]
  33. add w1, w1, w0
  34. adrp x0, :tlsgd:gd_var_1
  35. add x0, x0, :tlsgd_lo12:gd_var_1
  36. bl __tls_get_addr
  37. nop
  38. ldr w0, [x0]
  39. add w1, w1, w0
  40. adrp x0, :tlsgd:gd_var_2
  41. add x0, x0, :tlsgd_lo12:gd_var_2
  42. bl __tls_get_addr
  43. nop
  44. ldr w0, [x0]
  45. add w1, w1, w0
  46. mrs x2, tpidr_el0
  47. adrp x0, :gottprel:ie_var
  48. ldr x0, [x0, #:gottprel_lo12:ie_var]
  49. add x0, x2, x0
  50. ldr w0, [x0]
  51. add w0, w1, w0