AVRGCC中文手册.doc
《AVRGCC中文手册.doc》由会员分享,可在线阅读,更多相关《AVRGCC中文手册.doc(10页珍藏版)》请在三一办公上搜索。
1、msvr3 打开(-msvr4)或关闭(-msvr3)和SystemV第四版(SVr4)相关的编译器扩展.效果如下: * 输出哪种汇编语法(你可以使用-mversion-03.00选项单独选择). * -msvr4使C预处理器识别#pragmaweak指令 * -msvr4使GCC输出额外的声明指令(declarationdirective),用于SVr4. 除了SVr4配置,-msvr3是所有m88K配置的默认选项. -mtrap-large-shift -mhandle-large-shift 包含一些指令,用于检测大于31位的位移(bit-shift);根据相应的选项,对这样的位移发出自
2、陷(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
3、不会发出警告. 下面的选项用于IBMRS6000: -mfp-in-toc -mno-fp-in-toc 控制是否把浮点常量放到内容表(TOC)中,内容表存放所有的全局变量和函数地址.默认情况下,GCC把浮点常量放到这里;如果TOC溢出,-mno-fp-in-toc选项能够减少TOC的大小,这样就可以避免溢出. 下面的-m选项用于IBMRTPC: -min-line-mul 对于整数乘法使用嵌入代码.这是默认选项. -mcall-lib-mul 对于整数乘法使用lmul$. -mfull-fp-blocks 生成全尺寸浮点数据块,包括IBM建议的最少数量的活动空间(scratchspace).
4、这是默认选项. -mminimum-fp-blocks 不要在浮点数据块中包括额外的活动空间.这样就产生较小但是略慢的可执行程序,因为活动空间必须动态分配. -mfp-arg-in-fpregs 采用不兼容IBM调用约定的调用序列,通过浮点寄存器传送浮点参数.注意,如果指定了这个选项,varargs.h和stdargs.h将无法支持浮点单元. -mfp-arg-in-gregs 使用正常的调用约定处理浮点参数.这是默认选项. -mhc-struct-return 通过内存返回大于一个字的结构,而不是通过寄存器.用于兼容MetaWareHighC(hc)编译器.使用-fpcc-struct-re
5、turn选项可以兼容PortableC编译器(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,r3
6、000,r4000,和 r6000.虽然选定某个cpu-type后,GCC将针对选定的芯片安排对应的工作,但是如果不指定?-mips2或-mips3选项,编译器不会输出任何不符合MIPSISA(instructionsetarchitecture)一级的代码. -mips2 输出MIPSISA二级指令(可能的扩展,如平方根指令).-mcpu=r4000或-mcpu=r6000选项必须和-mips2联用. -mips3 输出MIPSISA三级指令(64位指令).-mcpu=r4000选项必须和-mips2联用.(译注:疑为-mips3) -mint64 -mlong64 -mlonglong12
7、8 这些选项目前不起作用. -mmips-as 产生用于MIPS汇编器的代码,同时使用mips-tfile添加普通的调试信息.对于大多数平台这是默认选项,除了OSF/1参考平台,它使用 OSF/rose目标格式.如果打开了任一个-ggdb,-gstabs,或-gstabs+选项开关,mips-tfile程序就把stab封装在 MIPSECOFF里面. -mgas 产生用于GNU汇编器的代码.在OSF/1参考平台上这是默认选项,它使用OSF/rose目标格式. -mrnames -mno-rnames -mrnames开关选项告诉输出代码使用MIPS软件名称说明寄存器,而不是硬件名称(就是说,用
8、a0代替$4).GNU汇编器不支持-mrnames选项,而MIPS汇编器则运行MIPSC预处理器处理源文件.-mno-rnames是默认选项. -mgpopt -mno-gpopt -mgpopt开关选项要求在正文段中把所有的数据声明写到指令前面,使各种MIPS汇编器对短类型全局或静态数据项(shortglobalorstaticdataitems)输出单字内存访问而不是双字内存访问.当打开编译优化时,这是默认功能. -mstats -mno-stats 每次处理完非嵌入函数(non-inlinefunction)后,-mstats开关选项使编译器向标准错误文件输出一行关于程序的统计资料(保存
9、的寄存器数目,堆栈大小,等等). -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目标文件将把临时文件名传递给汇编器,嵌在目标文件中,这意味着不比较目标文件是
10、否相同. -msoft-float 输出包含浮点库调用.警告:所需库不是GNUCC的一部分.一般说来使用该机型本地C编译器的相应部件,但是不能直接用于交叉编译,你必须自己安排,提供交叉编译适用的库函数. -mhard-float 输出包含浮点指令.如果编译器没有被改动,这就是默认选项. -mfp64 编译器认为状态字的FR置位(on),也就是说存在3264-bit浮点寄存器,而不是3232-bit浮点寄存器.同时必须打开-mcpu=r4000和-mips3开关. -mfp32 认为存在3232-bit浮点寄存器.这是默认选项. -mabicalls -mno-abicalls 输出(或不输出)
11、.abicalls,.cpload,和.cprestore伪指令,某些SystemV.4版本用于位置无关代码. -mhalf-pic -mno-half-pic -mhalf-pic开关选项要求把外部引用的指针放到数据段,并且载入内存,而不放到正文段.该选项目前不起作用. -Gnum 把小于等于num字节的全局或静态数据放到小的数据段或bss段,而不是普通的数据段或bss段.这样汇编器可以输出基于全局指针(gp或$28),的单字内存访问指令而非普通的双字指令.默认情况下,用MIPS汇编器时num是8,而GNU汇编器则为0.另外,-Gnum选项也被传递给汇编器和连接器.所有的模块必须在相同的-G
12、num值下编译. -nocpp 汇编用户汇编文件(带有.s后缀)时,告诉MIPS汇编器不要运行预处理器. 下面的-m选项用于Intel80386族计算机:-m486 -mno-486 控制是否生成对486优化的代码. -msoft-float 输出包含浮点库调用.警告:所需库不是GNUCC的一部分.一般说来使用该机型本地C编译器的相应部件,但是不能直接用于交叉编译,你必须自己安排,提供交叉编译适用的库函数. 在函数把浮点返回值放在80387寄存器栈的机器上,即使设置了-msoft-float选项,也可能会发出一些浮点操作码. -mno-fp-ret-in-387 不用FPU寄存器返回函数值.
13、通常函数调用约定把float和double的返回值放在FPU寄存器中,即使不存在FPU.这种作法的理念是操作系统应该仿真出FPU. 而-mno-fp-ret-in-387选项使浮点值通过普通的CPU寄存器返回. 下面的-m选项用于HPPA族计算机: -mpa-risc-1-0 生成PA1.0处理器的目标码. -mpa-risc-1-1 生成PA1.1处理器的目标码. -mkernel 生成适用于内核的目标码.特别要避免add指令,它有一个参数是DP寄存器;用addil代替add指令.这样可以避免HP-UX连接器的某个严重bug. -mshared-libs 生成能够连接HP-UX共享库的目标码
14、.该选项还没有实现全部功能,对PA目标默认为关闭.使用这个选项会导致编译器生成错误的目标码. -mno-shared-libs 不生成连接HP-UX共享库的目标码.这是PA目标的默认选项. -mlong-calls 生成的目标码允许同一个源文件中的函数调用,调用点和被调函数的距离可以超过256K之远.不需要打开这个开关选项,除非连接器给出branchoutofrangeerrors这样的错误. -mdisable-fpregs 防止任何情况下使用浮点寄存器.编译内核需要这个选项,内核切换浮点寄存器的执行环境速度非常缓慢.如果打开了这个开关选项同时试图浮点操作,编译将失败. -mdisable-
15、indexing 防止编译器使用索引地址模式(indexingaddressmode).这样在MACH上编译MIG生成的代码时,可以避免一些非常晦涩的问题. -mtrailing-colon 在标记定义(labeldefinition)的末尾添加一个冒号(用于ELF汇编器). 下面的-m选项用于Intel80960族计算机: -mcpu-type 默认机器类型为cpu-type,使编译器产生对应的指令,地址模式和内存对齐.默认的cpu-type是kb;其他选择有ka,mc,ca,cf,sa,和sb. -mnumerics -msoft-float -mnumerics开关选项指出处理器不支持浮
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVRGCC 中文 手册

链接地址:https://www.31ppt.com/p-2392427.html