GCC 中文手册(下)
-msvr4
-
-msvr3
- 打开 (`-msvr4') 或关闭 (`-msvr3') 和 System V 第四版 (SVr4) 相关的 编译器扩展 . 效果如下 : *
- 输出哪种汇编语法 ( 你可以使用 `-mversion-03.00' 选项单独选择 ). *
- `-msvr4' 使 C 预处理器识别 `#pragma weak' 指令 *
- `-msvr4' 使 GCC 输出额外的声明指令 (declaration directive), 用于 SVr4.
除了SVr4配置, `-msvr3'是所有m88K配置的默认选项.
-
-mtrap-large-shift
- -mhandle-large-shift
- 包含一些指令 , 用于检测大于 31 位的位移 (bit-shift); 根据相应的选项 , 对这样的位移发出自陷 (trap) 或执行适当的处理代码 . 默认情况下 , GCC 对大位移不做特别处理 . -muse-div-instruction
- 很早以前的 88K 型号没有 (div) 除法指令 , 因此默认情况下 GCC 避免产生这条指令 . 而这个选项告诉 GCC 该指令是 安全的 . -mversion-03.00
- 在 DG/UX 配置中存在两种风格的 SVr4. 这个选项修改 -msvr4 , 选择 hybrid-COFF 或 real-ELF 风格 . 其他配置均忽略该选项 . -mwarn-passed-structs
- 如果某个函数把结构当做参数或结果传递 , GCC 发出警告 . 随着 C 语言的发展 , 人们已经改变了传递结构的约定 , 它往往导致移植问题 . 默认情况下 , GCC 不会发出警告 .
下面的选项用于IBM RS6000:
-mfp-in-toc
-
-mno-fp-in-toc
- 控制是否把浮点常量放到内容表 (TOC) 中 , 内容表存放所有的全局变量和函数地址 . 默认情况下 , GCC 把浮点常量放到 这里 ; 如果 TOC 溢出 , `-mno-fp-in-toc' 选项能够减少 TOC 的大小 , 这样就可以避免溢出 .
下面的`-m'选项用于IBM RT PC:
-
-min-line-mul
- 对于整数乘法使用嵌入代码 . 这是默认选项 . -mcall-lib-mul
- 对于整数乘法使用 lmul$$ . -mfull-fp-blocks
- 生成全尺寸浮点数据块 , 包括 IBM 建议的最少数量的活动空间 (scratch space). 这是默认选项 . -mminimum-fp-blocks
- 不要在浮点数据块中包括额外的活动空间 . 这样就产生较小但是略慢的可执行程序 , 因为活动空间必须动态分配 . -mfp-arg-in-fpregs
- 采用不兼容 IBM 调用约定的调用序列 , 通过浮点寄存器传送浮点参数 . 注意 , 如果指定了这个选项 , varargs.h 和 stdargs.h 将无法支持浮点单元 . -mfp-arg-in-gregs
- 使用正常的调用约定处理浮点参数 . 这是默认选项 . -mhc-struct-return
- 通过内存返回大于一个字的结构 , 而不是通过寄存器 . 用于兼容 MetaWare HighC (hc) 编译器 . 使用 `-fpcc-struct-return' 选项可以兼容 Portable C 编译器 (pcc). -mnohc-struct-return
- 如果可以 , 通过寄存器返回某些大于一个字的结构 . 这是默认选项 . 如果打算兼容 IBM 提供的编译器 , 请使用 `-fpcc-struct-return' 或 `-mhc-struct-return' 选项 .
下面的`-m'选项用于MIPS家族的计算机:
-
-mcpu=cpu-type
- 生成指令的时候 , 假设默认的机器类型是 cpu-type . 默认情况下的 cpu-type 是 default, GCC 将选取任何机型上都是最长周期时间的指令 , 这样才能使代码在所有的 MIPS 处理器上以合理 的速度运行 . cpu-type 的其他选择是 r2000, r3000, r4000, 和 r6000. 虽然选定某个 cpu-type 后 , GCC 将针对选定的芯片安排对应的工作 , 但是如果 不指定 ?? -mips2 或 -mips3 选项 , 编译器不会输出任何不符合 MIPS ISA (instruction set architecture) 一级的代码 . -mips2
- 输出 MIPS ISA 二级