• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            chaosuper85

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              118 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

            GCC 4

            Section: GNU Tools (1)
            Updated: 2003/12/05

            機(jī)器相關(guān)選項(xiàng)(MACHINE DEPENDENT OPTION)

            每一種目標(biāo)機(jī)型都有自己的特別選項(xiàng),這些選項(xiàng)用`-m '開關(guān)引導(dǎo),選擇不同的硬件型號或配置---例如, 68010還是68020,有沒有浮點(diǎn)協(xié)處理器.通過指定選項(xiàng),安裝 編譯器的一個(gè)版本能夠?yàn)樗械男吞柣蚺渲眠M(jìn)行編譯.

            此外,編譯器的某些配置支持附加的特殊選項(xiàng),通常是為了在命令行上兼容這個(gè)平臺(tái)的其他編譯器.

            下面是針對68000系列定義的`-m'選項(xiàng):

            -m68000
            -mc68000
            輸出68000的目標(biāo)碼.如果編譯器按基于68000的系統(tǒng)配置,這個(gè)選項(xiàng)就是缺省選項(xiàng).

             

            -m68020
            -mc68020
            輸出68020的目標(biāo)碼(而不是68000).如果編譯器按基于68020的系統(tǒng)配置,這個(gè)選項(xiàng)就是缺省選項(xiàng).

             

            -m68881
            輸出包含68881浮點(diǎn)指令的目標(biāo)碼.對于大多數(shù)基于68020的系統(tǒng)這是缺省選項(xiàng),除非設(shè)置編譯器時(shí)指定了 -nfp .

             

            -m68030
            輸出68030的目標(biāo)碼.如果編譯器按基于68030的系統(tǒng)配置,這個(gè)選項(xiàng)就是缺省選項(xiàng).

             

            -m68040
            輸出68040的目標(biāo)碼.如果編譯器按基于68040的系統(tǒng)配置,這個(gè)選項(xiàng)就是缺省選項(xiàng).

             

            -m68020-40
            輸出68040的目標(biāo)碼,但是不使用新指令.生成的代碼可以在68020/68881,也可以在6803068040上較有效地運(yùn)行.

             

            -mfpa
            輸出包含SUN FPA浮點(diǎn)指令的目標(biāo)碼.

             

            -msoft-float
            輸出包含浮點(diǎn)庫調(diào)用的目標(biāo)碼. 警告:所需的庫不是GNU CC的組成部分.一般說來GCC使用該機(jī)型本地C 編譯器的相應(yīng)部件,但是作交叉編譯時(shí)卻不能直接使用.你必須自己管理提供合適的函數(shù)庫用于交叉編譯.

             

            -mshort
            認(rèn)為int類型是16位寬,相當(dāng)于short int.

             

            -mnobitfield
            不使用位域(bit-field)指令. `-m68000'隱含指定了`-mnobitfield'.

             

            -mbitfield
            使用位域指令. `-m68020'隱含指定了`-mbitfield'.如果你使用未改裝的gcc,這就是 默認(rèn)選項(xiàng).

             

            -mrtd
            采用另一種函數(shù)調(diào)用約定,函數(shù)接受固定數(shù)目的參數(shù),rtd指令返回,該指令返回時(shí)彈出棧內(nèi)的參數(shù).這個(gè) 方法能夠使調(diào)用者節(jié)省一條指令,因?yàn)樗@里不需要彈出參數(shù).

            這種調(diào)用約定不兼容UNIX的正常調(diào)用.因此如果你需要調(diào)用UNIX編譯器編譯的庫函數(shù),你就不能使用這個(gè)選項(xiàng).

            此外,所有參數(shù)數(shù)量可變地函數(shù)必須提供函數(shù)原型(包括printf);否則編譯器會(huì)生成錯(cuò)誤的調(diào)用代碼.

            另外,如果調(diào)用函數(shù)時(shí)攜帶了過多的參數(shù),編譯器將生成嚴(yán)重錯(cuò)誤的代碼. (正常情況下,多余的參數(shù)被安全無害的忽略.)

            6801068020處理器支持rtd指令,但是68000不支持.

             

            下面是針對VAX定義的`-m'選項(xiàng):

            -munix
            禁止輸出某些跳轉(zhuǎn)指令(aobleq等等), VAXUNIX匯編器無法跨越長范圍(long ranges) 進(jìn)行處理.

             

            -mgnu
            如果使用GNU匯編器,則輸出那些跳轉(zhuǎn)指令,

             

            -mg
            輸出g-format浮點(diǎn)數(shù),取代d-format.

             

            下面是SPARC支持的`-m'選項(xiàng)開關(guān):

            -mfpu

            -mhard-float
            輸出包含浮點(diǎn)指令的目標(biāo)碼.這是缺省選項(xiàng).

             

            -mno-fpu

            -msoft-float
            輸出包含浮點(diǎn)庫調(diào)用的目標(biāo)碼. 警告:沒有為SPARC提供GNU浮點(diǎn)庫.一般說來使用該機(jī)型本地C編譯器 的相應(yīng)部件,但是不能直接用于交叉編譯.你必須自己安排,提供用于交叉編譯的庫函數(shù).

            -msoft-float改變了輸出文件中的調(diào)用約定;因此只有用這個(gè)選項(xiàng)編譯整個(gè)程序才有意義.

             

            -mno-epilogue

            -mepilogue
            使用-mepilogue (缺省)選項(xiàng)時(shí),編譯器總是把函數(shù)的退出代碼放在函數(shù)的尾部.任何在函數(shù)中間 的退出語句(例如C中的return語句)將產(chǎn)生出跳轉(zhuǎn)指令指向函數(shù)尾部.

            使用-mno-epilogue選項(xiàng)時(shí),編譯器盡量在每個(gè)函數(shù)退出點(diǎn)嵌入退出代碼.

             

            -mno-v8

            -mv8
            -msparclite
            這三個(gè)選項(xiàng)選擇不同種類的SPARC系統(tǒng).

            默認(rèn)情況下(除非特別為Fujitsu SPARClite配置), GCC生成SPARC v7目標(biāo)碼.

            -mv8生成SPARC v8目標(biāo)碼.他和v7目標(biāo)碼唯一的區(qū)別是,編譯器生成整數(shù)乘法和整數(shù)除法指令, SPARC v8支持該指令,v7體系不支持.

            -msparclite生成SPARClite目標(biāo)碼.增加了SPARClite支持的整數(shù)乘法,整數(shù)除法單步掃描 (integer divide step and scan (ffs))指令. v7體系不支持這些指令.

             

            -mcypress

            -msupersparc
            這兩個(gè)選項(xiàng)選擇處理器型號,針對處理器進(jìn)行代碼優(yōu)化.

            -mcypress選項(xiàng)(默認(rèn)項(xiàng))使編譯器對Cypress CY7C602芯片優(yōu)化代碼, SparcStation/SparcServer 3xx系列使用這種芯片.該選項(xiàng)也適用于老式的SparcStation 1, 2, IPX 等機(jī)型..

            -msupersparc選項(xiàng)使編譯器對SuperSparc處理器優(yōu)化代碼, SparcStation 10, 1000 2000系列使用這種芯片.同時(shí)該選項(xiàng)啟用完整的SPARC v8指令集.

             

            下面是針對Convex定義的`-m'選項(xiàng):

            -mc1
            輸出C1的目標(biāo)碼.當(dāng)編譯器對C1配置時(shí),這是默認(rèn)選項(xiàng).
            -mc2
            輸出C2的目標(biāo)碼.當(dāng)編譯器對C2配置時(shí),這是默認(rèn)選項(xiàng).
            -margcount
            在每個(gè)參數(shù)列表的前面放置一個(gè)參數(shù)計(jì)數(shù)字(argument count word).某些不可移植的ConvexVax 程序需要這個(gè)參數(shù)計(jì)數(shù)字. (調(diào)試器不需要他,除非函數(shù)帶有變長參數(shù)列表;這個(gè)信息存放在符號表中.)

             

            -mnoargcount
            忽略參數(shù)計(jì)數(shù)字.如果你使用未改裝的gcc,這是默認(rèn)選項(xiàng).

             

            下面是針對AMD Am29000定義的`-m'選項(xiàng):

            -mdw
            生成的目標(biāo)碼認(rèn)為DW置位,就是說,字節(jié)和半字操作由硬件直接支持.該選項(xiàng)是默認(rèn)選項(xiàng).
            -mnodw
            生成的目標(biāo)碼認(rèn)為DW沒有置位.
            -mbw
            生成的目標(biāo)碼認(rèn)為系統(tǒng)支持字節(jié)和半字寫操作.該選項(xiàng)是默認(rèn)選項(xiàng).
            -mnbw
            生成的目標(biāo)碼認(rèn)為系統(tǒng)不支持字節(jié)和半字寫操作.該選項(xiàng)隱含開啟了`-mnodw'選項(xiàng).
            -msmall
            使用小內(nèi)存模式,小內(nèi)存模式假設(shè)所有函數(shù)的地址位于某個(gè)256 KB段內(nèi),或者所有函數(shù)的絕對地址小于256K.這樣 就可以用call指令代替const, consth, calli指令序列.
            -mlarge
            假設(shè)不能使用call指令;這是默認(rèn)選項(xiàng).
            -m29050
            輸出Am29050的目標(biāo)碼.
            -m29000
            輸出Am29000的目標(biāo)碼.這是默認(rèn)選項(xiàng).
            -mkernel-registers
            生成的目標(biāo)碼引用gr64-gr95寄存器而不是gr96-gr127寄存器.該選項(xiàng)可以用于編譯 內(nèi)核代碼,內(nèi)核需要一組全局寄存器,這些全局寄存器和用戶模式使用的寄存器完全無關(guān).

            注意,使用這個(gè)選項(xiàng)時(shí), `-f'選項(xiàng)中的寄存器名字必須是normal, user-mode, names.

             

            -muser-registers
            使用普通全局寄存器集gr96-gr127.這是默認(rèn)選項(xiàng).
            -mstack-check
            在每次堆棧調(diào)整后插入一條__msp_check調(diào)用.這個(gè)選項(xiàng)常用于內(nèi)核代碼.

             

            下面是針對Motorola 88K體系定義的`-m'選項(xiàng):

            -m88000
            生成的目標(biāo)碼可以在m88100m88110上正常工作.
            -m88100
            生成的目標(biāo)碼在m88100上工作的最好,但也可以在m88110上運(yùn)行.
            -m88110
            生成的目標(biāo)碼在m88110上工作的最好,可能不能在m88100上運(yùn)行.
            -midentify-revision
            在匯編器的輸出端包含一條ident指令,記錄源文件名,編譯器名字和版本,時(shí)標(biāo),以及使用的編譯選項(xiàng),
            -mno-underscores
            在匯編器的輸出端,符號名字前面不添加下劃線.默認(rèn)情況是在每個(gè)名字前面增加下劃線前綴.
            -mno-check-zero-division
            -mcheck-zero-division
            早期型號的88K系統(tǒng)在除零操作上存在問題,特定情況下許多機(jī)器無法自陷.使用這些選項(xiàng)可以避免包含(或可以 顯明包含)附加的代碼,這些代碼能夠檢查除零錯(cuò),發(fā)送例外信號. GCC所有88K的配置默認(rèn)使用 `-mcheck-zero-division'選項(xiàng).
            -mocs-debug-info
            -mno-ocs-debug-info
            包含(或忽略)附加的調(diào)試信息(關(guān)于每個(gè)棧架結(jié)構(gòu)中寄存器的使用), 88Open Object Compatibility Standard, ``OCS'',對此信息做了說明. GDB不需要這些額外信息. DG/UX, SVr4,Delta 88 SVr3.2的默認(rèn)配置是包含調(diào)試信息,其他88k機(jī)型的默認(rèn)配置是忽略這個(gè)信息.
            -mocs-frame-position
            -mno-ocs-frame-position
            強(qiáng)制(或不要求)把寄存器值存儲(chǔ)到棧架結(jié)構(gòu)中的指定位置(OCS的說明). DG/UX, Delta88 SVr3.2BCS的默認(rèn)配置使用`-mocs-frame-position'選項(xiàng);其他88k機(jī)型的默認(rèn)配置是 `-mno-ocs-frame-position'.
            -moptimize-arg-area
            -mno-optimize-arg-area
            控制如何在堆棧結(jié)構(gòu)中存儲(chǔ)函數(shù)參數(shù). `-moptimize-arg-area'節(jié)省空間,但是有可能宕掉某些 調(diào)試器(不是GDB). `-mno-optimize-arg-area'證實(shí)比標(biāo)準(zhǔn)選項(xiàng)好.默認(rèn)情況下GCC不優(yōu)化參數(shù)域.

             

            -mshort-data-
            num通過和r0關(guān)聯(lián),產(chǎn)生較小的數(shù)據(jù)引用(data reference),這樣就可以用單指令調(diào)入 一個(gè)數(shù)值(而不是平常的雙指令).用戶通過選項(xiàng)中的num控制改變哪種數(shù)據(jù)引用.例如,如果你指定了 `-mshort-data-512',那么受影響的數(shù)據(jù)引用是小于512字節(jié)的數(shù)據(jù)移動(dòng). -mshort-data-num選項(xiàng)對大于64Knum 無效.

             

            -mserialize-volatile

            -mno-serialize-volatile
            產(chǎn)生,或不產(chǎn)生代碼來保證對易變內(nèi)存訪問的結(jié)果一致.

            對于常用的處理器子型號, GNU CC始終默認(rèn)保證這種一致性.如何實(shí)現(xiàn)結(jié)果一致取決于處理器子型號.

            m88100處理器不對內(nèi)存引用重新安排,因此訪問結(jié)果始終一致.如果使用了`-m88100'選項(xiàng), GNU CC 不產(chǎn)生任何針對結(jié)果一致的特別指令.

            m88110處理器的內(nèi)存引用順序并不始終符合指令請求的引用順序.特別是某條讀取指令可能在先前的存儲(chǔ)指令之前執(zhí)行. 多處理器環(huán)境下,亂序訪問擾亂了易變內(nèi)存訪問的結(jié)果一致.因此當(dāng)使用`-m88000'`-m88110' 選項(xiàng)時(shí), GNU CC在適當(dāng)?shù)臅r(shí)候產(chǎn)生特別的指令迫使執(zhí)行順序正確.

            這些用于保證一致性的額外代碼有可能影響程序的性能.如果你確認(rèn)能夠安全地放棄這種保證,你可以使用 `-mno-serialize-volatile'選項(xiàng).

            如果你使用`-m88100'選項(xiàng),但是需要在m88110處理器上運(yùn)行時(shí)的結(jié)果一致,你應(yīng)該加上 `-mserialize-volatile'選項(xiàng).

             

            -msvr4

            -msvr3
            打開(`-msvr4')或關(guān)閉(`-msvr3')System V第四版(SVr4)相關(guān)的 編譯器擴(kuò)展.效果如下:
               *
            輸出哪種匯編語法(你可以使用`-mversion-03.00'選項(xiàng)單獨(dú)選擇).
               *
            `-msvr4'使C預(yù)處理器識(shí)別`#pragma weak'指令
               *
            `-msvr4'使GCC輸出額外的聲明指令(declaration directive),用于SVr4.

            除了SVr4配置, `-msvr3'是所有m88K配置的默認(rèn)選項(xiàng).

            -mtrap-large-shift
            -mhandle-large-shift
            包含一些指令,用于檢測大于31位的位移(bit-shift);根據(jù)相應(yīng)的選項(xiàng),對這樣的位移發(fā)出自陷 (trap)或執(zhí)行適當(dāng)?shù)奶幚泶a.默認(rèn)情況下, GCC對大位移不做特別處理.

             

            -muse-div-instruction
            很早以前的88K型號沒有(div)除法指令,因此默認(rèn)情況下GCC避免產(chǎn)生這條指令.而這個(gè)選項(xiàng)告訴GCC該指令是 安全的.

             

            -mversion-03.00
            DG/UX配置中存在兩種風(fēng)格的SVr4.這個(gè)選項(xiàng)修改-msvr4 ,選擇hybrid-COFFreal-ELF風(fēng)格.其他配置均忽略該選項(xiàng).

             

            -mwarn-passed-structs
            如果某個(gè)函數(shù)把結(jié)構(gòu)當(dāng)做參數(shù)或結(jié)果傳遞, GCC發(fā)出警告.隨著C語言的發(fā)展,人們已經(jīng)改變了傳遞結(jié)構(gòu)的約定, 它往往導(dǎo)致移植問題.默認(rèn)情況下, GCC不會(huì)發(fā)出警告.

             

            下面的選項(xiàng)用于IBM RS6000:

            -mfp-in-toc

            -mno-fp-in-toc
            控制是否把浮點(diǎn)常量放到內(nèi)容表(TOC),內(nèi)容表存放所有的全局變量和函數(shù)地址.默認(rèn)情況下, GCC把浮點(diǎn)常量放到 這里;如果TOC溢出, `-mno-fp-in-toc'選項(xiàng)能夠減少TOC的大小,這樣就可以避免溢出.

             

            下面的`-m'選項(xiàng)用于IBM RT PC:

            -min-line-mul
            對于整數(shù)乘法使用嵌入代碼.這是默認(rèn)選項(xiàng).
            -mcall-lib-mul
            對于整數(shù)乘法使用lmul$$ .
            -mfull-fp-blocks
            生成全尺寸浮點(diǎn)數(shù)據(jù)塊,包括IBM建議的最少數(shù)量的活動(dòng)空間(scratch space).這是默認(rèn)選項(xiàng).
            -mminimum-fp-blocks
            不要在浮點(diǎn)數(shù)據(jù)塊中包括額外的活動(dòng)空間.這樣就產(chǎn)生較小但是略慢的可執(zhí)行程序,因?yàn)榛顒?dòng)空間必須動(dòng)態(tài)分配.
            -mfp-arg-in-fpregs
            采用不兼容IBM調(diào)用約定的調(diào)用序列,通過浮點(diǎn)寄存器傳送浮點(diǎn)參數(shù).注意,如果指定了這個(gè)選項(xiàng), varargs.hstdargs.h將無法支持浮點(diǎn)單元.

             

            -mfp-arg-in-gregs
            使用正常的調(diào)用約定處理浮點(diǎn)參數(shù).這是默認(rèn)選項(xiàng).

             

            -mhc-struct-return
            通過內(nèi)存返回大于一個(gè)字的結(jié)構(gòu),而不是通過寄存器.用于兼容MetaWare HighC (hc)編譯器.使用 `-fpcc-struct-return'選項(xiàng)可以兼容Portable C編譯器(pcc).

             

            -mnohc-struct-return
            如果可以,通過寄存器返回某些大于一個(gè)字的結(jié)構(gòu).這是默認(rèn)選項(xiàng).如果打算兼容IBM提供的編譯器,請使用 `-fpcc-struct-return'`-mhc-struct-return'選項(xiàng).

             

            下面的`-m'選項(xiàng)用于MIPS家族的計(jì)算機(jī):

            -mcpu=cpu-type
            生成指令的時(shí)候,假設(shè)默認(rèn)的機(jī)器類型是cpu-type .默認(rèn)情況下的cpu-typedefault, GCC將選取任何機(jī)型上都是最長周期時(shí)間的指令,這樣才能使代碼在所有的MIPS處理器上以合理 的速度運(yùn)行. cpu-type的其他選擇是r2000, r3000, r4000,r6000.雖然選定某個(gè)cpu-type, GCC將針對選定的芯片安排對應(yīng)的工作,但是如果 不指定?? -mips2-mips3選項(xiàng),編譯器不會(huì)輸出任何不符合MIPS ISA (instruction set architecture)一級的代碼.

             

            -mips2
            輸出MIPS ISA二級指令(可能的擴(kuò)展,如平方根指令). -mcpu=r4000-mcpu=r6000 選項(xiàng)必須和-mips2聯(lián)用.

             

            -mips3
            輸出MIPS ISA三級指令(64位指令). -mcpu=r4000選項(xiàng)必須和-mips2聯(lián)用. (譯注:疑為-mips3)

             

            -mint64
            -mlong64
            -mlonglong128
            這些選項(xiàng)目前不起作用.

             

            -mmips-as
            產(chǎn)生用于MIPS匯編器的代碼,同時(shí)使用mips-tfile添加普通的調(diào)試信息.對于大多數(shù)平臺(tái)這是 默認(rèn)選項(xiàng),除了OSF/1參考平臺(tái),它使用OSF/rose目標(biāo)格式.如果打開了任一個(gè)-ggdb, -gstabs,-gstabs+選項(xiàng)開關(guān), mips-tfile程序就把stab封裝在MIPS ECOFF里面.

             

            -mgas
            產(chǎn)生用于GNU匯編器的代碼.OSF/1參考平臺(tái)上這是默認(rèn)選項(xiàng),它使用OSF/rose目標(biāo)格式.

             

            -mrnames
            -mno-rnames
            -mrnames開關(guān)選項(xiàng)告訴輸出代碼使用MIPS軟件名稱說明寄存器,而不是硬件名稱(就是說,a0代替$4). GNU匯編器不支持-mrnames選項(xiàng),MIPS匯編器則運(yùn)行MIPS C預(yù)處理器處理源文件. -mno-rnames是默認(rèn)選項(xiàng).

             

            -mgpopt
            -mno-gpopt
            -mgpopt開關(guān)選項(xiàng)要求在正文段中把所有的數(shù)據(jù)聲明寫到指令前面,使各種MIPS匯編器對短類型全局 或靜態(tài)數(shù)據(jù)項(xiàng)(short global or static data items)輸出單字內(nèi)存訪問而不是雙字內(nèi)存訪問.當(dāng)打開編譯優(yōu)化 時(shí),這是默認(rèn)功能.

             

            -mstats
            -mno-stats
            每次處理完非嵌入函數(shù)(non-inline function), -mstats開關(guān)選項(xiàng)使編譯器向標(biāo)準(zhǔn)錯(cuò)誤文件 輸出一行關(guān)于程序的統(tǒng)計(jì)資料(保存的寄存器數(shù)目,堆棧大小,等等).

             

            -mmemcpy
            -mno-memcpy
            -mmemcpy開關(guān)選項(xiàng)使所有的塊移動(dòng)操作調(diào)用適當(dāng)?shù)?/font>string函數(shù)(memcpybcopy),而不是生成嵌入代碼.

             

            -mmips-tfile
            -mno-mips-tfile
            當(dāng)MIPS匯編器生成mips-tfile文件(用于幫助調(diào)試), -mno-mips-tfile 開關(guān)選項(xiàng)阻止編譯器使用mips-tfile后期處理(postprocess)目標(biāo)文件.不運(yùn)行 mips-tfile就沒有調(diào)試器關(guān)注的局部變量.另外, stage2stage3目標(biāo)文件將把 臨時(shí)文件名傳遞給匯編器,嵌在目標(biāo)文件中,這意味著不比較目標(biāo)文件是否相同.

             

            -msoft-float
            輸出包含浮點(diǎn)庫調(diào)用. 警告: 所需庫不是GNU CC的一部分.一般說來使用該機(jī)型本地C編譯器的相應(yīng)部件, 但是不能直接用于交叉編譯,你必須自己安排,提供交叉編譯適用的庫函數(shù).

             

            -mhard-float
            輸出包含浮點(diǎn)指令.如果編譯器沒有被改動(dòng),這就是默認(rèn)選項(xiàng).

             

            -mfp64
            編譯器認(rèn)為狀態(tài)字的FR置位(on),也就是說存在32 64-bit浮點(diǎn)寄存器,而不是32 32-bit 浮點(diǎn)寄存器.同時(shí)必須打開-mcpu=r4000-mips3開關(guān).

             

            -mfp32
            認(rèn)為存在32 32-bit浮點(diǎn)寄存器.這是默認(rèn)選項(xiàng).

             

            -mabicalls

            -mno-abicalls
            輸出(或不輸出) .abicalls, .cpload,.cprestore偽指令,某些 System V.4版本用于位置無關(guān)代碼.

             

            -mhalf-pic
            -mno-half-pic
            -mhalf-pic開關(guān)選項(xiàng)要求把外部引用的指針放到數(shù)據(jù)段,并且載入內(nèi)存,而不放到正文段.該選項(xiàng)目前 不起作用.

             

            -G num
            把小于等于num字節(jié)的全局或靜態(tài)數(shù)據(jù)放到小的數(shù)據(jù)段或bss,而不是普通的數(shù)據(jù)段或bss. 這樣匯編器可以輸出基于全局指針(gp$28),的單字內(nèi)存訪問指令而非普通的雙字指令.默認(rèn)情況下, MIPS匯編器時(shí)num8,GNU匯編器則為0.另外, -Gnum選項(xiàng)也被傳遞 給匯編器和連接器.所有的模塊必須在相同的-Gnum值下編譯.

             

            -nocpp
            匯編用戶匯編文件(帶有`.s'后綴)時(shí),告訴MIPS匯編器不要運(yùn)行預(yù)處理器.

             

            下面的`-m'選項(xiàng)用于Intel 80386族計(jì)算機(jī): -m486

            -mno-486
            控制是否生成對486優(yōu)化的代碼.

             

            -msoft-float
            輸出包含浮點(diǎn)庫調(diào)用. 警告: 所需庫不是GNU CC的一部分.一般說來使用該機(jī)型本地C編譯器的相應(yīng)部件, 但是不能直接用于交叉編譯,你必須自己安排,提供交叉編譯適用的庫函數(shù).

            在函數(shù)把浮點(diǎn)返回值放在80387寄存器棧的機(jī)器上,即使設(shè)置了`-msoft-float'選項(xiàng),也可能會(huì)發(fā)出 一些浮點(diǎn)操作碼.

             

            -mno-fp-ret-in-387
            不用FPU寄存器返回函數(shù)值.

            通常函數(shù)調(diào)用約定把floatdouble的返回值放在FPU寄存器中,即使不存在FPU. 這種作法的理念是操作系統(tǒng)應(yīng)該仿真出FPU.

            `-mno-fp-ret-in-387'選項(xiàng)使浮點(diǎn)值通過普通的CPU寄存器返回.

            posted on 2009-08-03 14:31 chaosuper 閱讀(296) 評論(0)  編輯 收藏 引用
            香蕉aa三级久久毛片 | 青青热久久国产久精品| 1000部精品久久久久久久久| 久久精品国产亚洲AV电影 | 久久毛片免费看一区二区三区| 色综合久久中文色婷婷| 91精品国产色综久久| 久久久高清免费视频| 久久偷看各类wc女厕嘘嘘| 久久本道久久综合伊人| 色播久久人人爽人人爽人人片AV| 欧美熟妇另类久久久久久不卡| jizzjizz国产精品久久| 久久综合日本熟妇| 97久久超碰成人精品网站| 色99久久久久高潮综合影院| 精品999久久久久久中文字幕| 免费一级做a爰片久久毛片潮| 国产精品久久国产精品99盘| 久久99热这里只频精品6| 久久亚洲高清观看| 一本一本久久a久久综合精品蜜桃| 99精品久久久久久久婷婷| 久久精品国产AV一区二区三区| 天天躁日日躁狠狠久久| 亚洲综合久久夜AV | 国产精品成人久久久久久久 | 国产成人无码久久久精品一| 日本精品久久久久影院日本| 99久久99久久精品国产| 国产精品久久网| 久久免费国产精品一区二区| 午夜天堂av天堂久久久| 99精品国产99久久久久久97| 开心久久婷婷综合中文字幕| 久久久精品久久久久久| 国产成人久久精品麻豆一区 | 久久99九九国产免费看小说| 天天影视色香欲综合久久| 久久久WWW成人| 亚洲伊人久久成综合人影院 |