{$ifdef FPC}
  {$ifdef DELPHI}
    {$mode delphi}
    {$asmmode intel}
  {$else}
    {$mode objfpc}
    {$H-}
    {$goto on}
    {$inline on}

    { This reduces the memory requirements a lot }
    {$PACKENUM 1}

    {$ifndef VER1_0}
      { We don't use exceptions, so turn off the implicit
        exceptions in the constructors }
      {$IMPLICITEXCEPTIONS OFF}
      { Inline small functions }
      {$define USEINLINE}
    {$else}
      { Optimizer is broken when compiling with optimizations using 1.0.x }
      {$ifndef USEOPT}
        {$define NOOPT}
      {$endif}
    {$endif VER1_0}

    {$define FPCPROCVAR}
    {$ifdef I386}
      {$define USEEXCEPT}
    {$endif}
  {$endif}
{$endif}

{$ifdef DELPHI}
  {$H-}
  {$J+}

  {$Z1}

  {$undef FPCPROCVAR}
{$endif}


{ assume a processor with flags }
{$define cpuflags}

{$ifdef i386}
  {$ifdef delphi}
    {$define oldset}
  {$endif}
  {$define x86}
  {$define cpuextended}
{$endif i386}

{$ifdef x86_64}
  {$define x86}
  {$define cpu64bit}
  {$define cpuextended}
  {$define cpufloat128}
{$endif x86_64}

{$ifdef alpha}
  {$define cpu64bit}
  {$undef cpuflags}
  {$define noopt}
  {$define oldset}
{$endif alpha}

{$ifdef sparc}
  {$define noopt}
  {$define oldset}
{$endif sparc}

{$ifdef powerpc}
  {$define noopt}
  {$define oldset}
{$endif powerpc}

{$ifdef arm}
  {$define cpuneedsdiv32helper}
  {$define noopt}
  {$define oldset}
{$endif arm}

{$ifdef m68k}
  {$define cpufpemu}
  {$define noopt}
  {$define oldset}
{$endif m68k}

{
  $Log: fpcdefs.inc,v $
  Revision 1.30  2003/12/14 22:41:46  peter
    * USEOPT to override NOOPT for 1.0.x

  Revision 1.29  2003/12/14 20:20:14  peter
    * disable optimizer again for 1.0.x

  Revision 1.28  2003/12/14 14:18:59  peter
    * optimizer works again with 1.0.x
    * fixed wrong loop in FindRegWithConst

  Revision 1.27  2003/11/22 13:11:10  jonas
    - disable the optimizer if compiling with 1.0, because it has a code
      generator (not optimizer) bug that causes crashes in the 1.1
      optimizer

  Revision 1.26  2003/10/31 15:51:11  peter
    * USEINLINE directive added (not enabled yet)

  Revision 1.25  2003/09/06 16:47:24  florian
    + support of NaN and Inf in the compiler as values of real constants

  Revision 1.24  2003/09/03 15:55:00  peter
    * NEWRA branch merged

  Revision 1.23  2003/09/03 11:18:36  florian
    * fixed arm concatcopy
    + arm support in the common compiler sources added
    * moved some generic cg code around
    + tfputype added
    * ...

  Revision 1.22.2.2  2003/08/31 21:07:44  daniel
    * callparatemp ripped

  Revision 1.22.2.1  2003/08/27 20:11:29  peter
    * newra default

  Revision 1.22  2003/08/11 21:18:20  peter
    * start of sparc support for newra

  Revision 1.21  2003/07/21 11:52:57  florian
    * very basic stuff for the arm

  Revision 1.20  2003/05/24 21:12:57  florian
    * if something doesn't work with callparatemp, the define callparatemp
      should be used because other processors with reigster calling conventions
      depend on this as well

  Revision 1.19  2003/05/09 17:47:02  peter
    * self moved to hidden parameter
    * removed hdisposen,hnewn,selfn

  Revision 1.18  2003/04/30 09:42:42  florian
    + first changes to make self a hidden parameter

  Revision 1.17  2003/04/24 22:29:57  florian
    * fixed a lot of PowerPC related stuff

  Revision 1.16  2003/04/23 13:47:41  peter
    * optimizer is x86

  Revision 1.15  2003/04/23 12:35:34  florian
    * fixed several issues with powerpc
    + applied a patch from Jonas for nested function calls (PowerPC only)
    * ...

  Revision 1.14  2002/12/06 16:56:57  peter
    * only compile cs_fp_emulation support when cpufpuemu is defined
    * define cpufpuemu for m68k only

  Revision 1.13  2002/10/16 19:01:43  peter
    + $IMPLICITEXCEPTIONS switch to turn on/off generation of the
      implicit exception frames for procedures with initialized variables
      and for constructors. The default is on for compatibility

  Revision 1.12  2002/10/05 12:43:24  carl
    * fixes for Delphi 6 compilation
     (warning : Some features do not work under Delphi)

  Revision 1.11  2002/09/30 07:00:45  florian
    * fixes to common code to get the alpha compiler compiled applied

  Revision 1.10  2002/09/29 23:19:05  florian
    + added define 64bit

  Revision 1.9  2002/09/07 15:25:02  peter
    * old logs removed and tabs fixed

  Revision 1.8  2002/08/30 13:42:29  mazen
  - undefining win32 when SPARC defined removed, no more needed.


  Revision 1.6  2002/08/19 18:17:48  carl
    + optimize64_op_const_reg implemented (optimizes 64-bit constant opcodes)
    * more fixes to m68k for 64-bit operations

  Revision 1.5  2002/08/15 15:11:53  carl
    * oldset define is now correct for all cpu's except i386
    * correct compilation problems because of the above

  Revision 1.4  2002/07/23 12:34:29  daniel
  * Readded old set code. To use it define 'oldset'. Activated by default
    for ppc.

  Revision 1.3  2002/07/04 18:56:50  florian
    + log added
}


syntax highlighted by Code2HTML, v. 0.9.1