end

下面的`-m'选项用于MIPS家族的电脑:

-mcpu=cpu-type

生成指令的时候,假设默认的机器类型是cpu-type .默认情况下的cpu-type是 defa
ult, GCC将选取任何机型上都是最长周期时间的指令,这样才能使代码在任何的MIP
S处理器上以合理 的速度运行. cpu-type的其他选择是r2000, r3000, r4000,和 r
6000.虽然选定某个cpu-type后, GCC将针对选定的芯片安排对应的工作,但是假如
不指定?? -mips2或-mips3选项,编译器不会输出任何不符合MIPS ISA (instructio
n set architecture)一级的代码.

-mips2

输出MIPS ISA二级指令(可能的扩展,如平方根指令). -mcpu=r4000或-mcpu=r6000
选项必须和-mips2联用.

-mips3

输出MIPS ISA三级指令(64位指令). -mcpu=r4000选项必须和-mips2联用. (译注:疑
为-mips3)

-mint64

-mlong64

-mlonglong128

这些选项现在不起作用.

-mmips-as

产生用于MIPS汇编器的代码,同时使用mips-tfile添加普通的调试信息.对于大多数
平台这是 默认选项,除了OSF/1参考平台,他使用OSF/rose目标格式.假如打开了任一
个-ggdb, -gstabs,或-gstabs 选项开关, mips-tfile程式就把stab封装在MIPS EC
OFF里面.

-mgas

产生用于GNU汇编器的代码.在OSF/1参考平台上这是默认选项,他使用OSF/rose目标
格式.

-mrnames

-mno-rnames

-mrnames开关选项告诉输出代码使用MIPS软件名称说明寄存器,而不是硬件名称(就
是说,用 a0代替). GNU汇编器不支持-mrnames选项,而MIPS汇编器则运行MIPS C预
处理器处理源文档. -mno-rnames是默认选项.

-mgpopt

-mno-gpopt

-mgpopt开关选项需要在正文段中把任何的数据声明写到指令前面,使各种MIPS汇编
器对短类型全局 或静态数据项(short global or static data items)输出单字内
存访问而不是双字内存访问.当打开编译优化 时,这是默认功能.

-mstats

-mno-stats

每次处理完非嵌入函数(non-inline function)后, -mstats开关选项使编译器向标
准错误文档 输出一行关于程式的统计资料(保存的寄存器数目,堆栈大小,等等).

-mmemcpy

-mno-memcpy

-mmemcpy开关选项使任何的块移动操作调用适当的string函数(memcpy或 bcopy),而
不是生成嵌入代码.

-mmips-tfile

-mno-mips-tfile

当MIPS汇编器生成mips-tfile文档(用于帮助调试)后, -mno-mips-tfile 开关选项
阻止编译器使用mips-tfile后期处理(postprocess)目标文档.不运行 mips-tfile就
没有调试器关注的局部变量.另外, stage2和stage3目标文档将把 临时文档名传递
给汇编器,嵌在目标文档中,这意味着不比较目标文档是否相同.

-msoft-float

输出包含浮点库调用. 警告: 所需库不是GNU CC的一部分.一般说来使用该机型本地
C编译器的相应部件, 但是不能直接用于交叉编译,您必须自己安排,提供交叉编译适
用的库函数.

-mhard-float

输出包含浮点指令.假如编译器没有被改变,这就是默认选项.

-mfp64

编译器认为状态字的FR置位(on),也就是说存在32 64-bit浮点寄存器,而不是32 32
-bit 浮点寄存器.同时必须打开-mcpu=r4000和-mips3开关.

-mfp32

认为存在32 32-bit浮点寄存器.这是默认选项.

-mabicalls

-mno-abicalls

输出(或不输出) .abicalls, .cpload,和.cprestore伪指令,某些 System V.4版本
用于位置无关代码.

-mhalf-pic

-mno-half-pic

-mhalf-pic开关选项需要把外部引用的指针放到数据段,并且载入内存,而不放到正
文段.该选项现在 不起作用.

-G num

把小于等于num字节的全局或静态数据放到小的数据段或bss段,而不是普通的数据段
或bss段. 这样汇编器能够输出基于全局指针(gp或Cool,的单字内存访问指令而非普
通的双字指令.默认情况下, 用MIPS汇编器时num是8,而GNU汇编器则为0.另外, -Gn
um选项也被传递 给汇编器和连接器.任何的模块必须在相同的-Gnum值下编译.

-nocpp

汇编用户汇编文档(带有`.s'后缀)时,告诉MIPS汇编器不要运行预处理器.

下面的`-m'选项用于Intel 80386族电脑: -m486

-mno-486

控制是否生成对486优化的代码.

-msoft-float

输出包含浮点库调用. 警告: 所需库不是GNU CC的一部分.一般说来使用该机型本地
C编译器的相应部件, 但是不能直接用于交叉编译,您必须自己安排,提供交叉编译适
用的库函数.

在函数把浮点返回值放在80387寄存器栈的机器上,即使配置了`-msoft-float'选项
,也可能会发出 一些浮点操作码.

-mno-fp-ret-in-387

不用FPU寄存器返回函数值.

通常函数调用约定把float和double的返回值放在FPU寄存器中,即使不存在FPU. 这
种作法的理念是操作系统应该仿真出FPU.

而`-mno-fp-ret-in-387'选项使浮点值通过普通的CPU寄存器返回.

下面的`-m'选项用于HPPA族电脑:

-mpa-risc-1-0

生成PA 1.0处理器的目标码.

-mpa-risc-1-1

生成PA 1.1处理器的目标码.

-mkernel

生成适用于内核的目标码.特别要避免add指令,他有一个参数是DP寄存器;用addil

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!