tilegx.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. // tilegx.h -- ELF definitions specific to EM_TILEGX -*- C++ -*-
  2. // Copyright (C) 2012-2022 Free Software Foundation, Inc.
  3. // Written by Jiong Wang (jiwang@tilera.com)
  4. // This file is part of elfcpp.
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the GNU Library General Public License
  7. // as published by the Free Software Foundation; either version 2, or
  8. // (at your option) any later version.
  9. // In addition to the permissions in the GNU Library General Public
  10. // License, the Free Software Foundation gives you unlimited
  11. // permission to link the compiled version of this file into
  12. // combinations with other programs, and to distribute those
  13. // combinations without any restriction coming from the use of this
  14. // file. (The Library Public License restrictions do apply in other
  15. // respects; for example, they cover modification of the file, and
  16. /// distribution when not linked into a combined executable.)
  17. // This program is distributed in the hope that it will be useful, but
  18. // WITHOUT ANY WARRANTY; without even the implied warranty of
  19. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  20. // Library General Public License for more details.
  21. // You should have received a copy of the GNU Library General Public
  22. // License along with this program; if not, write to the Free Software
  23. // Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
  24. // 02110-1301, USA.
  25. #ifndef ELFCPP_TILEGX_H
  26. #define ELFCPP_TILEGX_H
  27. namespace elfcpp
  28. {
  29. // Documentation is taken from
  30. // http://www.tilera.com/scm/docs/index.html
  31. enum
  32. {
  33. R_TILEGX_NONE = 0,
  34. R_TILEGX_64 = 1,
  35. R_TILEGX_32 = 2,
  36. R_TILEGX_16 = 3,
  37. R_TILEGX_8 = 4,
  38. R_TILEGX_64_PCREL = 5,
  39. R_TILEGX_32_PCREL = 6,
  40. R_TILEGX_16_PCREL = 7,
  41. R_TILEGX_8_PCREL = 8,
  42. R_TILEGX_HW0 = 9,
  43. R_TILEGX_HW1 = 10,
  44. R_TILEGX_HW2 = 11,
  45. R_TILEGX_HW3 = 12,
  46. R_TILEGX_HW0_LAST = 13,
  47. R_TILEGX_HW1_LAST = 14,
  48. R_TILEGX_HW2_LAST = 15,
  49. R_TILEGX_COPY = 16,
  50. R_TILEGX_GLOB_DAT = 17,
  51. R_TILEGX_JMP_SLOT = 18,
  52. R_TILEGX_RELATIVE = 19,
  53. R_TILEGX_BROFF_X1 = 20,
  54. R_TILEGX_JUMPOFF_X1 = 21,
  55. R_TILEGX_JUMPOFF_X1_PLT = 22,
  56. R_TILEGX_IMM8_X0 = 23,
  57. R_TILEGX_IMM8_Y0 = 24,
  58. R_TILEGX_IMM8_X1 = 25,
  59. R_TILEGX_IMM8_Y1 = 26,
  60. R_TILEGX_DEST_IMM8_X1 = 27,
  61. R_TILEGX_MT_IMM14_X1 = 28,
  62. R_TILEGX_MF_IMM14_X1 = 29,
  63. R_TILEGX_MMSTART_X0 = 30,
  64. R_TILEGX_MMEND_X0 = 31,
  65. R_TILEGX_SHAMT_X0 = 32,
  66. R_TILEGX_SHAMT_X1 = 33,
  67. R_TILEGX_SHAMT_Y0 = 34,
  68. R_TILEGX_SHAMT_Y1 = 35,
  69. R_TILEGX_IMM16_X0_HW0 = 36,
  70. R_TILEGX_IMM16_X1_HW0 = 37,
  71. R_TILEGX_IMM16_X0_HW1 = 38,
  72. R_TILEGX_IMM16_X1_HW1 = 39,
  73. R_TILEGX_IMM16_X0_HW2 = 40,
  74. R_TILEGX_IMM16_X1_HW2 = 41,
  75. R_TILEGX_IMM16_X0_HW3 = 42,
  76. R_TILEGX_IMM16_X1_HW3 = 43,
  77. R_TILEGX_IMM16_X0_HW0_LAST = 44,
  78. R_TILEGX_IMM16_X1_HW0_LAST = 45,
  79. R_TILEGX_IMM16_X0_HW1_LAST = 46,
  80. R_TILEGX_IMM16_X1_HW1_LAST = 47,
  81. R_TILEGX_IMM16_X0_HW2_LAST = 48,
  82. R_TILEGX_IMM16_X1_HW2_LAST = 49,
  83. R_TILEGX_IMM16_X0_HW0_PCREL = 50,
  84. R_TILEGX_IMM16_X1_HW0_PCREL = 51,
  85. R_TILEGX_IMM16_X0_HW1_PCREL = 52,
  86. R_TILEGX_IMM16_X1_HW1_PCREL = 53,
  87. R_TILEGX_IMM16_X0_HW2_PCREL = 54,
  88. R_TILEGX_IMM16_X1_HW2_PCREL = 55,
  89. R_TILEGX_IMM16_X0_HW3_PCREL = 56,
  90. R_TILEGX_IMM16_X1_HW3_PCREL = 57,
  91. R_TILEGX_IMM16_X0_HW0_LAST_PCREL = 58,
  92. R_TILEGX_IMM16_X1_HW0_LAST_PCREL = 59,
  93. R_TILEGX_IMM16_X0_HW1_LAST_PCREL = 60,
  94. R_TILEGX_IMM16_X1_HW1_LAST_PCREL = 61,
  95. R_TILEGX_IMM16_X0_HW2_LAST_PCREL = 62,
  96. R_TILEGX_IMM16_X1_HW2_LAST_PCREL = 63,
  97. R_TILEGX_IMM16_X0_HW0_GOT = 64,
  98. R_TILEGX_IMM16_X1_HW0_GOT = 65,
  99. R_TILEGX_IMM16_X0_HW0_PLT_PCREL = 66,
  100. R_TILEGX_IMM16_X1_HW0_PLT_PCREL = 67,
  101. R_TILEGX_IMM16_X0_HW1_PLT_PCREL = 68,
  102. R_TILEGX_IMM16_X1_HW1_PLT_PCREL = 69,
  103. R_TILEGX_IMM16_X0_HW2_PLT_PCREL = 70,
  104. R_TILEGX_IMM16_X1_HW2_PLT_PCREL = 71,
  105. R_TILEGX_IMM16_X0_HW0_LAST_GOT = 72,
  106. R_TILEGX_IMM16_X1_HW0_LAST_GOT = 73,
  107. R_TILEGX_IMM16_X0_HW1_LAST_GOT = 74,
  108. R_TILEGX_IMM16_X1_HW1_LAST_GOT = 75,
  109. R_TILEGX_IMM16_X0_HW0_TLS_GD = 78,
  110. R_TILEGX_IMM16_X1_HW0_TLS_GD = 79,
  111. R_TILEGX_IMM16_X0_HW0_TLS_LE = 80,
  112. R_TILEGX_IMM16_X1_HW0_TLS_LE = 81,
  113. R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE = 82,
  114. R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE = 83,
  115. R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE = 84,
  116. R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE = 85,
  117. R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD = 86,
  118. R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD = 87,
  119. R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD = 88,
  120. R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD = 89,
  121. R_TILEGX_IRELATIVE = 90,
  122. R_TILEGX_IMM16_X0_HW0_TLS_IE = 92,
  123. R_TILEGX_IMM16_X1_HW0_TLS_IE = 93,
  124. R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL = 94,
  125. R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL = 95,
  126. R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL = 96,
  127. R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL = 97,
  128. R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL = 98,
  129. R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL = 99,
  130. R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE = 100,
  131. R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE = 101,
  132. R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE = 102,
  133. R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE = 103,
  134. R_TILEGX_TLS_DTPMOD64 = 106,
  135. R_TILEGX_TLS_DTPOFF64 = 107,
  136. R_TILEGX_TLS_TPOFF64 = 108,
  137. R_TILEGX_TLS_DTPMOD32 = 109,
  138. R_TILEGX_TLS_DTPOFF32 = 110,
  139. R_TILEGX_TLS_TPOFF32 = 111,
  140. R_TILEGX_TLS_GD_CALL = 112,
  141. R_TILEGX_IMM8_X0_TLS_GD_ADD = 113,
  142. R_TILEGX_IMM8_X1_TLS_GD_ADD = 114,
  143. R_TILEGX_IMM8_Y0_TLS_GD_ADD = 115,
  144. R_TILEGX_IMM8_Y1_TLS_GD_ADD = 116,
  145. R_TILEGX_TLS_IE_LOAD = 117,
  146. R_TILEGX_IMM8_X0_TLS_ADD = 118,
  147. R_TILEGX_IMM8_X1_TLS_ADD = 119,
  148. R_TILEGX_IMM8_Y0_TLS_ADD = 120,
  149. R_TILEGX_IMM8_Y1_TLS_ADD = 121,
  150. R_TILEGX_GNU_VTINHERIT = 128,
  151. R_TILEGX_GNU_VTENTRY = 129,
  152. R_TILEGX_NUM = 130
  153. };
  154. } // End namespace elfcpp.
  155. #endif // !defined(ELFCPP_TILEGX_H)