Sunday, October 16, 2016

Mips Instruction Set Binary Options

Die bladsy kan nie gevind word nie Die bladsy wat jy soek kan verwyder, het sy naam verander, of is tydelik nie beskikbaar nie. Probeer asseblief die volgende: Maak seker dat die webwerf adres vertoon in die adres bar van jou browser is spelfoute bevat. As jy hierdie bladsy bereik deur op 'n skakel, kontak die webwerf administrateur om hulle te waarsku dat die skakel verkeerd geformatteer. Klik op die knoppie Terug na 'n ander skakel te probeer. HTTP-fout 404 - Lêer of gids nie gevind nie. Internet Information Services (IIS) Tegniese (vir ondersteuningspersoneel) Gaan na Microsoft Product Support Services en uit te voer 'n titel soeke na die woorde HTTP en 404. Open IIS Help. wat toeganklik is in IIS Manager (inetmgr), en soek vir onderwerpe met die titel Webwerf Setup. Gemeenskaplike administratiewe take. en oor Custom Fout. Intro instellings Syscalls IO Ontfouting Command gereedskap Geskiedenis Beperkings Uitsondering Hanteerders Makro Erkenning MARS huis MARS - Mips Vergadering en Runtime Simulator Release 4.5 Augustus 2014 Die gebruik van MARS van 'n command line. MARS kan uitgevoer word vanaf 'n opdrag tolk te vergader en uit te voer 'n MIPS program in 'n bondel mode. Die formaat vir die uitvoer van MARS van 'n command line is: Java-jar mars. jar opsies program. asm meer lêers. PA ARG1 meer args. Items in is opsioneel. Geldig opsies (nie sensitiewe saak geskei deur spasies) is: 3.18.26 MIPS Options - EB genereer groot-endian-kode. - el Genereer min endian kode. Hierdie is die verstek vir waarde vir 'mipsel-- rsquo konfigurasies. - march boog kode wat loop op boog te genereer. wat kan die naam van 'n generiese MIPS ISA, of die naam van 'n bepaalde verwerker wees. Die ISA name is: waarde vir 'mips1 rsquo, stuur sodoende mips2 rsquo, stuur sodoende mips3 rsquo, stuur sodoende mips4 rsquo, stuur sodoende mips32 rsquo, stuur sodoende mips32r2 rsquo, stuur sodoende mips32r3 rsquo, stuur sodoende mips32r5 rsquo, stuur sodoende mips32r6 rsquo, stuur sodoende mips64 rsquo, stuur sodoende mips64r2 rsquo, stuur sodoende mips64r3 rsquo, stuur sodoende mips64r5 rsquo en stuur sodoende mips64r6 rsquo. Die verwerker name is: waarde vir '4kc rsquo, stuur sodoende 4km rsquo, stuur sodoende 4kp rsquo, stuur sodoende 4ksc rsquo, stuur sodoende 4kec rsquo, stuur sodoende 4kem rsquo, stuur sodoende 4kep rsquo, stuur sodoende 4ksd rsquo, stuur sodoende 5kc rsquo, stuur sodoende 5kf rsquo, stuur sodoende 20kc rsquo, stuur sodoende 24kc rsquo, stuur sodoende 24kf21 rsquo, stuur sodoende 24kf11 rsquo, stuur sodoende 24kec rsquo, stuur sodoende 24kef21 rsquo, stuur sodoende 24kef11 rsquo, stuur sodoende 34kc rsquo, stuur sodoende 34kf21 rsquo, stuur sodoende 34kf11 rsquo, stuur sodoende 34kn rsquo, stuur sodoende 74kc rsquo, stuur sodoende 74kf21 rsquo, stuur sodoende 74kf11 rsquo , stuur sodoende 74kf32 rsquo, stuur sodoende 1004kc rsquo, stuur sodoende 1004kf21 rsquo, stuur sodoende 1004kf11 rsquo, stuur sodoende i6400 rsquo, stuur sodoende interaptiv rsquo, stuur sodoende loongson2e rsquo, stuur sodoende loongson2f rsquo, stuur sodoende loongson3a rsquo, stuur sodoende m4k rsquo, stuur sodoende m14k rsquo, stuur sodoende m14kc rsquo, stuur sodoende m14ke rsquo, stuur sodoende m14kec rsquo, stuur sodoende m5100 rsquo, stuur sodoende m5101 rsquo, stuur sodoende octeon rsquo, stuur sodoende octeon rsquo, stuur sodoende octeon2 rsquo, stuur sodoende octeon3 rsquo, stuur sodoende Orion rsquo, stuur sodoende p5600 rsquo, stuur sodoende R2000 rsquo, stuur sodoende R3000 rsquo, stuur sodoende r3900 rsquo , stuur sodoende R4000 rsquo, stuur sodoende R4400 rsquo, stuur sodoende r4600 rsquo, stuur sodoende r4650 rsquo, stuur sodoende r4700 rsquo, stuur sodoende R6000 rsquo, stuur sodoende R8000 rsquo, stuur sodoende rm7000 rsquo, stuur sodoende rm9000 rsquo, stuur sodoende R10000 rsquo, stuur sodoende R12000 rsquo, stuur sodoende R14000 rsquo, stuur sodoende R16000 rsquo, stuur sodoende SB1 rsquo, stuur sodoende sr71000 rsquo, stuur sodoende vr4100 rsquo, stuur sodoende vr4111 rsquo, stuur sodoende vr4120 rsquo, stuur sodoende vr4130 rsquo, stuur sodoende vr4300 rsquo, stuur sodoende vr5000 rsquo, stuur sodoende vr5400 rsquo, stuur sodoende vr5500 rsquo, stuur sodoende XLR rsquo en stuur sodoende xlp rsquo . Die besondere waarde stuur sodoende uit-Abi rsquo kies die mees aanpasbare argitektuur vir die gekose ABI (dit wil sê, stuur sodoende mips1 rsquo vir 32-bit ABIS en stuur sodoende mips3 rsquo vir 64-bit ABIS). Die boorling Linux / GNU tool chain ondersteun ook die waarde stuur sodoende moedertaal rsquo, wat die beste argitektuur opsie vir die gasheer verwerker kies. - marchnative het geen effek as GCC die verwerker nie herken nie. In verwerker name, kan 'n finale waarde vir '000 rsquo word afgekort as waarde vir' k rsquo (byvoorbeeld - marchr2k). Voorvoegsels is opsioneel, en stuur sodoende VR rsquo kan geskryf word waarde vir 'r rsquo. Name van die vorm stuur sodoende N F21 rsquo verwys na verwerkers met FPUs geklokte by die helfte van die koers van die kern, name van die vorm stuur sodoende N F11 rsquo verwys na verwerkers met FPUs geklokte teen dieselfde tempo as die kern, en die name van die vorm stuur sodoende n f32 rsquo verwys na verwerkers met FPUs geklokte 'n verhouding van 3: 2 met betrekking tot die kern. Vir verenigbaarheid redes, is waarde vir 'n f rsquo aanvaar as 'n sinoniem vir waarde vir 'n F21 rsquo terwyl stuur sodoende N x rsquo en stuur sodoende b fx rsquo as sinonieme vir waarde vir 'n F11 rsquo aanvaar. GCC definieer twee makros gebaseer op die waarde van hierdie opsie. Die eerste is MIPSARCH. wat gee die naam van teiken argitektuur, as 'n string. Die tweede het die vorm MIPSARCH cat. waar cat is die gekapitaliseerde waarde van MIPSARCH. Byvoorbeeld, - marchr2000 stel MIPSARCH om R2000 en definieer die makro MIPSARCHR2000. Let daarop dat die MIPSARCH makro gebruik die verwerker name wat hierbo gegee. Met ander woorde, dit het die volle voorvoegsel en nie afkorten stuur sodoende 000 rsquo as waarde vir 'k rsquo. In die geval van waarde vir 'uit-Abi rsquo, die makro name die besluit argitektuur (óf mips1 of mips3). Dit name die verstek argitektuur wanneer daar geen - march opsie gegee. - mtune boog Optimaliseer vir boog. Onder ander dinge, hierdie opsie beheer die manier instruksies is geskeduleer, en die vermeende koste van rekenkundige operasies. Die lys van boog waardes is dieselfde as vir - march. Wanneer hierdie opsie nie gebruik word nie, GCC optimaliseer vir die wat deur - march verwerker. Deur die gebruik van - march en - mtune saam, is dit moontlik om kode wat loop op 'n gesin van verwerkers te genereer, maar optimaliseer die kode vir 'n bepaalde lid van daardie familie. - mtune definieer die makros MIPSTUNE en MIPSTUNE cat. wat werk op dieselfde manier as die - march kinders hierbo beskryf. - mips1 Ekwivalent aan - marchmips1. - mips2 Ekwivalent aan - marchmips2. - mips3 Ekwivalent aan - marchmips3. - mips4 Ekwivalent aan - marchmips4. - mips32 Ekwivalent aan - marchmips32. - mips32r3 Ekwivalent aan - marchmips32r3. - mips32r5 Ekwivalent aan - marchmips32r5. - mips32r6 Ekwivalent aan - marchmips32r6. - mips64 Ekwivalent aan - marchmips64. - mips64r2 Ekwivalent aan - marchmips64r2. - mips64r3 Ekwivalent aan - marchmips64r3. - mips64r5 Ekwivalent aan - marchmips64r5. - mips64r6 Ekwivalent aan - marchmips64r6. - mips16 - mno-mips16 genereer (moenie te genereer) MIPS16 kode. As GCC teiken 'n MIPS32 of MIPS64 argitektuur, dit maak gebruik van die MIPS16e ASE. MIPS16 kodegenerasie kan ook op 'n per-funksie basis word beheer deur middel van mips16 en nomips16 eienskappe. Sien Function eienskappe. vir meer inligting. - mflip-mips16 genereer MIPS16 kode op wisselende funksies. Hierdie opsie is bedoel vir regressie toets van gemengde MIPS16 / nie-MIPS16 kodegenerasie, en is nie bedoel vir gewone gebruik in die samestelling van die gebruiker-kode. - minterlink-saamgeperste - mno-Interlink-saamgeperste Nodig (vereis nie) wat kode met behulp van die standaard (ongecomprimeerd) MIPS ISA wees skakel-versoenbaar is met MIPS16 en microMIPS kode, en omgekeerd. Byvoorbeeld, kan kode met behulp van die standaard ISA enkodering nie direk na MIPS16 of microMIPS kode moet óf 'n oproep of 'n indirekte Spring gebruik. - minterlink-saamgeperste dus versper direkte spronge tensy GCC weet dat die doel van die sprong nie saamgepers. - minterlink-mips16 - mno-Interlink-mips16 Aliassen van - minterlink-saamgeperste en - mno-Interlink-saamgeperste. Hierdie opsies ouer as die microMIPS ASE en behou vir backwards compatibility. - mabi32 - mabio64 - mabin32 - mabi64 - mabieabi Genereer kode vir die gegewe ABI. Let daarop dat die EABI het 'n 32-bit en 'n 64-bis-variant. GCC gewoonlik genereer 64-bit-kode wanneer jy 'n 64-bis argitektuur kies, maar jy kan gebruik - mgp32 tot 32-bit-kode in plaas kry. GCC ondersteun 'n variant van die o32 ABI waarin swaai-punt registers is 64 eerder as 32 stukkies breed. Jy kan hierdie kombinasie kies met - mabi32 - mfp64. Dit ABI staatmaak op die mthc1 en mfhc1 instruksies en is dus net ondersteun vir MIPS32R2, MIPS32R3 en MIPS32R5 verwerkers. Die register opdragte vir argumente en terugkeer waardes bly dieselfde, maar elke skalaar waarde is verby in 'n enkele 64-bit registreer eerder as 'n paar van die 32-bit registers. Byvoorbeeld, is skalaar swaai-punt waardes teruggekeer in stuur sodoende f0 rsquo net, nie 'n waarde vir 'f0 rsquo / stuur sodoende F1 rsquo paar. Die stel-oproep gered registers bly ook dieselfde in dat die ewe dubbel presisie registers gered. Twee addisionele variante van die o32 ABI word ondersteun om 'n oorgang van 32-bit en 64-bis registers in staat te stel. Dit is FPXX (-mfpxx) en FP64A (-mfp64 - mno sowat-spreg). Die FPXX uitbreiding mandate dat alle kode korrek moet uitvoer wanneer hardloop met behulp van 32-bit of 64-bit registers. Die kode kan verbind met óf FP32 of FP64, maar nie beide. Die FP64A uitbreiding is soortgelyk aan die FP64 uitbreiding maar verbied die gebruik van vreemde-genommerde enkel-presisie registers. Dit kan gebruik word in samewerking met die FRE modus van FPUs in MIPS32R5 verwerkers en kan beide FP32 en FP64A kode vir koppel en hardloop in dieselfde proses sonder om FPU modes. - mabicalls - mno-abicalls genereer (moenie te genereer) kode wat geskik is vir SVR4-styl dinamiese voorwerpe. - mabicalls is die verstek vir SVR4-gebaseerde stelsels. - mshared--mno gedeel genereer (moenie te genereer) kode wat ten volle posisie-onafhanklike, en dit kan dus gekoppel word in gedeel biblioteke. Hierdie opsie slegs affekteer - mabicalls. Alle - mabicalls kode is tradisioneel posisie-onafhanklike, ongeag opsies soos - fPIC en - fpic. Maar as 'n verlengstuk, die GNU tool chain laat executables absolute besoeke gebruik vir plaaslik-bindende simbole. Dit kan ook korter GP inisialisering rye gebruik en direkte oproepe na plaaslik-gedefinieerde funksies te genereer. Hierdie modus is gekies deur - mno-gedeel. - mno-gedeel is afhanklik van binutils 2.16 of hoër en genereer voorwerpe wat kan slegs gekoppel word deur die GNU linkerkant. Dit beteken egter die opsie het geen invloed op die ABI van die finale uitvoerbare dit net raak die ABI van skuif aanvaarde voorwerpe. Die gebruik van - mno-gedeel oor die algemeen maak executables beide kleiner en vinniger. - mshared is die standaard. - mplt - mno-PLT Aanvaar (moenie aanvaar) dat die statiese en dinamiese linkers ondersteun PLTs en kopieer verskuiwings. Hierdie opsie slegs affekteer - mno-gedeel - mabicalls. Vir die N64 ABI, hierdie opsie het geen effek sonder - msym32. Jy kan - mplt maak die wanbetaling deur die instel van GCC met with-MIPS-PLT. Die verstek is - mno-PLT anders. - mxgot - mno-xgot Hysbak (nie te lig) die gewone beperkings op die grootte van die globale geneutraliseer tafel. GCC gebruik gewoonlik 'n enkele opdrag om waardes van die GOT laai. Terwyl dit is relatief doeltreffende, dit werk net as die het is kleiner as oor 64k. Enigiets groter veroorsaak dat die linkerkant om 'n fout te rapporteer soos: As dit gebeur, moet jy jou kode heropstel met - mxgot. Dit werk met 'n baie groot Gots, hoewel die kode is ook minder doeltreffend, aangesien dit neem drie instruksies om die waarde van 'n globale simbool haal. Let daarop dat sommige linkers verskeie Gots kan skep. As jy so 'n linker het, moet jy net nodig het om te gebruik - mxgot wanneer 'n enkele voorwerp lêer toegang meer as 64ks waarde van GOT inskrywings. Baie min doen. Hierdie opsies het geen effek tensy GCC genereer posisie onafhanklike kode. - mgp32 Aanvaar dat algemene doel registers is 32 bisse. - mgp64 Aanvaar dat algemene doel registers is 64 bisse. - mfp32 Aanvaar dat swaai-punt registers is 32 bisse. - mfp64 Aanvaar dat swaai-punt registers is 64 bisse. - mfpxx Moenie aanvaar die breedte van swaai-punt registers. - mhard-float Gebruik swaai-punt coprocessor instruksies. - msoft-float Moenie swaai-punt coprocessor instruksies. Implementeer swaai-punt berekeninge met behulp van biblioteek oproepe plaas. - mno-float Ekwivalent aan - msoft-float. maar addisioneel beweer dat die program word saamgestel geen swaai-punt operasies uit te voer. Hierdie opsie is tans ondersteun net deur 'n paar kaal metaal MIPS konfigurasies, waar dit 'n spesiale stel van biblioteke wat al swaai-punt ondersteuning gebrek (insluitende, byvoorbeeld, die swaai-punt printf formate) kan kies. As kode saamgestel met - mno-float ongeluk bevat swaai-punt bedrywighede, is dit waarskynlik 'n skakel-time ly of hardloop-time mislukking. - msingle-float Aanvaar dat die swaai-punt coprocessor ondersteun net enkel-presisie bedrywighede. - mdouble-float Aanvaar dat die swaai-punt coprocessor ondersteun dubbel presisie bedrywighede. Dit is die standaard. - modd-spreg - mno sowat-spreg Aktiveer die gebruik van vreemde-genommerde enkel-presisie swaai-punt registers vir die o32 ABI. Hierdie is die verstek vir verwerkers wat bekend is om hierdie registers ondersteun. By die gebruik van die o32 FPXX ABI, is - mno sowat-spreg by verstek stel. - mabs2008 - mabslegacy Hierdie opsies beheer oor die behandeling van die spesiale nie-'n-nommer (NaN) IEEE 754 swaai-punt data met die ABS. FMT en neg. FMT masjien instruksies. By verstek of wanneer - mabslegacy gebruik die nalatenskap behandeling gekies. In hierdie geval is hierdie instruksies word beskou as rekenkundige en vermy waar korrekte werking verlang word en die insette operand mag wees 'n NaN. 'N Langer reeks instruksies wat die teken bietjie swaai-punt datum met die hand in plaas gebruik nie, tensy die enigste - ffinite-wiskunde-opsie is ook vermeld te manipuleer. Die opsie - mabs2008 kies die IEEE 754-2008 behandeling. In hierdie geval is hierdie instruksies word beskou as nie-rekenkundige en dus korrek in alle gevalle bedryf, onder meer in die besonder waar die insette operand 'n NaN. Hierdie instruksies is dus altyd gebruik vir die onderskeie bedrywighede. - mnan2008 - mnanlegacy Hierdie opsies beheer die enkodering van die spesiale nie-'n-nommer (NaN) IEEE 754 swaai-punt data. Die - mnanlegacy opsie kies die nalatenskap enkodering. In hierdie geval is stil Nans (qNaNs) word aangedui deur die eerste bietjie van hul sleep significand veld om 0, terwyl sein Nans (sNaNs) word aangedui deur die eerste bietjie van hul sleep significand veld om 1. Die - mnan2008 opsie kies die IEEE 754 -2008 enkodering. In hierdie geval qNaNs word aangedui deur die eerste bietjie van hul sleep significand veld om 1, terwyl sNaNs word aangedui deur die eerste bietjie van hul sleep significand veld om 0. Die verstek is - mnanlegacy tensy GCC is ingestel met with-nan2008 . - mllsc - mno-llsc Gebruik (nie gebruik nie) stuur sodoende ll rsquo, stuur sodoende SC rsquo, en stuur sodoende harmonie rsquo instruksies om atoom geheue ingeboude funksies uit te voer. Wanneer nie opsie gespesifiseer, GCC gebruik die instruksies as die teiken argitektuur ondersteun hulle. - mllsc is nuttig as die Runtime Environment die instruksies kan navolg en - mno-llsc kan nuttig wees wanneer die opstel van nie-standaard ISAs. Jy kan óf opsie maak die wanbetaling deur die instel van GCC met onderskeidelik with-llsc en without-llsc. with-llsc is die standaard vir 'n paar konfigurasies sien die installasie dokumentasie vir meer inligting. - mdsp - mno-DSP Gebruik (nie gebruik nie) hersiening 1 van die MIPS DSP ASE. Sien MIPS DSP ingeboude funksies. Hierdie opsie bepaal die voorverwerker makro mipsdsp. Dit definieer mipsdsprev ook 1. - mdspr2 - mno-dspr2 Gebruik (nie gebruik nie) hersiening 2 van die MIPS DSP ASE. Sien MIPS DSP ingeboude funksies. Hierdie opsie bepaal die voorverwerker makros mipsdsp en mipsdspr2. Dit definieer mipsdsprev ook 2. - msmartmips - mno-smartmips Gebruik (nie gebruik) die MIPS SmartMIPS ASE. - mpaired-enkel--mno gepaar-enkel gebruik (gebruik nie) gepaar-enkele swaai-punt instruksies. Sien MIPS pare-Enkellopend-ondersteuning. Hierdie opsie vereis hardeware swaai-punt ondersteuning geaktiveer. - mdmx - mno-mdmx Gebruik (nie gebruik nie) MIPS Digital Media Uitbreiding instruksies. Hierdie opsie kan slegs gebruik word wanneer die opwekking van 64-bit-kode en vereis hardeware swaai-punt ondersteuning geaktiveer. - mips3d - mno-mips3d Gebruik (nie gebruik) die MIPS-3D ASE. Sien MIPS-3D ingeboude funksies. Die opsie - mips3d impliseer - mpaired-eenheid. - mmicromips - mno-micromips skep (nie te genereer) microMIPS kode. MicroMIPS kodegenerasie kan ook op 'n per-funksie basis word beheer deur middel van micromips en nomicromips eienskappe. Sien Function eienskappe. vir meer inligting. - mmt - mno-mt Gebruik (nie gebruik nie) MT Multithreading instruksies. - mmcu - mno-MCU Gebruik (nie gebruik) die MIPS MCU ASE instruksies. - meva - mno-Eva Gebruik (nie gebruik) die MIPS Verbeterde Virtual aanspreek instruksies. - mvirt - mno-Virt Gebruik (nie gebruik) die MIPS virtualiseermodus Aansoek Spesifieke instruksies. - mxpa - mno-xpa Gebruik (nie gebruik) die MIPS eXtended Fisiese adres (XPA) instruksies. - mlong64 Force lank tipes tot 64 stukkies wyd wees. Sien - mlong32 vir 'n verduideliking van die standaard en die manier waarop die wyser grootte word bepaal. - mlong32 Force lank. int. en tipes wyser tot 32 stukkies wyd wees. Die standaard grootte van int s, lank s en wenke hang af van die ABI. Al die ondersteuning ABIS gebruik 32-bis int s. Die N64 ABI gebruik 64-bis lank s, net soos die 64-bit EABI die ander gebruik 32-bis lank s. Wysers is so groot soos 'n lang s, of so groot soos heelgetal registers, wat ook al kleiner is. - msym32 - mno-sym32 Aanvaar (moenie aanvaar) dat alle simbole het 32-bit waardes, ongeag van die geselekteerde ABI. Hierdie opsie is geskik in kombinasie met - mabi64 en - mno-abicalls want dit laat GCC om korter en vinniger verwysings na simboliese adresse op te wek. G num Sit definisies van ekstern-sigbare data in 'n klein data artikel as dit data is nie groter as num grepe. GCC kan dan genereer meer doeltreffende besoeke aan die data te sien - mgpopt vir meer inligting. Die standaard G opsie is afhanklik van die opset. - mlocal-sdata - mno-plaaslike-sdata Brei (nie uit te brei) die G gedrag aan plaaslike data te, soos statiese veranderlikes in C. - mlocal-sdata is die verstek vir alle konfigurasies. As die linkerkant kla dat 'n aansoek gebruik te veel klein data, wil jy dalk om te probeer herstel van die minder prestasie-kritiese dele met - mno-plaaslike-sdata. Jy kan ook groot biblioteke te bou met - mno-plaaslike-sdata. sodat die biblioteke laat meer ruimte vir die hoofprogram. - mextern-sdata - mno-eksterne-sdata Aanvaar (moenie aanneem) wat ekstern-gedefinieerde data is in 'n klein data artikel as die grootte van die data is in die G limiet. - mextern-sdata is die verstek vir alle konfigurasies. As jy ʼn module Mod met - mextern-sdata G num - mgpopt. en Mod verwys na 'n veranderlike Var wat nie groter as num grepe, moet jy seker maak dat Var word in 'n klein data artikel. As Var word gedefinieer deur 'n ander module, moet jy óf saam te stel wat module met 'n hoë-genoeg G instelling of heg 'n artikel kenmerk om Var se definisie. As Var is algemeen, moet jy die aansoek skakel met 'n hoë-genoeg G omgewing. Die maklikste manier bevredig hierdie beperkings is om saam te stel en 'n skakel elke module met dieselfde G opsie. Maar wat dan van 'n biblioteek wat verskillende klein data perke ondersteun bou. Jy kan dit doen deur die opstel van die biblioteek met die hoogste ondersteun G omgewing en addisioneel gebruik van - mno-eksterne-sdata om die biblioteek te verhoed om aannames oor ekstern-gedefinieerde data. - mgpopt - mno-gpopt Gebruik (nie gebruik nie) GP-relatiewe besoeke vir simbole wat bekend is om te wees in 'n klein data artikel sien G. - mlocal-sdata en - mextern-sdata. - mgpopt is die verstek vir alle konfigurasies. - mno-gpopt is nuttig vir gevalle waar die GP registreer die waarde van GP nie mag inhou. Byvoorbeeld, indien die kode is deel van 'n biblioteek wat gebruik kan word in 'n boot monitor, programme wat noem boot monitor roetines slaag 'n onbekende waarde in GP. (In sulke situasies, die boot monitor self word gewoonlik saamgestel met - G0.) - mno-Gpopt impliseer - mno-plaaslike-sdata en - mno-eksterne-sdata. - membedded-data - mno-vasgelegde data Ken veranderlikes om die lees-alleen data artikel eerste indien moontlik, dan volgende in die klein data artikel indien moontlik, anders in data. Dit gee 'n bietjie stadiger kode as die standaard, maar verminder die bedrag van die geheue benodig by die uitvoering van, en dus kan verkies vir 'n paar ingeboude stelsels. - muninit-konst-in-rodata - mno-uninit-konst-in-rodata Sit geïnitialiseerd const veranderlikes in die lees-alleen data artikel. Hierdie opsie is slegs sinvol in samewerking met - membedded-data. - mcode leesbare op te gee of GCC kode wat uit uitvoerbare dele lees kan genereer. Daar is drie moontlike instellings: - mcode-readableyes instruksies mag vrylik toegang uitvoerbare dele. Dit is die verstek. - mcode-readablepcrel MIPS16 PC-relatiewe lading instruksies toegang uitvoerbare dele, maar ander instruksies moet dit nie doen nie. Hierdie opsie is geskik op 4KSc en 4KSd verwerkers wanneer die kode TLBs het die Read inhibeer bit stel. Dit is ook nuttig op verwerkers wat kan ingestel word om 'n dubbele opdrag / data SRAM koppelvlak en dat, soos die M4K het, outomaties herlei PC-relatiewe vragte na die tug RAM. - mcode-readableno instruksies moet nie toegang uitvoerbare dele. Hierdie opsie kan nuttig op teikens wat ingestel word om 'n dubbele opdrag / data SRAM koppelvlak, maar dat (in teenstelling met die M4K) nie outomaties lei PC-relatiewe vragte na die tug RAM wees. - msplit-adresse - mno-split-adresse aanstuur (afskakel) gebruik van die hi () en kyk () assembler hervestiging operateurs. Hierdie opsie is vervang deur - mexplicit-relocs maar behou vir backwards compatibility. - mexplicit-relocs - mno-eksplisiete-relocs Gebruik (nie gebruik nie) assembler hervestiging operateurs wanneer die hantering van simboliese adresse. Die alternatief, gekies deur - mno-eksplisiete-relocs. is om assembler makros gebruik in plaas. - mexplicit-relocs is die verstek indien GCC is ingestel om 'n assembler dat hervestiging operateurs ondersteun gebruik. - mcheck-nul-afdeling - mno-check-nul-afdeling Trap (moenie lokval) op heelgetal deling deur nul. Die verstek is - mcheck-nul-afdeling. - mdivide-strikke - mdivide-breek MIPS stelsels gaan vir deling deur nul deur die opwekking van óf 'n voorwaardelike trap of 'n onderbreking onderrig. Die gebruik van strikke lei tot kleiner kode, maar word alleen ondersteun op MIPS II en later. Ook 'n paar weergawes van die Linux-kern het 'n fout wat trap verhoed genereer die behoorlike sein (SIGFPE). Gebruik - mdivide-strikke te voorwaardelike strikke op platforms wat hulle ondersteun en - mdivide-breek toelaat om die gebruik van pouses dwing. Die verstek is gewoonlik - mdivide-valle. maar dit kan oorskryf word op Konfigureer tyd met behulp van with-dividebreaks. Verdeel-vir-nul tjeks kan heeltemal afgeskakel behulp - mno-check-nul-afdeling. - mmemcpy - mno-memcpy Force (nie dwing) die gebruik van memcpy vir nie-triviale blok beweeg. Die verstek is - mno-memcpy. wat dit moontlik maak GCC meeste konstante-grootte kopieë inline. - mlong-oproepe - mno-lang oproepe afskakel gebruik van die JAL opdrag (moenie te skakel). Oproep funksies met behulp van JAL is meer doeltreffend, maar vereis dat die oproeper en callee te wees in dieselfde 256 megabyte segment. Hierdie opsie het geen effek op abicalls kode. Die verstek is - mno lange-oproepe. - mmad - mno-mal aanstuur (afskakel) gebruik van die gekke. madu en MUL instruksies, soos bepaal deur die R4650 ISA. - mimadd - mno-imadd aanstuur (afskakel) gebruik van die Madd en msub heelgetal instruksies. Die verstek is - mimadd op platforms wat Madd en msub ondersteun, behalwe vir die 74k argitektuur waar dit gevind is om stadiger kode te genereer. - mfused-Madd--mno saamgesmelt-Madd aanstuur (afskakel) gebruik van die swaai-punt vermenigvuldig-ophoop instruksies, wanneer dit beskikbaar is. Die verstek is - mfused-Madd. Op die R8000 CPU wanneer vermenigvuldig-ophoop instruksies gebruik, is die intermediêre produk bereken om oneindige presisie en is nie onderhewig aan die FCSR Spoel om Zero bietjie. Dit kan ongewenste in sommige omstandighede. Op ander verwerkers die resultaat is numeries identies aan die ekwivalent berekening met behulp van aparte vermeerder, optel, aftrek en negeer instruksies. - nocpp Vertel die MIPS assembler sy voorverwerker nie omgery gebruiker assembler lêers (met 'n waarde vir '.s rsquo agtervoegsel) wanneer hulle samestelling. - mfix-24k - mno-fix-24k werk om die 24K E48 (verlore data op winkels in hervul) errata. Die regstellings geïmplementeer deur die samesteller eerder as deur GCC. - mfix-R4000 - mno-fix-R4000 werk om sekere R4000 CPU errata: 'n dubbel-woord of 'n veranderlike verskuiwing kan 'n verkeerde gevolg te gee as onmiddellik na die aanvang van 'n heelgetal afdeling uitgevoer. 'N dubbel-woord of 'n veranderlike verskuiwing kan 'n verkeerde gevolg te gee as tereggestel, terwyl 'n heelgetal vermenigvuldiging is aan die gang. 'N heelgetal afdeling kan 'n verkeerde gevolg te gee as begin in 'n vertraging slot van 'n besluit geneem tak of 'n sprong. - mfix-R4400 - mno-fix-R4400 werk om sekere R4400 CPU errata: 'n dubbel-woord of 'n veranderlike verskuiwing kan 'n verkeerde gevolg te gee as onmiddellik na die aanvang van 'n heelgetal afdeling uitgevoer. - mfix-R10000 - mno-fix-R10000 werk om sekere R10000 errata: ll / SC rye kan nie atomies tree op hersiening voor 3.0. Hulle kan dooiepunt oor wysigings 2.6 en vroeër. Hierdie opsie kan slegs gebruik word indien die teiken argitektuur ondersteun tak-waarskynlik instruksies. - mfix-R10000 is die verstek wanneer - marchr10000 gebruik - mno-fix-R10000 is die verstek anders. - mfix-rm7000 - mno-fix-rm7000 werk om die RM7000 dmult / dmultu errata. Die regstellings geïmplementeer deur die samesteller eerder as deur GCC. - mfix-vr4120 - mno-fix-vr4120 werk om sekere VR4120 errata: dmultu nie altyd produseer die korrekte resultaat. div en ddiv nie altyd die korrekte resultaat as een van die operande negatief. Die regstellings vir die verdeling errata staatmaak op spesiale funksies in libgcc. a. Op die oomblik is, is hierdie funksies slegs deur die mips64vr-elf configurations. Other VR4120 errata vereis dat 'n NOP te plaas tussen sekere pare instruksies. Hierdie errata word hanteer deur die samesteller, nie deur GCC self. - mfix-vr4130 werk om die VR4130 mflo / mfhi errata. Die regstellings geïmplementeer deur die samesteller eerder as deur GCC, hoewel GCC vermy die gebruik van mflo en mfhi indien die VR4130 MRek. Macchi. dmacc en dmacchi instruksies is in plaas beskikbaar. - mfix-SB1 - mno-fix-SB1 werk om sekere SB-1 CPU kern errata. (Hierdie vlag werk tans in die SB-1 hersiening 2 ldquoF1rdquo en ldquoF2rdquo swaai-punt errata.) - mr10k-Kas-versperring op te gee of GCC kas hindernisse moet voeg om die newe-effekte van spekulasie oor R10K verwerkers te vermy. Soos baie verwerkers, die R10K probeer om die uitkoms van 'n voorwaardelike tak voorspel en spekulatief voer instruksies uit die ldquotakenrdquo tak. Dit aborteer later hierdie instruksies as die voorspelde uitkoms is verkeerd. Maar op die R10K, selfs geaborteerde instruksies kan newe-effekte hê. Hierdie probleem het slegs betrekking op kern winkels en, afhangende van die stelsel, kern vragte. As 'n voorbeeld, kan 'n spekulatief-tereggestel winkel die teiken geheue in die kas te laai en merk die kas lyn so vuil, selfs al is die winkel self later laat vaar. As 'n DMA werking skryf aan dieselfde gebied van geheue voordat die ldquodirtyrdquo lyn is gespoel, die kas data oor skryf die DMA-ed data. Sien die R10K verwerker handleiding vir 'n volledige beskrywing, insluitende ander potensiële probleme. Een tydelike oplossing is om die kas versperring instruksies te voeg voor elke geheue toegang wat spekulatief kan uitgevoer word en dat die newe-effekte selfs al gestaak mag hê. - mr10k-kas-versperring opstel beheer GCCs implementering van hierdie tydelike oplossing. Dit veronderstel dat geaborteerde toegang tot enige byte in die volgende streke nie newe-effekte: die wat deur die huidige funksies geheue stapel raamwerk die geheue beset deur 'n inkomende stapel argument die geheue beset deur 'n voorwerp met 'n skakel-time-konstante adres. Dit is die pitte verantwoordelikheid om te verseker dat spekulatiewe besoeke aan hierdie gebiede is inderdaad veilig. As die insette program bevat 'n funksie verklaring soos: dan sal die implementering van cat moet toelaat j cat en JAL cat om spekulatief uitgevoer. GCC honneurs hierdie beperking vir funksies dit self stel. Hy verwag nie-GCC funksies (soos handgeskrewe vergadering kode) om dieselfde te doen. Die opsie het drie vorme: - mr10k-kas-barrierload-winkel Voeg 'n kas versperring voor 'n vrag of winkel wat spekulatief kan uitgevoer word en dat die newe-effekte selfs al gestaak mag hê. - mr10k-kas-barrierstore Voeg 'n kas versperring voor 'n winkel wat spekulatief kan uitgevoer word en dat die newe-effekte selfs al gestaak mag hê. - mr10k-kas-barriernone Skakel die invoeging van die kas hindernisse. Dit is die verstek. - mflush-funk funk - mno-spoel-funk Spesifiseer die funksie te roep om die ek en D caches spoel, of om enige sodanige funksie nie bel. As genoem, moet die funksie dieselfde argumente te neem as die algemene flushfunc. dit wil sê, die adres van die geheue reeks waarvoor die kas word gespoel, die grootte van die geheue reeks, en die nommer 3 (beide caches spoel). Die verstek is afhanklik van die teiken GCC is ingestel nie, maar algemeen is óf flushfunc of cpuflush. mbranch-koste num Stel die koste van takke om ongeveer NUM ldquosimplerdquo instruksies. Hierdie koste is slegs 'n heuristiese en is nie gewaarborg om konsekwente resultate oor vrystellings te produseer. 'N nul koste kies verskeie kere die verstek, wat gebaseer is op die - mtune omgewing. - mbranch-geneig - mno-tak-geneig aktiveer of deaktiveer gebruik van Tak Waarskynlik instruksies, ongeag die verstek vir die gekose argitektuur. By verstek, kan Tak Waarskynlik instruksies gegenereer as hulle deur die gekose argitektuur. 'N Uitsondering is vir die MIPS32 en MIPS64 argitekture en verwerkers dat diegene argitekture vir diegene implementeer, is Tak Waarskynlik instruksies nie gegenereer word by verstek, want die MIPS32 en MIPS64 argitekture spesifiek die gebruik daarvan afkeur. - mcompact-branchesnever - mcompact-branchesoptimal - mcompact-branchesalways Hierdie opsies beheer watter vorm van takke sal gegenereer word. Die verstek is - mcompact-branchesoptimal. Die - mcompact-branchesnever opsie verseker dat kompakte tak instruksies nooit sal gegenereer word. Die - mcompact-branchesalways opsie verseker dat 'n kompakte tak opdrag sal gegenereer word indien beskikbaar. As 'n kompakte tak opdrag is nie beskikbaar nie, sal 'n vertraging slot vorm van die tak in plaas gebruik word. Hierdie opsie ondersteun word met ingang MIPS Release 6. Die - mcompact-branchesoptimal opsie sal veroorsaak dat 'n vertraging slot tak om gebruik te word as 'n mens is in die huidige ISA en die vertraging slot is suksesvol vervul. As die vertraging slot nie genoeg nie, sal 'n kompakte tak gekies as 'n mens is beskikbaar. - mfp-uitsonderings - mno-GF-uitsonderings Gee aan of FP uitsonderings is aangeskakel. Dit beïnvloed hoe FP instruksies is geskeduleer vir 'n paar verwerkers. Die standaard is dat FP uitsonderings is aangeskakel. Byvoorbeeld, op die SB-1, indien FP uitsonderings is afgeskakel, en ons afgee 64-bit-kode, dan kan ons albei FP pype gebruik. Anders, kan ons net een FP pyp. - mvr4130-align - mno-vr4130-Rig die VR4130 pyplyn is tweerigting-superskalaar, maar kan net uit te reik twee opdragte bymekaar as die eerste een is 8-byte lyn. Wanneer hierdie opsie geaktiveer is, GCC uitgelijnd pare instruksies wat dit dink moet voer in parallel. Hierdie opsie het net 'n effek wanneer die optimalisering vir die VR4130. Dit maak gewoonlik kode vinniger, maar ten koste van wat dit groter. Dit is aangeskakel is by verstek aan optimalisering vlak O3. - msynci - mno-synci aanstuur (afskakel) generasie van synci instruksies oor argitektuur wat dit ondersteun. Die synci instruksies (indien geaktiveer) gegenereer wanneer builtinclearcache word saamgestel. Hierdie opsie verstek na - mno-synci. maar die standaard kan geneutraliseer word deur die instel van GCC met with-synci. Wanneer die opstel kode vir enkele verwerker stelsels, dit is oor die algemeen veilig om synci gebruik. Maar op baie multi-kern (SMP) stelsels, beteken dit nie ongeldig nie die instruksie caches op alle kerne en kan lei tot ongedefinieerde gedrag. - mrelax-pic-oproepe - mno-ontspan-pic-oproepe Probeer om PIC oproepe wat normaalweg via registreer 25 versend in direkte oproepe draai.


No comments:

Post a Comment