5.out.h 2.4 KB

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