5.out.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. #define NSNAME 8
  2. #define NSYM 50
  3. #define NREG 16
  4. #define NOPROF (1<<0)
  5. #define DUPOK (1<<1)
  6. #define ALLTHUMBS (1<<2)
  7. #define REGRET 0
  8. #define REGARG 0
  9. /* compiler allocates R1 up as temps */
  10. /* compiler allocates register variables R2 up */
  11. #define REGMIN 2
  12. #define REGMAX 8
  13. #define REGEXT 10
  14. /* compiler allocates external registers R10 down */
  15. #define REGTMP 11
  16. #define REGSB 12
  17. #define REGSP 13
  18. #define REGLINK 14
  19. #define REGPC 15
  20. #define REGTMPT 7 /* used by the loader for thumb code */
  21. #define NFREG 8
  22. #define FREGRET 0
  23. #define FREGEXT 7
  24. /* compiler allocates register variables F0 up */
  25. /* compiler allocates external registers F7 down */
  26. enum as
  27. {
  28. AXXX,
  29. AAND,
  30. AEOR,
  31. ASUB,
  32. ARSB,
  33. AADD,
  34. AADC,
  35. ASBC,
  36. ARSC,
  37. ATST,
  38. ATEQ,
  39. ACMP,
  40. ACMN,
  41. AORR,
  42. ABIC,
  43. AMVN,
  44. AB,
  45. ABL,
  46. /*
  47. * Do not reorder or fragment the conditional branch
  48. * opcodes, or the predication code will break
  49. */
  50. ABEQ,
  51. ABNE,
  52. ABCS,
  53. ABHS,
  54. ABCC,
  55. ABLO,
  56. ABMI,
  57. ABPL,
  58. ABVS,
  59. ABVC,
  60. ABHI,
  61. ABLS,
  62. ABGE,
  63. ABLT,
  64. ABGT,
  65. ABLE,
  66. AMOVWD,
  67. AMOVWF,
  68. AMOVDW,
  69. AMOVFW,
  70. AMOVFD,
  71. AMOVDF,
  72. AMOVF,
  73. AMOVD,
  74. ACMPF,
  75. ACMPD,
  76. AADDF,
  77. AADDD,
  78. ASUBF,
  79. ASUBD,
  80. AMULF,
  81. AMULD,
  82. ADIVF,
  83. ADIVD,
  84. ASRL,
  85. ASRA,
  86. ASLL,
  87. AMULU,
  88. ADIVU,
  89. AMUL,
  90. ADIV,
  91. AMOD,
  92. AMODU,
  93. AMOVB,
  94. AMOVBU,
  95. AMOVH,
  96. AMOVHU,
  97. AMOVW,
  98. AMOVM,
  99. ASWPBU,
  100. ASWPW,
  101. ANOP,
  102. ARFE,
  103. ASWI,
  104. AMULA,
  105. ADATA,
  106. AGLOBL,
  107. AGOK,
  108. AHISTORY,
  109. ANAME,
  110. ARET,
  111. ATEXT,
  112. AWORD,
  113. ADYNT,
  114. AINIT,
  115. ABCASE,
  116. ACASE,
  117. AEND,
  118. AMULL,
  119. AMULAL,
  120. AMULLU,
  121. AMULALU,
  122. ABX,
  123. ABXRET,
  124. ADWORD,
  125. ASIGNAME,
  126. ALAST,
  127. };
  128. /* scond byte */
  129. #define C_SCOND ((1<<4)-1)
  130. #define C_SBIT (1<<4)
  131. #define C_PBIT (1<<5)
  132. #define C_WBIT (1<<6)
  133. #define C_FBIT (1<<7) /* psr flags-only */
  134. #define C_UBIT (1<<7) /* up bit */
  135. /* type/name */
  136. #define D_GOK 0
  137. #define D_NONE 1
  138. /* type */
  139. #define D_BRANCH (D_NONE+1)
  140. #define D_OREG (D_NONE+2)
  141. #define D_CONST (D_NONE+7)
  142. #define D_FCONST (D_NONE+8)
  143. #define D_SCONST (D_NONE+9)
  144. #define D_PSR (D_NONE+10)
  145. #define D_REG (D_NONE+12)
  146. #define D_FREG (D_NONE+13)
  147. #define D_FILE (D_NONE+16)
  148. #define D_OCONST (D_NONE+17)
  149. #define D_FILE1 (D_NONE+18)
  150. #define D_SHIFT (D_NONE+19)
  151. #define D_FPCR (D_NONE+20)
  152. #define D_REGREG (D_NONE+21)
  153. /* name */
  154. #define D_EXTERN (D_NONE+3)
  155. #define D_STATIC (D_NONE+4)
  156. #define D_AUTO (D_NONE+5)
  157. #define D_PARAM (D_NONE+6)
  158. /*
  159. * this is the ranlib header
  160. */
  161. #define SYMDEF "__.SYMDEF"
  162. /*
  163. * this is the simulated IEEE floating point
  164. */
  165. typedef struct ieee Ieee;
  166. struct ieee
  167. {
  168. long l; /* contains ls-man 0xffffffff */
  169. long h; /* contains sign 0x80000000
  170. exp 0x7ff00000
  171. ms-man 0x000fffff */
  172. };