-mgnu
如果使用GNU汇编器,则输出那些跳转指令,
-mg
输出g-format浮点数,取代d-format.
下面是SPARC支持的`-m'选项开关:
-mfpu
-mhard-float
输出包含浮点指令的目标码.这是缺省选项.
-mno-fpu
-msoft-float
输出包含浮点库调用的目标码. 警告:没有为SPARC提供GNU浮点库.一般说来使用该机型本地C编译器 的相应部件,但是不能直接用于交叉编译.你必须自己安排,提供用于交叉编译的库函数.
-msoft-float改变了输出文件中的调用约定;因此只有用这个选项编译整个程序才有意义.
-mno-epilogue
-mepilogue
使用-mepilogue (缺省)选项时,编译器总是把函数的退出代码放在函数的尾部.任何在函数中间 的退出语句(例如C中的return语句)将产生出跳转指令指向函数尾部.
使用-mno-epilogue选项时,编译器尽量在每个函数退出点嵌入退出代码.
-mno-v8
-mv8
-msparclite
这三个选项选择不同种类的SPARC系统.
默认情况下(除非特别为Fujitsu SPARClite配置), GCC生成SPARC v7目标码.
-mv8生成SPARC v8目标码.他和v7目标码唯一的区别是,编译器生成整数乘法和整数除法指令, SPARC v8支持该指令,而v7体系不支持.
-msparclite生成SPARClite目标码.增加了SPARClite支持的整数乘法,整数除法单步扫描 (integer divide step and scan (ffs))指令. v7体系不支持这些指令.
-mcypress
-msupersparc
这两个选项选择处理器型号,针对处理器进行代码优化.
-mcypress选项(默认项)使编译器对Cypress CY7C602芯片优化代码, SparcStation/SparcServer 3xx系列使用这种芯片.该选项也适用于老式的SparcStation 1, 2, IPX 等机型..
-msupersparc选项使编译器对SuperSparc处理器优化代码, SparcStation 10, 1000 和2000系列使用这种芯片.同时该选项启用完整的SPARC v8指令集.
下面是针对Convex定义的`-m'选项:
-mc1
输出C1的目标码.当编译器对C1配置时,这是默认选项.
-mc2
输出C2的目标码.当编译器对C2配置时,这是默认选项.
-margcount
在每个参数列表的前面放置一个参数计数字(argument count word).某些不可移植的Convex和Vax 程序需要这个参数计数字. (调试器不需要他,除非函数带有变长参数列表;这个信息存放在符号表中.)
-mnoargcount
忽略参数计数字.如果你使用未改装的gcc,这是默认选项.
下面是针对AMD Am29000定义的`-m'选项:
-mdw
生成的目标码认为DW置位,就是说,字节和半字操作由硬件直接支持.该选项是默认选项.
-mnodw
生成的目标码认为DW没有置位.
-mbw
生成的目标码认为系统支持字节和半字写操作.该选项是默认选项.
-mnbw
生成的目标码认为系统不支持字节和半字写操作.该选项隐含开启了`-mnodw'选项.
-msmall
使用小内存模式,小内存模式假设所有函数的地址位于某个256 KB段内,或者所有函数的绝对地址小于256K.这样 就可以用call指令代替const, consth, calli指令序列.
-mlarge
假设不能使用call指令;这是默认选项.
-m29050
输出Am29050的目标码.
-m29000
输出Am29000的目标码.这是默认选项.
-mkernel-registers
生成的目标码引用gr64-gr95寄存器而不是gr96-gr127寄存器.该选项可以用于编译 内核代码,内核需要一组全局寄存器,这些全局寄存器和用户模式使用的寄存器完全无关.





