dl-syscalls.h 834 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* _call_via_rX calls are used in thumb ldso because of calls via
  2. * function pointers, but ldso is not linked with anything which
  3. * provides them, so define them here (only required for thumb).
  4. */
  5. #if defined(__thumb__)
  6. __asm__(
  7. ".macro call_via register\n"
  8. " .global _call_via_\\register\n"
  9. " .hidden _call_via_\\register\n"
  10. " .type _call_via_\\register, %function\n"
  11. " .thumb_func\n"
  12. "_call_via_\\register:\n"
  13. " bx \\register\n"
  14. " .size _call_via_\\register, . - _call_via_\\register\n"
  15. ".endm\n"
  16. ".text\n"
  17. ".thumb\n"
  18. ".align 1\n"
  19. " call_via r0\n"
  20. " call_via r1\n"
  21. " call_via r2\n"
  22. " call_via r3\n"
  23. " call_via r4\n"
  24. " call_via r5\n"
  25. " call_via r6\n"
  26. " call_via r7\n"
  27. " call_via r8\n"
  28. " call_via r9\n"
  29. " call_via r10\n"
  30. " call_via r11\n"
  31. " call_via r12\n"
  32. " call_via r13\n"
  33. " call_via r14\n"
  34. );
  35. #endif