fpcdefs.inc 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. {$ifdef FPC}
  2. {$ifdef DELPHI}
  3. {$mode delphi}
  4. {$asmmode intel}
  5. {$else}
  6. {$mode objfpc}
  7. {$H-}
  8. {$goto on}
  9. {$inline on}
  10. { 1Mb stack }
  11. {$MEMORY 1000000}
  12. { This reduces the memory requirements a lot }
  13. {$PACKENUM 1}
  14. {$ifndef VER1_0}
  15. { We don't use exceptions, so turn off the implicit
  16. exceptions in the constructors }
  17. {$IMPLICITEXCEPTIONS OFF}
  18. { Inline small functions, but not when EXTDEBUG is used }
  19. {$ifndef EXTDEBUG}
  20. {$define USEINLINE}
  21. {$endif EXTDEBUG}
  22. {$else}
  23. { Optimizer is broken when compiling with optimizations using 1.0.x }
  24. {$ifndef USEOPT}
  25. {$define NOOPT}
  26. {$endif}
  27. {$endif VER1_0}
  28. {$define FPCPROCVAR}
  29. {$ifdef I386}
  30. {$define USEEXCEPT}
  31. {$endif}
  32. {$endif}
  33. {$ifdef cpuarm}
  34. {$packrecords c}
  35. {$endif cpuarm}
  36. {$endif}
  37. {$ifdef DELPHI}
  38. {$H-}
  39. {$J+}
  40. {$Z1}
  41. {$undef FPCPROCVAR}
  42. {$endif}
  43. { assume a processor with flags }
  44. {$define cpuflags}
  45. {$ifdef i386}
  46. {$ifdef delphi}
  47. {$define oldset}
  48. {$endif}
  49. {$define x86}
  50. {$define cpuextended}
  51. {$endif i386}
  52. {$ifdef x86_64}
  53. {$define x86}
  54. {$define cpu64bit}
  55. {$define cpuextended}
  56. {$define cpufloat128}
  57. {$define noopt}
  58. {$define cputargethasfixedstack}
  59. {$endif x86_64}
  60. {$ifdef alpha}
  61. {$define cpu64bit}
  62. {$undef cpuflags}
  63. {$define noopt}
  64. {$define oldset}
  65. {$endif alpha}
  66. {$ifdef sparc}
  67. {$define noopt}
  68. {$define oldset}
  69. {$endif sparc}
  70. {$ifdef powerpc}
  71. {$define noopt}
  72. {$define oldset}
  73. {$define oldregvars}
  74. {$endif powerpc}
  75. {$ifdef arm}
  76. {$define cpuneedsdiv32helper}
  77. {$define cputargethasfixedstack}
  78. {$define noopt}
  79. {$define oldset}
  80. {$endif arm}
  81. {$ifdef m68k}
  82. {$define cpufpemu}
  83. {$define noopt}
  84. {$define oldset}
  85. {$endif m68k}
  86. {
  87. $Log$
  88. Revision 1.37 2004-06-16 20:07:07 florian
  89. * dwarf branch merged
  90. Revision 1.36 2004/05/30 21:20:40 jonas
  91. * enable regvars by default for PPC
  92. Revision 1.35.2.4 2004/05/02 12:45:32 peter
  93. * enabled cpuhasfixedstack for x86-64 again
  94. * fixed size of temp allocation for parameters
  95. Revision 1.35.2.3 2004/05/02 01:02:24 peter
  96. * remove fixed stack for x86-64
  97. Revision 1.35.2.2 2004/04/29 23:30:28 peter
  98. * fix i386 compiler
  99. Revision 1.35.2.1 2004/04/23 22:12:37 florian
  100. * fixed some potential stack corruption reasons
  101. Revision 1.35 2004/03/16 22:12:10 florian
  102. * some alignment issues resolved
  103. * compiler doesn't generate anymore instructions not supported by the linux fpe
  104. Revision 1.34 2004/03/10 11:55:22 mazen
  105. * $M directive renamed to $MEMORY : Long directive name
  106. Revision 1.33 2004/02/17 15:57:49 peter
  107. - fix rtti generation for properties containing sl_vec
  108. - fix crash when overloaded operator is not available
  109. - fix record alignment for C style variant records
  110. Revision 1.32 2004/02/09 22:48:45 florian
  111. * several fixes to parameter handling on arm
  112. Revision 1.31 2004/01/28 16:47:45 peter
  113. Stacksize force to 1mb
  114. Revision 1.30 2003/12/14 22:41:46 peter
  115. * USEOPT to override NOOPT for 1.0.x
  116. Revision 1.29 2003/12/14 20:20:14 peter
  117. * disable optimizer again for 1.0.x
  118. Revision 1.28 2003/12/14 14:18:59 peter
  119. * optimizer works again with 1.0.x
  120. * fixed wrong loop in FindRegWithConst
  121. Revision 1.27 2003/11/22 13:11:10 jonas
  122. - disable the optimizer if compiling with 1.0, because it has a code
  123. generator (not optimizer) bug that causes crashes in the 1.1
  124. optimizer
  125. Revision 1.26 2003/10/31 15:51:11 peter
  126. * USEINLINE directive added (not enabled yet)
  127. Revision 1.25 2003/09/06 16:47:24 florian
  128. + support of NaN and Inf in the compiler as values of real constants
  129. Revision 1.24 2003/09/03 15:55:00 peter
  130. * NEWRA branch merged
  131. Revision 1.23 2003/09/03 11:18:36 florian
  132. * fixed arm concatcopy
  133. + arm support in the common compiler sources added
  134. * moved some generic cg code around
  135. + tfputype added
  136. * ...
  137. Revision 1.22.2.2 2003/08/31 21:07:44 daniel
  138. * callparatemp ripped
  139. Revision 1.22.2.1 2003/08/27 20:11:29 peter
  140. * newra default
  141. Revision 1.22 2003/08/11 21:18:20 peter
  142. * start of sparc support for newra
  143. Revision 1.21 2003/07/21 11:52:57 florian
  144. * very basic stuff for the arm
  145. Revision 1.20 2003/05/24 21:12:57 florian
  146. * if something doesn't work with callparatemp, the define callparatemp
  147. should be used because other processors with reigster calling conventions
  148. depend on this as well
  149. Revision 1.19 2003/05/09 17:47:02 peter
  150. * self moved to hidden parameter
  151. * removed hdisposen,hnewn,selfn
  152. Revision 1.18 2003/04/30 09:42:42 florian
  153. + first changes to make self a hidden parameter
  154. Revision 1.17 2003/04/24 22:29:57 florian
  155. * fixed a lot of PowerPC related stuff
  156. Revision 1.16 2003/04/23 13:47:41 peter
  157. * optimizer is x86
  158. Revision 1.15 2003/04/23 12:35:34 florian
  159. * fixed several issues with powerpc
  160. + applied a patch from Jonas for nested function calls (PowerPC only)
  161. * ...
  162. Revision 1.14 2002/12/06 16:56:57 peter
  163. * only compile cs_fp_emulation support when cpufpuemu is defined
  164. * define cpufpuemu for m68k only
  165. Revision 1.13 2002/10/16 19:01:43 peter
  166. + $IMPLICITEXCEPTIONS switch to turn on/off generation of the
  167. implicit exception frames for procedures with initialized variables
  168. and for constructors. The default is on for compatibility
  169. Revision 1.12 2002/10/05 12:43:24 carl
  170. * fixes for Delphi 6 compilation
  171. (warning : Some features do not work under Delphi)
  172. Revision 1.11 2002/09/30 07:00:45 florian
  173. * fixes to common code to get the alpha compiler compiled applied
  174. Revision 1.10 2002/09/29 23:19:05 florian
  175. + added define 64bit
  176. Revision 1.9 2002/09/07 15:25:02 peter
  177. * old logs removed and tabs fixed
  178. Revision 1.8 2002/08/30 13:42:29 mazen
  179. - undefining win32 when SPARC defined removed, no more needed.
  180. Revision 1.6 2002/08/19 18:17:48 carl
  181. + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
  182. * more fixes to m68k for 64-bit operations
  183. Revision 1.5 2002/08/15 15:11:53 carl
  184. * oldset define is now correct for all cpu's except i386
  185. * correct compilation problems because of the above
  186. Revision 1.4 2002/07/23 12:34:29 daniel
  187. * Readded old set code. To use it define 'oldset'. Activated by default
  188. for ppc.
  189. Revision 1.3 2002/07/04 18:56:50 florian
  190. + log added
  191. }