⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c68.txt

📁 一款拥有一定历史的C语言编译器
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                        Default: -reg=yes

              -separate=yes|no
                        Determine whether  the compiler  should allocate
                        strings and constants in the same segment as the
                        code, or in a separate data segment.

                        Default:  -separate=no

              -stackcheck=yes|no
                        Specify whether  calls   should  be  made  to  a
                        support routine  to perform  stack checks at the
                        start of  each function.  To use this option, it
                        is necessary to have implemented the appropriate
                        (system dependent) support routine.

                        Default:  -stackcheck=no

              -stackopt=safest|minimum|average|maximum
                        Used to  control   whether   the   'lazy   stack
                        updating'  optimisation   is  to  be  used.  The
                        meanings of the various values are:

                        safest    Suppress this  level of  optimisation.
                                  It is advisable to suppress lazy stack
                                  optimisation  on  routines  which  are
                                  recursive in nature.  Failure to do so
                                  may  lead  to  excessive  stack  space
                                  being  required  to  successfully  run
                                  this program.

                        minimum   A certain amount  of  optimisation  is
                                  done, but  nothing that  is considered
                                  dangerous.  This is the safest mode of
                                  optimisation assuming  you allow  this
                                  type of optimisation at all.

                        average   Allow optimisation for functions whose
                                  name starts with an underscore.

                        maximum   Allow optimisation for functions whose
                                  name starts  with  an  underscore,  or
                                  which  are   called  via   a  function
                                  variable.  This  effectively optimises
                                  all function calls.

                        See the section  on optimisation  later in  this
                        document for  more detail on the implications of
                        the various settings for this optimisation.

                        Default:  -stackopt=minimum

              -trace=yes|no
                        Control  the   generation  of   run-time   trace
                        information.  Intended  in the  future  to  help
                        support a source code debugger.  However, at the
                        moment  this  capability  is  incomplete.   This
                        option is  only available  if the  compiler  was
                        built with  the TRACE  configuration option set.
                        The compiler  as normally supplied is not set to
                        have this option built in.

                        Default:  -trace=no

              -trans=yes|no
                        This option is  used if  you are  working  on  a
                        system which  can only  support symbols names of
                        limited length.   It allows  you to make certain
                        all names  in the  assembler output  are only  8
                        characters in  length (a  special  algorithm  is
                        used for names that are longer than this).  This
                        is used  if the  assembler phase  cannot  handle
                        long C  names.  Support  for this option is only
                        included if  the TRANSLATE  configuration option
                        was set  when the  compiler was  built.  As most
                        modern systems  can support  longer symbol names
                        we normally  omit support  for  this  option  in
                        binaries that are put on general distribution.

                        Default:  -trans=no


         MOTOROLA 68K OPTIONS

              The options  listed in  this section apply when generating
              code for  Motorola 68K  family of  processors.  They  will
              only  be   available  if  support  for  the  Motorola  68K
              processors was  specified at  the time  the  compiler  was
              built.

              -codemode=absolute|small|large
                        This option is  used to  tell the  compiler what
                        addressing modes  to use  for jump instructions.
                        The meanings of the options are:

                        absolute  Any generated  jump  instructions  use
                                  absolute addressing  mode.   Typically
                                  this means  that runtime relocation of
                                  the  generated  program  needs  to  be
                                  done.
                        small     Jump instructions  will  use  relative
                                  addressing modes  assuming the  'small
                                  model'.  This means that all target of
                                  jump instructions  are within a 16-bit
                                  displacement of  the source.   If  you
                                  set this  and it  turns out  not to be
                                  true you  will  almost  certainly  get
                                  errors when  you  try  and  link  your
                                  code.
                        large     Jump instructions  will  use  relative
                                  addressing modes  assuming the  'large
                                  model'  This means that all targets of
                                  jump instructions  are within a 32-bit
                                  displacement of the source (which will
                                  always be true).

                        Note that although  the small  and large options
                        generate   position    independent   code,   the
                        resulting   program   will   not   be   position
                        independent unless  any supplied  libraries  you
                        intend to  use have  also been  generated to use
                        this option,  and any  variables (that  are  not
                        auto  variables)  are  accessed  using  position
                        relative addressing.

                        Default:  -codemodel=absolute

              -datamodel=absolute|small|large
                        This option is  used to  tell the  compiler what
                        addressing modes  to use  for accessing  program
                        variables. The meanings of the options are:

                        absolute  Variables are  accessed using absolute
                                  mode.   Typically   this  means   that
                                  runtime relocation  of  the  generated
                                  program needs to be done.
                        small     Variables are  accessed  using  'small
                                  model' addressing.  This means  16-bit
                                  displacements   from    the   register
                                  specified in  the -regdata  parameter.
                                  If you  set this  and it turns out not
                                  to be  true you  will almost certainly
                                  get errors  when you try and link your
                                  code.
                        large     Variables are  accessed  using  'large
                                  model' addressing.   This means 32-bit
                                  displacements   from    the   register
                                  specified in the -regdata parameter.

                        Note that the  code generated  by the  small and
                        large options requires the address of a specific
                        external label  to be  loaded into  the register
                        specified  by  the  -regdata  parameter  as  all
                        addresses are  generated as  displacements  from
                        this label.   Typically  this  is  done  in  the
                        program start-up module.

                        Only change this option from the default if your
                        library supplier  tells you that you can, or you
                        are very sure you know what you are doing.  Also
                        there is  normally not  much to  be gained  from
                        using this  option unless any supplied libraries
                        you intend  to use  have also  been generated to
                        use this option.

                        Default:  -datamodel=absolute

              -fpu=yes|no
                        Specify whether  operations  involving  floating
                        point variables should generate in-line calls to
                        a hardware floating point unit, or whether calls
                        are made  instead to  library support  routines.
                        Using library  support routines  allows floating
                        point operations  to be  carried out  purely  in
                        software.

                        Default:  -fpu=no

              -fpureturn=yes|no
                        This option is used to tell the compiler whether
                        the library  routines  are  such  that  floating
                        point results  are returned  in the hardware FPU
                        registers, or  in normal  registers.   Note  you
                        should not  normally change  this value from the
                        default  unless   you  have   been  specifically
                        advised to do so.

                        Default:  -fpureturn=no

              -interrupt=yes|no
                        This option is  used to decide whether functions
                        should  be  terminated  with  a  RTS  or  a  RTE
                        instruction.   You  would want  a RTS  in normal
                        code, and a RTE in an interrupt handler.

                        The way that you   would most  likely  use  this
                        option is by  by using it with an inline #pragma
                        statement rather  than as a command line option.
                        In otherwords along the lines of:
                             #pragma interrupt=yes
                             void special_func()
                             {
                                  .... code for function
                             }
                             #pragma interrupt=no
                        This would have  the effect  of only  the single
                        function specified  having a  RTE instruction to
                        terminate it  with all  others having  an RTS as
                        the return instruction.

                        Default:  -interrupt=no

              -peep=none|peepopt_list|all
                        Control the  level of peephole optimisation that
                        should be  done. Past  experience has shown that
                        some of  the more  obscure bugs  reported on the
                        compiler are  those where the peephole optimiser
                        part  of   the  compiler  has  made  an  invalid
                        optimisation.   You  would  therefore  use  this
                        option if  you suspect  that  the  compiler  has
                        generated incorrect  code, and  you want to look
                        at what would be generated if some or all of the
                        the peephole optimisation was not done.

                        The meanings of the options are:

                        none      All peephole     optimisations     are
                                  suppressed.

                        all       All peephole     optimisations     are
                                  performed.

                        You can also exercise  a finer  level of control
                        by specifying  the exact combination of peephole
                        optimisations that  you want  from the following
                        options:
                        instruction    This controls whether instruction
                                  sequences should  be replaced  by more
                                  effecient combinations.

                        jumps     This     controls     whether     jump
                                  optimisation  should   be  used  which
                                  tries to  common up  re-occurring bits
                                  of  code.    This  normally   produces
                                  significant  size   savings   in   the

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -