reloc.c 197 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714
  1. /* BFD support for handling relocation entries.
  2. Copyright (C) 1990-2022 Free Software Foundation, Inc.
  3. Written by Cygnus Support.
  4. This file is part of BFD, the Binary File Descriptor library.
  5. This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 3 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program; if not, write to the Free Software
  15. Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  16. MA 02110-1301, USA. */
  17. /*
  18. SECTION
  19. Relocations
  20. BFD maintains relocations in much the same way it maintains
  21. symbols: they are left alone until required, then read in
  22. en-masse and translated into an internal form. A common
  23. routine <<bfd_perform_relocation>> acts upon the
  24. canonical form to do the fixup.
  25. Relocations are maintained on a per section basis,
  26. while symbols are maintained on a per BFD basis.
  27. All that a back end has to do to fit the BFD interface is to create
  28. a <<struct reloc_cache_entry>> for each relocation
  29. in a particular section, and fill in the right bits of the structures.
  30. @menu
  31. @* typedef arelent::
  32. @* howto manager::
  33. @end menu
  34. */
  35. /* DO compile in the reloc_code name table from libbfd.h. */
  36. #define _BFD_MAKE_TABLE_bfd_reloc_code_real
  37. #include "sysdep.h"
  38. #include "bfd.h"
  39. #include "bfdlink.h"
  40. #include "libbfd.h"
  41. #include "bfdver.h"
  42. /*
  43. DOCDD
  44. INODE
  45. typedef arelent, howto manager, Relocations, Relocations
  46. SUBSECTION
  47. typedef arelent
  48. This is the structure of a relocation entry:
  49. CODE_FRAGMENT
  50. .
  51. .typedef enum bfd_reloc_status
  52. .{
  53. . {* No errors detected. Note - the value 2 is used so that it
  54. . will not be mistaken for the boolean TRUE or FALSE values. *}
  55. . bfd_reloc_ok = 2,
  56. .
  57. . {* The relocation was performed, but there was an overflow. *}
  58. . bfd_reloc_overflow,
  59. .
  60. . {* The address to relocate was not within the section supplied. *}
  61. . bfd_reloc_outofrange,
  62. .
  63. . {* Used by special functions. *}
  64. . bfd_reloc_continue,
  65. .
  66. . {* Unsupported relocation size requested. *}
  67. . bfd_reloc_notsupported,
  68. .
  69. . {* Unused. *}
  70. . bfd_reloc_other,
  71. .
  72. . {* The symbol to relocate against was undefined. *}
  73. . bfd_reloc_undefined,
  74. .
  75. . {* The relocation was performed, but may not be ok. If this type is
  76. . returned, the error_message argument to bfd_perform_relocation
  77. . will be set. *}
  78. . bfd_reloc_dangerous
  79. . }
  80. . bfd_reloc_status_type;
  81. .
  82. .typedef const struct reloc_howto_struct reloc_howto_type;
  83. .
  84. .typedef struct reloc_cache_entry
  85. .{
  86. . {* A pointer into the canonical table of pointers. *}
  87. . struct bfd_symbol **sym_ptr_ptr;
  88. .
  89. . {* offset in section. *}
  90. . bfd_size_type address;
  91. .
  92. . {* addend for relocation value. *}
  93. . bfd_vma addend;
  94. .
  95. . {* Pointer to how to perform the required relocation. *}
  96. . reloc_howto_type *howto;
  97. .
  98. .}
  99. .arelent;
  100. .
  101. */
  102. /*
  103. DESCRIPTION
  104. Here is a description of each of the fields within an <<arelent>>:
  105. o <<sym_ptr_ptr>>
  106. The symbol table pointer points to a pointer to the symbol
  107. associated with the relocation request. It is the pointer
  108. into the table returned by the back end's
  109. <<canonicalize_symtab>> action. @xref{Symbols}. The symbol is
  110. referenced through a pointer to a pointer so that tools like
  111. the linker can fix up all the symbols of the same name by
  112. modifying only one pointer. The relocation routine looks in
  113. the symbol and uses the base of the section the symbol is
  114. attached to and the value of the symbol as the initial
  115. relocation offset. If the symbol pointer is zero, then the
  116. section provided is looked up.
  117. o <<address>>
  118. The <<address>> field gives the offset in bytes from the base of
  119. the section data which owns the relocation record to the first
  120. byte of relocatable information. The actual data relocated
  121. will be relative to this point; for example, a relocation
  122. type which modifies the bottom two bytes of a four byte word
  123. would not touch the first byte pointed to in a big endian
  124. world.
  125. o <<addend>>
  126. The <<addend>> is a value provided by the back end to be added (!)
  127. to the relocation offset. Its interpretation is dependent upon
  128. the howto. For example, on the 68k the code:
  129. | char foo[];
  130. | main()
  131. | {
  132. | return foo[0x12345678];
  133. | }
  134. Could be compiled into:
  135. | linkw fp,#-4
  136. | moveb @@#12345678,d0
  137. | extbl d0
  138. | unlk fp
  139. | rts
  140. This could create a reloc pointing to <<foo>>, but leave the
  141. offset in the data, something like:
  142. |RELOCATION RECORDS FOR [.text]:
  143. |offset type value
  144. |00000006 32 _foo
  145. |
  146. |00000000 4e56 fffc ; linkw fp,#-4
  147. |00000004 1039 1234 5678 ; moveb @@#12345678,d0
  148. |0000000a 49c0 ; extbl d0
  149. |0000000c 4e5e ; unlk fp
  150. |0000000e 4e75 ; rts
  151. Using coff and an 88k, some instructions don't have enough
  152. space in them to represent the full address range, and
  153. pointers have to be loaded in two parts. So you'd get something like:
  154. | or.u r13,r0,hi16(_foo+0x12345678)
  155. | ld.b r2,r13,lo16(_foo+0x12345678)
  156. | jmp r1
  157. This should create two relocs, both pointing to <<_foo>>, and with
  158. 0x12340000 in their addend field. The data would consist of:
  159. |RELOCATION RECORDS FOR [.text]:
  160. |offset type value
  161. |00000002 HVRT16 _foo+0x12340000
  162. |00000006 LVRT16 _foo+0x12340000
  163. |
  164. |00000000 5da05678 ; or.u r13,r0,0x5678
  165. |00000004 1c4d5678 ; ld.b r2,r13,0x5678
  166. |00000008 f400c001 ; jmp r1
  167. The relocation routine digs out the value from the data, adds
  168. it to the addend to get the original offset, and then adds the
  169. value of <<_foo>>. Note that all 32 bits have to be kept around
  170. somewhere, to cope with carry from bit 15 to bit 16.
  171. One further example is the sparc and the a.out format. The
  172. sparc has a similar problem to the 88k, in that some
  173. instructions don't have room for an entire offset, but on the
  174. sparc the parts are created in odd sized lumps. The designers of
  175. the a.out format chose to not use the data within the section
  176. for storing part of the offset; all the offset is kept within
  177. the reloc. Anything in the data should be ignored.
  178. | save %sp,-112,%sp
  179. | sethi %hi(_foo+0x12345678),%g2
  180. | ldsb [%g2+%lo(_foo+0x12345678)],%i0
  181. | ret
  182. | restore
  183. Both relocs contain a pointer to <<foo>>, and the offsets
  184. contain junk.
  185. |RELOCATION RECORDS FOR [.text]:
  186. |offset type value
  187. |00000004 HI22 _foo+0x12345678
  188. |00000008 LO10 _foo+0x12345678
  189. |
  190. |00000000 9de3bf90 ; save %sp,-112,%sp
  191. |00000004 05000000 ; sethi %hi(_foo+0),%g2
  192. |00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0
  193. |0000000c 81c7e008 ; ret
  194. |00000010 81e80000 ; restore
  195. o <<howto>>
  196. The <<howto>> field can be imagined as a
  197. relocation instruction. It is a pointer to a structure which
  198. contains information on what to do with all of the other
  199. information in the reloc record and data section. A back end
  200. would normally have a relocation instruction set and turn
  201. relocations into pointers to the correct structure on input -
  202. but it would be possible to create each howto field on demand.
  203. */
  204. /*
  205. SUBSUBSECTION
  206. <<enum complain_overflow>>
  207. Indicates what sort of overflow checking should be done when
  208. performing a relocation.
  209. CODE_FRAGMENT
  210. .
  211. .enum complain_overflow
  212. .{
  213. . {* Do not complain on overflow. *}
  214. . complain_overflow_dont,
  215. .
  216. . {* Complain if the value overflows when considered as a signed
  217. . number one bit larger than the field. ie. A bitfield of N bits
  218. . is allowed to represent -2**n to 2**n-1. *}
  219. . complain_overflow_bitfield,
  220. .
  221. . {* Complain if the value overflows when considered as a signed
  222. . number. *}
  223. . complain_overflow_signed,
  224. .
  225. . {* Complain if the value overflows when considered as an
  226. . unsigned number. *}
  227. . complain_overflow_unsigned
  228. .};
  229. */
  230. /*
  231. SUBSUBSECTION
  232. <<reloc_howto_type>>
  233. The <<reloc_howto_type>> is a structure which contains all the
  234. information that libbfd needs to know to tie up a back end's data.
  235. CODE_FRAGMENT
  236. .struct reloc_howto_struct
  237. .{
  238. . {* The type field has mainly a documentary use - the back end can
  239. . do what it wants with it, though normally the back end's idea of
  240. . an external reloc number is stored in this field. *}
  241. . unsigned int type;
  242. .
  243. . {* The encoded size of the item to be relocated. This is *not* a
  244. . power-of-two measure. Use bfd_get_reloc_size to find the size
  245. . of the item in bytes. *}
  246. . unsigned int size:3;
  247. .
  248. . {* The number of bits in the field to be relocated. This is used
  249. . when doing overflow checking. *}
  250. . unsigned int bitsize:7;
  251. .
  252. . {* The value the final relocation is shifted right by. This drops
  253. . unwanted data from the relocation. *}
  254. . unsigned int rightshift:6;
  255. .
  256. . {* The bit position of the reloc value in the destination.
  257. . The relocated value is left shifted by this amount. *}
  258. . unsigned int bitpos:6;
  259. .
  260. . {* What type of overflow error should be checked for when
  261. . relocating. *}
  262. . ENUM_BITFIELD (complain_overflow) complain_on_overflow:2;
  263. .
  264. . {* The relocation value should be negated before applying. *}
  265. . unsigned int negate:1;
  266. .
  267. . {* The relocation is relative to the item being relocated. *}
  268. . unsigned int pc_relative:1;
  269. .
  270. . {* Some formats record a relocation addend in the section contents
  271. . rather than with the relocation. For ELF formats this is the
  272. . distinction between USE_REL and USE_RELA (though the code checks
  273. . for USE_REL == 1/0). The value of this field is TRUE if the
  274. . addend is recorded with the section contents; when performing a
  275. . partial link (ld -r) the section contents (the data) will be
  276. . modified. The value of this field is FALSE if addends are
  277. . recorded with the relocation (in arelent.addend); when performing
  278. . a partial link the relocation will be modified.
  279. . All relocations for all ELF USE_RELA targets should set this field
  280. . to FALSE (values of TRUE should be looked on with suspicion).
  281. . However, the converse is not true: not all relocations of all ELF
  282. . USE_REL targets set this field to TRUE. Why this is so is peculiar
  283. . to each particular target. For relocs that aren't used in partial
  284. . links (e.g. GOT stuff) it doesn't matter what this is set to. *}
  285. . unsigned int partial_inplace:1;
  286. .
  287. . {* When some formats create PC relative instructions, they leave
  288. . the value of the pc of the place being relocated in the offset
  289. . slot of the instruction, so that a PC relative relocation can
  290. . be made just by adding in an ordinary offset (e.g., sun3 a.out).
  291. . Some formats leave the displacement part of an instruction
  292. . empty (e.g., ELF); this flag signals the fact. *}
  293. . unsigned int pcrel_offset:1;
  294. .
  295. . {* src_mask selects the part of the instruction (or data) to be used
  296. . in the relocation sum. If the target relocations don't have an
  297. . addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
  298. . dst_mask to extract the addend from the section contents. If
  299. . relocations do have an addend in the reloc, eg. ELF USE_RELA, this
  300. . field should normally be zero. Non-zero values for ELF USE_RELA
  301. . targets should be viewed with suspicion as normally the value in
  302. . the dst_mask part of the section contents should be ignored. *}
  303. . bfd_vma src_mask;
  304. .
  305. . {* dst_mask selects which parts of the instruction (or data) are
  306. . replaced with a relocated value. *}
  307. . bfd_vma dst_mask;
  308. .
  309. . {* If this field is non null, then the supplied function is
  310. . called rather than the normal function. This allows really
  311. . strange relocation methods to be accommodated. *}
  312. . bfd_reloc_status_type (*special_function)
  313. . (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
  314. . bfd *, char **);
  315. .
  316. . {* The textual name of the relocation type. *}
  317. . const char *name;
  318. .};
  319. .
  320. */
  321. /*
  322. FUNCTION
  323. The HOWTO Macro
  324. DESCRIPTION
  325. The HOWTO macro fills in a reloc_howto_type (a typedef for
  326. const struct reloc_howto_struct).
  327. .#define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name, \
  328. . inplace, src_mask, dst_mask, pcrel_off) \
  329. . { (unsigned) type, size < 0 ? -size : size, bits, right, left, ovf, \
  330. . size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name }
  331. DESCRIPTION
  332. This is used to fill in an empty howto entry in an array.
  333. .#define EMPTY_HOWTO(C) \
  334. . HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \
  335. . NULL, false, 0, 0, false)
  336. .
  337. */
  338. /*
  339. FUNCTION
  340. bfd_get_reloc_size
  341. SYNOPSIS
  342. unsigned int bfd_get_reloc_size (reloc_howto_type *);
  343. DESCRIPTION
  344. For a reloc_howto_type that operates on a fixed number of bytes,
  345. this returns the number of bytes operated on.
  346. */
  347. unsigned int
  348. bfd_get_reloc_size (reloc_howto_type *howto)
  349. {
  350. switch (howto->size)
  351. {
  352. case 0: return 1;
  353. case 1: return 2;
  354. case 2: return 4;
  355. case 3: return 0;
  356. case 4: return 8;
  357. case 5: return 3;
  358. default: abort ();
  359. }
  360. }
  361. /*
  362. TYPEDEF
  363. arelent_chain
  364. DESCRIPTION
  365. How relocs are tied together in an <<asection>>:
  366. .typedef struct relent_chain
  367. .{
  368. . arelent relent;
  369. . struct relent_chain *next;
  370. .}
  371. .arelent_chain;
  372. .
  373. */
  374. /* N_ONES produces N one bits, without undefined behaviour for N
  375. between zero and the number of bits in a bfd_vma. */
  376. #define N_ONES(n) ((n) == 0 ? 0 : ((bfd_vma) 1 << ((n) - 1) << 1) - 1)
  377. /*
  378. FUNCTION
  379. bfd_check_overflow
  380. SYNOPSIS
  381. bfd_reloc_status_type bfd_check_overflow
  382. (enum complain_overflow how,
  383. unsigned int bitsize,
  384. unsigned int rightshift,
  385. unsigned int addrsize,
  386. bfd_vma relocation);
  387. DESCRIPTION
  388. Perform overflow checking on @var{relocation} which has
  389. @var{bitsize} significant bits and will be shifted right by
  390. @var{rightshift} bits, on a machine with addresses containing
  391. @var{addrsize} significant bits. The result is either of
  392. @code{bfd_reloc_ok} or @code{bfd_reloc_overflow}.
  393. */
  394. bfd_reloc_status_type
  395. bfd_check_overflow (enum complain_overflow how,
  396. unsigned int bitsize,
  397. unsigned int rightshift,
  398. unsigned int addrsize,
  399. bfd_vma relocation)
  400. {
  401. bfd_vma fieldmask, addrmask, signmask, ss, a;
  402. bfd_reloc_status_type flag = bfd_reloc_ok;
  403. if (bitsize == 0)
  404. return flag;
  405. /* Note: BITSIZE should always be <= ADDRSIZE, but in case it's not,
  406. we'll be permissive: extra bits in the field mask will
  407. automatically extend the address mask for purposes of the
  408. overflow check. */
  409. fieldmask = N_ONES (bitsize);
  410. signmask = ~fieldmask;
  411. addrmask = N_ONES (addrsize) | (fieldmask << rightshift);
  412. a = (relocation & addrmask) >> rightshift;
  413. switch (how)
  414. {
  415. case complain_overflow_dont:
  416. break;
  417. case complain_overflow_signed:
  418. /* If any sign bits are set, all sign bits must be set. That
  419. is, A must be a valid negative address after shifting. */
  420. signmask = ~ (fieldmask >> 1);
  421. /* Fall thru */
  422. case complain_overflow_bitfield:
  423. /* Bitfields are sometimes signed, sometimes unsigned. We
  424. explicitly allow an address wrap too, which means a bitfield
  425. of n bits is allowed to store -2**n to 2**n-1. Thus overflow
  426. if the value has some, but not all, bits set outside the
  427. field. */
  428. ss = a & signmask;
  429. if (ss != 0 && ss != ((addrmask >> rightshift) & signmask))
  430. flag = bfd_reloc_overflow;
  431. break;
  432. case complain_overflow_unsigned:
  433. /* We have an overflow if the address does not fit in the field. */
  434. if ((a & signmask) != 0)
  435. flag = bfd_reloc_overflow;
  436. break;
  437. default:
  438. abort ();
  439. }
  440. return flag;
  441. }
  442. /*
  443. FUNCTION
  444. bfd_reloc_offset_in_range
  445. SYNOPSIS
  446. bool bfd_reloc_offset_in_range
  447. (reloc_howto_type *howto,
  448. bfd *abfd,
  449. asection *section,
  450. bfd_size_type offset);
  451. DESCRIPTION
  452. Returns TRUE if the reloc described by @var{HOWTO} can be
  453. applied at @var{OFFSET} octets in @var{SECTION}.
  454. */
  455. /* HOWTO describes a relocation, at offset OCTET. Return whether the
  456. relocation field is within SECTION of ABFD. */
  457. bool
  458. bfd_reloc_offset_in_range (reloc_howto_type *howto,
  459. bfd *abfd,
  460. asection *section,
  461. bfd_size_type octet)
  462. {
  463. bfd_size_type octet_end = bfd_get_section_limit_octets (abfd, section);
  464. bfd_size_type reloc_size = bfd_get_reloc_size (howto);
  465. /* The reloc field must be contained entirely within the section.
  466. Allow zero length fields (marker relocs or NONE relocs where no
  467. relocation will be performed) at the end of the section. */
  468. return octet <= octet_end && reloc_size <= octet_end - octet;
  469. }
  470. /* Read and return the section contents at DATA converted to a host
  471. integer (bfd_vma). The number of bytes read is given by the HOWTO. */
  472. static bfd_vma
  473. read_reloc (bfd *abfd, bfd_byte *data, reloc_howto_type *howto)
  474. {
  475. switch (howto->size)
  476. {
  477. case 0:
  478. return bfd_get_8 (abfd, data);
  479. case 1:
  480. return bfd_get_16 (abfd, data);
  481. case 2:
  482. return bfd_get_32 (abfd, data);
  483. case 3:
  484. break;
  485. #ifdef BFD64
  486. case 4:
  487. return bfd_get_64 (abfd, data);
  488. #endif
  489. case 5:
  490. return bfd_get_24 (abfd, data);
  491. default:
  492. abort ();
  493. }
  494. return 0;
  495. }
  496. /* Convert VAL to target format and write to DATA. The number of
  497. bytes written is given by the HOWTO. */
  498. static void
  499. write_reloc (bfd *abfd, bfd_vma val, bfd_byte *data, reloc_howto_type *howto)
  500. {
  501. switch (howto->size)
  502. {
  503. case 0:
  504. bfd_put_8 (abfd, val, data);
  505. break;
  506. case 1:
  507. bfd_put_16 (abfd, val, data);
  508. break;
  509. case 2:
  510. bfd_put_32 (abfd, val, data);
  511. break;
  512. case 3:
  513. break;
  514. #ifdef BFD64
  515. case 4:
  516. bfd_put_64 (abfd, val, data);
  517. break;
  518. #endif
  519. case 5:
  520. bfd_put_24 (abfd, val, data);
  521. break;
  522. default:
  523. abort ();
  524. }
  525. }
  526. /* Apply RELOCATION value to target bytes at DATA, according to
  527. HOWTO. */
  528. static void
  529. apply_reloc (bfd *abfd, bfd_byte *data, reloc_howto_type *howto,
  530. bfd_vma relocation)
  531. {
  532. bfd_vma val = read_reloc (abfd, data, howto);
  533. if (howto->negate)
  534. relocation = -relocation;
  535. val = ((val & ~howto->dst_mask)
  536. | (((val & howto->src_mask) + relocation) & howto->dst_mask));
  537. write_reloc (abfd, val, data, howto);
  538. }
  539. /*
  540. FUNCTION
  541. bfd_perform_relocation
  542. SYNOPSIS
  543. bfd_reloc_status_type bfd_perform_relocation
  544. (bfd *abfd,
  545. arelent *reloc_entry,
  546. void *data,
  547. asection *input_section,
  548. bfd *output_bfd,
  549. char **error_message);
  550. DESCRIPTION
  551. If @var{output_bfd} is supplied to this function, the
  552. generated image will be relocatable; the relocations are
  553. copied to the output file after they have been changed to
  554. reflect the new state of the world. There are two ways of
  555. reflecting the results of partial linkage in an output file:
  556. by modifying the output data in place, and by modifying the
  557. relocation record. Some native formats (e.g., basic a.out and
  558. basic coff) have no way of specifying an addend in the
  559. relocation type, so the addend has to go in the output data.
  560. This is no big deal since in these formats the output data
  561. slot will always be big enough for the addend. Complex reloc
  562. types with addends were invented to solve just this problem.
  563. The @var{error_message} argument is set to an error message if
  564. this return @code{bfd_reloc_dangerous}.
  565. */
  566. bfd_reloc_status_type
  567. bfd_perform_relocation (bfd *abfd,
  568. arelent *reloc_entry,
  569. void *data,
  570. asection *input_section,
  571. bfd *output_bfd,
  572. char **error_message)
  573. {
  574. bfd_vma relocation;
  575. bfd_reloc_status_type flag = bfd_reloc_ok;
  576. bfd_size_type octets;
  577. bfd_vma output_base = 0;
  578. reloc_howto_type *howto = reloc_entry->howto;
  579. asection *reloc_target_output_section;
  580. asymbol *symbol;
  581. symbol = *(reloc_entry->sym_ptr_ptr);
  582. /* If we are not producing relocatable output, return an error if
  583. the symbol is not defined. An undefined weak symbol is
  584. considered to have a value of zero (SVR4 ABI, p. 4-27). */
  585. if (bfd_is_und_section (symbol->section)
  586. && (symbol->flags & BSF_WEAK) == 0
  587. && output_bfd == NULL)
  588. flag = bfd_reloc_undefined;
  589. /* If there is a function supplied to handle this relocation type,
  590. call it. It'll return `bfd_reloc_continue' if further processing
  591. can be done. */
  592. if (howto && howto->special_function)
  593. {
  594. bfd_reloc_status_type cont;
  595. /* Note - we do not call bfd_reloc_offset_in_range here as the
  596. reloc_entry->address field might actually be valid for the
  597. backend concerned. It is up to the special_function itself
  598. to call bfd_reloc_offset_in_range if needed. */
  599. cont = howto->special_function (abfd, reloc_entry, symbol, data,
  600. input_section, output_bfd,
  601. error_message);
  602. if (cont != bfd_reloc_continue)
  603. return cont;
  604. }
  605. if (bfd_is_abs_section (symbol->section)
  606. && output_bfd != NULL)
  607. {
  608. reloc_entry->address += input_section->output_offset;
  609. return bfd_reloc_ok;
  610. }
  611. /* PR 17512: file: 0f67f69d. */
  612. if (howto == NULL)
  613. return bfd_reloc_undefined;
  614. /* Is the address of the relocation really within the section? */
  615. octets = reloc_entry->address * bfd_octets_per_byte (abfd, input_section);
  616. if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
  617. return bfd_reloc_outofrange;
  618. /* Work out which section the relocation is targeted at and the
  619. initial relocation command value. */
  620. /* Get symbol value. (Common symbols are special.) */
  621. if (bfd_is_com_section (symbol->section))
  622. relocation = 0;
  623. else
  624. relocation = symbol->value;
  625. reloc_target_output_section = symbol->section->output_section;
  626. /* Convert input-section-relative symbol value to absolute. */
  627. if ((output_bfd && ! howto->partial_inplace)
  628. || reloc_target_output_section == NULL)
  629. output_base = 0;
  630. else
  631. output_base = reloc_target_output_section->vma;
  632. output_base += symbol->section->output_offset;
  633. /* If symbol addresses are in octets, convert to bytes. */
  634. if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
  635. && (symbol->section->flags & SEC_ELF_OCTETS))
  636. output_base *= bfd_octets_per_byte (abfd, input_section);
  637. relocation += output_base;
  638. /* Add in supplied addend. */
  639. relocation += reloc_entry->addend;
  640. /* Here the variable relocation holds the final address of the
  641. symbol we are relocating against, plus any addend. */
  642. if (howto->pc_relative)
  643. {
  644. /* This is a PC relative relocation. We want to set RELOCATION
  645. to the distance between the address of the symbol and the
  646. location. RELOCATION is already the address of the symbol.
  647. We start by subtracting the address of the section containing
  648. the location.
  649. If pcrel_offset is set, we must further subtract the position
  650. of the location within the section. Some targets arrange for
  651. the addend to be the negative of the position of the location
  652. within the section; for example, i386-aout does this. For
  653. i386-aout, pcrel_offset is FALSE. Some other targets do not
  654. include the position of the location; for example, ELF.
  655. For those targets, pcrel_offset is TRUE.
  656. If we are producing relocatable output, then we must ensure
  657. that this reloc will be correctly computed when the final
  658. relocation is done. If pcrel_offset is FALSE we want to wind
  659. up with the negative of the location within the section,
  660. which means we must adjust the existing addend by the change
  661. in the location within the section. If pcrel_offset is TRUE
  662. we do not want to adjust the existing addend at all.
  663. FIXME: This seems logical to me, but for the case of
  664. producing relocatable output it is not what the code
  665. actually does. I don't want to change it, because it seems
  666. far too likely that something will break. */
  667. relocation -=
  668. input_section->output_section->vma + input_section->output_offset;
  669. if (howto->pcrel_offset)
  670. relocation -= reloc_entry->address;
  671. }
  672. if (output_bfd != NULL)
  673. {
  674. if (! howto->partial_inplace)
  675. {
  676. /* This is a partial relocation, and we want to apply the relocation
  677. to the reloc entry rather than the raw data. Modify the reloc
  678. inplace to reflect what we now know. */
  679. reloc_entry->addend = relocation;
  680. reloc_entry->address += input_section->output_offset;
  681. return flag;
  682. }
  683. else
  684. {
  685. /* This is a partial relocation, but inplace, so modify the
  686. reloc record a bit.
  687. If we've relocated with a symbol with a section, change
  688. into a ref to the section belonging to the symbol. */
  689. reloc_entry->address += input_section->output_offset;
  690. /* WTF?? */
  691. if (abfd->xvec->flavour == bfd_target_coff_flavour
  692. && strcmp (abfd->xvec->name, "coff-Intel-little") != 0
  693. && strcmp (abfd->xvec->name, "coff-Intel-big") != 0)
  694. {
  695. /* For m68k-coff, the addend was being subtracted twice during
  696. relocation with -r. Removing the line below this comment
  697. fixes that problem; see PR 2953.
  698. However, Ian wrote the following, regarding removing the line below,
  699. which explains why it is still enabled: --djm
  700. If you put a patch like that into BFD you need to check all the COFF
  701. linkers. I am fairly certain that patch will break coff-i386 (e.g.,
  702. SCO); see coff_i386_reloc in coff-i386.c where I worked around the
  703. problem in a different way. There may very well be a reason that the
  704. code works as it does.
  705. Hmmm. The first obvious point is that bfd_perform_relocation should
  706. not have any tests that depend upon the flavour. It's seem like
  707. entirely the wrong place for such a thing. The second obvious point
  708. is that the current code ignores the reloc addend when producing
  709. relocatable output for COFF. That's peculiar. In fact, I really
  710. have no idea what the point of the line you want to remove is.
  711. A typical COFF reloc subtracts the old value of the symbol and adds in
  712. the new value to the location in the object file (if it's a pc
  713. relative reloc it adds the difference between the symbol value and the
  714. location). When relocating we need to preserve that property.
  715. BFD handles this by setting the addend to the negative of the old
  716. value of the symbol. Unfortunately it handles common symbols in a
  717. non-standard way (it doesn't subtract the old value) but that's a
  718. different story (we can't change it without losing backward
  719. compatibility with old object files) (coff-i386 does subtract the old
  720. value, to be compatible with existing coff-i386 targets, like SCO).
  721. So everything works fine when not producing relocatable output. When
  722. we are producing relocatable output, logically we should do exactly
  723. what we do when not producing relocatable output. Therefore, your
  724. patch is correct. In fact, it should probably always just set
  725. reloc_entry->addend to 0 for all cases, since it is, in fact, going to
  726. add the value into the object file. This won't hurt the COFF code,
  727. which doesn't use the addend; I'm not sure what it will do to other
  728. formats (the thing to check for would be whether any formats both use
  729. the addend and set partial_inplace).
  730. When I wanted to make coff-i386 produce relocatable output, I ran
  731. into the problem that you are running into: I wanted to remove that
  732. line. Rather than risk it, I made the coff-i386 relocs use a special
  733. function; it's coff_i386_reloc in coff-i386.c. The function
  734. specifically adds the addend field into the object file, knowing that
  735. bfd_perform_relocation is not going to. If you remove that line, then
  736. coff-i386.c will wind up adding the addend field in twice. It's
  737. trivial to fix; it just needs to be done.
  738. The problem with removing the line is just that it may break some
  739. working code. With BFD it's hard to be sure of anything. The right
  740. way to deal with this is simply to build and test at least all the
  741. supported COFF targets. It should be straightforward if time and disk
  742. space consuming. For each target:
  743. 1) build the linker
  744. 2) generate some executable, and link it using -r (I would
  745. probably use paranoia.o and link against newlib/libc.a, which
  746. for all the supported targets would be available in
  747. /usr/cygnus/progressive/H-host/target/lib/libc.a).
  748. 3) make the change to reloc.c
  749. 4) rebuild the linker
  750. 5) repeat step 2
  751. 6) if the resulting object files are the same, you have at least
  752. made it no worse
  753. 7) if they are different you have to figure out which version is
  754. right
  755. */
  756. relocation -= reloc_entry->addend;
  757. reloc_entry->addend = 0;
  758. }
  759. else
  760. {
  761. reloc_entry->addend = relocation;
  762. }
  763. }
  764. }
  765. /* FIXME: This overflow checking is incomplete, because the value
  766. might have overflowed before we get here. For a correct check we
  767. need to compute the value in a size larger than bitsize, but we
  768. can't reasonably do that for a reloc the same size as a host
  769. machine word.
  770. FIXME: We should also do overflow checking on the result after
  771. adding in the value contained in the object file. */
  772. if (howto->complain_on_overflow != complain_overflow_dont
  773. && flag == bfd_reloc_ok)
  774. flag = bfd_check_overflow (howto->complain_on_overflow,
  775. howto->bitsize,
  776. howto->rightshift,
  777. bfd_arch_bits_per_address (abfd),
  778. relocation);
  779. /* Either we are relocating all the way, or we don't want to apply
  780. the relocation to the reloc entry (probably because there isn't
  781. any room in the output format to describe addends to relocs). */
  782. /* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
  783. (OSF version 1.3, compiler version 3.11). It miscompiles the
  784. following program:
  785. struct str
  786. {
  787. unsigned int i0;
  788. } s = { 0 };
  789. int
  790. main ()
  791. {
  792. unsigned long x;
  793. x = 0x100000000;
  794. x <<= (unsigned long) s.i0;
  795. if (x == 0)
  796. printf ("failed\n");
  797. else
  798. printf ("succeeded (%lx)\n", x);
  799. }
  800. */
  801. relocation >>= (bfd_vma) howto->rightshift;
  802. /* Shift everything up to where it's going to be used. */
  803. relocation <<= (bfd_vma) howto->bitpos;
  804. /* Wait for the day when all have the mask in them. */
  805. /* What we do:
  806. i instruction to be left alone
  807. o offset within instruction
  808. r relocation offset to apply
  809. S src mask
  810. D dst mask
  811. N ~dst mask
  812. A part 1
  813. B part 2
  814. R result
  815. Do this:
  816. (( i i i i i o o o o o from bfd_get<size>
  817. and S S S S S) to get the size offset we want
  818. + r r r r r r r r r r) to get the final value to place
  819. and D D D D D to chop to right size
  820. -----------------------
  821. = A A A A A
  822. And this:
  823. ( i i i i i o o o o o from bfd_get<size>
  824. and N N N N N ) get instruction
  825. -----------------------
  826. = B B B B B
  827. And then:
  828. ( B B B B B
  829. or A A A A A)
  830. -----------------------
  831. = R R R R R R R R R R put into bfd_put<size>
  832. */
  833. data = (bfd_byte *) data + octets;
  834. apply_reloc (abfd, data, howto, relocation);
  835. return flag;
  836. }
  837. /*
  838. FUNCTION
  839. bfd_install_relocation
  840. SYNOPSIS
  841. bfd_reloc_status_type bfd_install_relocation
  842. (bfd *abfd,
  843. arelent *reloc_entry,
  844. void *data, bfd_vma data_start,
  845. asection *input_section,
  846. char **error_message);
  847. DESCRIPTION
  848. This looks remarkably like <<bfd_perform_relocation>>, except it
  849. does not expect that the section contents have been filled in.
  850. I.e., it's suitable for use when creating, rather than applying
  851. a relocation.
  852. For now, this function should be considered reserved for the
  853. assembler.
  854. */
  855. bfd_reloc_status_type
  856. bfd_install_relocation (bfd *abfd,
  857. arelent *reloc_entry,
  858. void *data_start,
  859. bfd_vma data_start_offset,
  860. asection *input_section,
  861. char **error_message)
  862. {
  863. bfd_vma relocation;
  864. bfd_reloc_status_type flag = bfd_reloc_ok;
  865. bfd_size_type octets;
  866. bfd_vma output_base = 0;
  867. reloc_howto_type *howto = reloc_entry->howto;
  868. asection *reloc_target_output_section;
  869. asymbol *symbol;
  870. bfd_byte *data;
  871. symbol = *(reloc_entry->sym_ptr_ptr);
  872. /* If there is a function supplied to handle this relocation type,
  873. call it. It'll return `bfd_reloc_continue' if further processing
  874. can be done. */
  875. if (howto && howto->special_function)
  876. {
  877. bfd_reloc_status_type cont;
  878. /* Note - we do not call bfd_reloc_offset_in_range here as the
  879. reloc_entry->address field might actually be valid for the
  880. backend concerned. It is up to the special_function itself
  881. to call bfd_reloc_offset_in_range if needed. */
  882. /* XXX - The special_function calls haven't been fixed up to deal
  883. with creating new relocations and section contents. */
  884. cont = howto->special_function (abfd, reloc_entry, symbol,
  885. /* XXX - Non-portable! */
  886. ((bfd_byte *) data_start
  887. - data_start_offset),
  888. input_section, abfd, error_message);
  889. if (cont != bfd_reloc_continue)
  890. return cont;
  891. }
  892. if (bfd_is_abs_section (symbol->section))
  893. {
  894. reloc_entry->address += input_section->output_offset;
  895. return bfd_reloc_ok;
  896. }
  897. /* No need to check for howto != NULL if !bfd_is_abs_section as
  898. it will have been checked in `bfd_perform_relocation already'. */
  899. /* Is the address of the relocation really within the section? */
  900. octets = reloc_entry->address * bfd_octets_per_byte (abfd, input_section);
  901. if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
  902. return bfd_reloc_outofrange;
  903. /* Work out which section the relocation is targeted at and the
  904. initial relocation command value. */
  905. /* Get symbol value. (Common symbols are special.) */
  906. if (bfd_is_com_section (symbol->section))
  907. relocation = 0;
  908. else
  909. relocation = symbol->value;
  910. reloc_target_output_section = symbol->section->output_section;
  911. /* Convert input-section-relative symbol value to absolute. */
  912. if (! howto->partial_inplace)
  913. output_base = 0;
  914. else
  915. output_base = reloc_target_output_section->vma;
  916. output_base += symbol->section->output_offset;
  917. /* If symbol addresses are in octets, convert to bytes. */
  918. if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
  919. && (symbol->section->flags & SEC_ELF_OCTETS))
  920. output_base *= bfd_octets_per_byte (abfd, input_section);
  921. relocation += output_base;
  922. /* Add in supplied addend. */
  923. relocation += reloc_entry->addend;
  924. /* Here the variable relocation holds the final address of the
  925. symbol we are relocating against, plus any addend. */
  926. if (howto->pc_relative)
  927. {
  928. /* This is a PC relative relocation. We want to set RELOCATION
  929. to the distance between the address of the symbol and the
  930. location. RELOCATION is already the address of the symbol.
  931. We start by subtracting the address of the section containing
  932. the location.
  933. If pcrel_offset is set, we must further subtract the position
  934. of the location within the section. Some targets arrange for
  935. the addend to be the negative of the position of the location
  936. within the section; for example, i386-aout does this. For
  937. i386-aout, pcrel_offset is FALSE. Some other targets do not
  938. include the position of the location; for example, ELF.
  939. For those targets, pcrel_offset is TRUE.
  940. If we are producing relocatable output, then we must ensure
  941. that this reloc will be correctly computed when the final
  942. relocation is done. If pcrel_offset is FALSE we want to wind
  943. up with the negative of the location within the section,
  944. which means we must adjust the existing addend by the change
  945. in the location within the section. If pcrel_offset is TRUE
  946. we do not want to adjust the existing addend at all.
  947. FIXME: This seems logical to me, but for the case of
  948. producing relocatable output it is not what the code
  949. actually does. I don't want to change it, because it seems
  950. far too likely that something will break. */
  951. relocation -=
  952. input_section->output_section->vma + input_section->output_offset;
  953. if (howto->pcrel_offset && howto->partial_inplace)
  954. relocation -= reloc_entry->address;
  955. }
  956. if (! howto->partial_inplace)
  957. {
  958. /* This is a partial relocation, and we want to apply the relocation
  959. to the reloc entry rather than the raw data. Modify the reloc
  960. inplace to reflect what we now know. */
  961. reloc_entry->addend = relocation;
  962. reloc_entry->address += input_section->output_offset;
  963. return flag;
  964. }
  965. else
  966. {
  967. /* This is a partial relocation, but inplace, so modify the
  968. reloc record a bit.
  969. If we've relocated with a symbol with a section, change
  970. into a ref to the section belonging to the symbol. */
  971. reloc_entry->address += input_section->output_offset;
  972. /* WTF?? */
  973. if (abfd->xvec->flavour == bfd_target_coff_flavour
  974. && strcmp (abfd->xvec->name, "coff-Intel-little") != 0
  975. && strcmp (abfd->xvec->name, "coff-Intel-big") != 0)
  976. {
  977. /* For m68k-coff, the addend was being subtracted twice during
  978. relocation with -r. Removing the line below this comment
  979. fixes that problem; see PR 2953.
  980. However, Ian wrote the following, regarding removing the line below,
  981. which explains why it is still enabled: --djm
  982. If you put a patch like that into BFD you need to check all the COFF
  983. linkers. I am fairly certain that patch will break coff-i386 (e.g.,
  984. SCO); see coff_i386_reloc in coff-i386.c where I worked around the
  985. problem in a different way. There may very well be a reason that the
  986. code works as it does.
  987. Hmmm. The first obvious point is that bfd_install_relocation should
  988. not have any tests that depend upon the flavour. It's seem like
  989. entirely the wrong place for such a thing. The second obvious point
  990. is that the current code ignores the reloc addend when producing
  991. relocatable output for COFF. That's peculiar. In fact, I really
  992. have no idea what the point of the line you want to remove is.
  993. A typical COFF reloc subtracts the old value of the symbol and adds in
  994. the new value to the location in the object file (if it's a pc
  995. relative reloc it adds the difference between the symbol value and the
  996. location). When relocating we need to preserve that property.
  997. BFD handles this by setting the addend to the negative of the old
  998. value of the symbol. Unfortunately it handles common symbols in a
  999. non-standard way (it doesn't subtract the old value) but that's a
  1000. different story (we can't change it without losing backward
  1001. compatibility with old object files) (coff-i386 does subtract the old
  1002. value, to be compatible with existing coff-i386 targets, like SCO).
  1003. So everything works fine when not producing relocatable output. When
  1004. we are producing relocatable output, logically we should do exactly
  1005. what we do when not producing relocatable output. Therefore, your
  1006. patch is correct. In fact, it should probably always just set
  1007. reloc_entry->addend to 0 for all cases, since it is, in fact, going to
  1008. add the value into the object file. This won't hurt the COFF code,
  1009. which doesn't use the addend; I'm not sure what it will do to other
  1010. formats (the thing to check for would be whether any formats both use
  1011. the addend and set partial_inplace).
  1012. When I wanted to make coff-i386 produce relocatable output, I ran
  1013. into the problem that you are running into: I wanted to remove that
  1014. line. Rather than risk it, I made the coff-i386 relocs use a special
  1015. function; it's coff_i386_reloc in coff-i386.c. The function
  1016. specifically adds the addend field into the object file, knowing that
  1017. bfd_install_relocation is not going to. If you remove that line, then
  1018. coff-i386.c will wind up adding the addend field in twice. It's
  1019. trivial to fix; it just needs to be done.
  1020. The problem with removing the line is just that it may break some
  1021. working code. With BFD it's hard to be sure of anything. The right
  1022. way to deal with this is simply to build and test at least all the
  1023. supported COFF targets. It should be straightforward if time and disk
  1024. space consuming. For each target:
  1025. 1) build the linker
  1026. 2) generate some executable, and link it using -r (I would
  1027. probably use paranoia.o and link against newlib/libc.a, which
  1028. for all the supported targets would be available in
  1029. /usr/cygnus/progressive/H-host/target/lib/libc.a).
  1030. 3) make the change to reloc.c
  1031. 4) rebuild the linker
  1032. 5) repeat step 2
  1033. 6) if the resulting object files are the same, you have at least
  1034. made it no worse
  1035. 7) if they are different you have to figure out which version is
  1036. right. */
  1037. relocation -= reloc_entry->addend;
  1038. /* FIXME: There should be no target specific code here... */
  1039. if (strcmp (abfd->xvec->name, "coff-z8k") != 0)
  1040. reloc_entry->addend = 0;
  1041. }
  1042. else
  1043. {
  1044. reloc_entry->addend = relocation;
  1045. }
  1046. }
  1047. /* FIXME: This overflow checking is incomplete, because the value
  1048. might have overflowed before we get here. For a correct check we
  1049. need to compute the value in a size larger than bitsize, but we
  1050. can't reasonably do that for a reloc the same size as a host
  1051. machine word.
  1052. FIXME: We should also do overflow checking on the result after
  1053. adding in the value contained in the object file. */
  1054. if (howto->complain_on_overflow != complain_overflow_dont)
  1055. flag = bfd_check_overflow (howto->complain_on_overflow,
  1056. howto->bitsize,
  1057. howto->rightshift,
  1058. bfd_arch_bits_per_address (abfd),
  1059. relocation);
  1060. /* Either we are relocating all the way, or we don't want to apply
  1061. the relocation to the reloc entry (probably because there isn't
  1062. any room in the output format to describe addends to relocs). */
  1063. /* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
  1064. (OSF version 1.3, compiler version 3.11). It miscompiles the
  1065. following program:
  1066. struct str
  1067. {
  1068. unsigned int i0;
  1069. } s = { 0 };
  1070. int
  1071. main ()
  1072. {
  1073. unsigned long x;
  1074. x = 0x100000000;
  1075. x <<= (unsigned long) s.i0;
  1076. if (x == 0)
  1077. printf ("failed\n");
  1078. else
  1079. printf ("succeeded (%lx)\n", x);
  1080. }
  1081. */
  1082. relocation >>= (bfd_vma) howto->rightshift;
  1083. /* Shift everything up to where it's going to be used. */
  1084. relocation <<= (bfd_vma) howto->bitpos;
  1085. /* Wait for the day when all have the mask in them. */
  1086. /* What we do:
  1087. i instruction to be left alone
  1088. o offset within instruction
  1089. r relocation offset to apply
  1090. S src mask
  1091. D dst mask
  1092. N ~dst mask
  1093. A part 1
  1094. B part 2
  1095. R result
  1096. Do this:
  1097. (( i i i i i o o o o o from bfd_get<size>
  1098. and S S S S S) to get the size offset we want
  1099. + r r r r r r r r r r) to get the final value to place
  1100. and D D D D D to chop to right size
  1101. -----------------------
  1102. = A A A A A
  1103. And this:
  1104. ( i i i i i o o o o o from bfd_get<size>
  1105. and N N N N N ) get instruction
  1106. -----------------------
  1107. = B B B B B
  1108. And then:
  1109. ( B B B B B
  1110. or A A A A A)
  1111. -----------------------
  1112. = R R R R R R R R R R put into bfd_put<size>
  1113. */
  1114. data = (bfd_byte *) data_start + (octets - data_start_offset);
  1115. apply_reloc (abfd, data, howto, relocation);
  1116. return flag;
  1117. }
  1118. /* This relocation routine is used by some of the backend linkers.
  1119. They do not construct asymbol or arelent structures, so there is no
  1120. reason for them to use bfd_perform_relocation. Also,
  1121. bfd_perform_relocation is so hacked up it is easier to write a new
  1122. function than to try to deal with it.
  1123. This routine does a final relocation. Whether it is useful for a
  1124. relocatable link depends upon how the object format defines
  1125. relocations.
  1126. FIXME: This routine ignores any special_function in the HOWTO,
  1127. since the existing special_function values have been written for
  1128. bfd_perform_relocation.
  1129. HOWTO is the reloc howto information.
  1130. INPUT_BFD is the BFD which the reloc applies to.
  1131. INPUT_SECTION is the section which the reloc applies to.
  1132. CONTENTS is the contents of the section.
  1133. ADDRESS is the address of the reloc within INPUT_SECTION.
  1134. VALUE is the value of the symbol the reloc refers to.
  1135. ADDEND is the addend of the reloc. */
  1136. bfd_reloc_status_type
  1137. _bfd_final_link_relocate (reloc_howto_type *howto,
  1138. bfd *input_bfd,
  1139. asection *input_section,
  1140. bfd_byte *contents,
  1141. bfd_vma address,
  1142. bfd_vma value,
  1143. bfd_vma addend)
  1144. {
  1145. bfd_vma relocation;
  1146. bfd_size_type octets = (address
  1147. * bfd_octets_per_byte (input_bfd, input_section));
  1148. /* Sanity check the address. */
  1149. if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, octets))
  1150. return bfd_reloc_outofrange;
  1151. /* This function assumes that we are dealing with a basic relocation
  1152. against a symbol. We want to compute the value of the symbol to
  1153. relocate to. This is just VALUE, the value of the symbol, plus
  1154. ADDEND, any addend associated with the reloc. */
  1155. relocation = value + addend;
  1156. /* If the relocation is PC relative, we want to set RELOCATION to
  1157. the distance between the symbol (currently in RELOCATION) and the
  1158. location we are relocating. Some targets (e.g., i386-aout)
  1159. arrange for the contents of the section to be the negative of the
  1160. offset of the location within the section; for such targets
  1161. pcrel_offset is FALSE. Other targets (e.g., ELF) simply leave
  1162. the contents of the section as zero; for such targets
  1163. pcrel_offset is TRUE. If pcrel_offset is FALSE we do not need to
  1164. subtract out the offset of the location within the section (which
  1165. is just ADDRESS). */
  1166. if (howto->pc_relative)
  1167. {
  1168. relocation -= (input_section->output_section->vma
  1169. + input_section->output_offset);
  1170. if (howto->pcrel_offset)
  1171. relocation -= address;
  1172. }
  1173. return _bfd_relocate_contents (howto, input_bfd, relocation,
  1174. contents + octets);
  1175. }
  1176. /* Relocate a given location using a given value and howto. */
  1177. bfd_reloc_status_type
  1178. _bfd_relocate_contents (reloc_howto_type *howto,
  1179. bfd *input_bfd,
  1180. bfd_vma relocation,
  1181. bfd_byte *location)
  1182. {
  1183. bfd_vma x;
  1184. bfd_reloc_status_type flag;
  1185. unsigned int rightshift = howto->rightshift;
  1186. unsigned int bitpos = howto->bitpos;
  1187. if (howto->negate)
  1188. relocation = -relocation;
  1189. /* Get the value we are going to relocate. */
  1190. x = read_reloc (input_bfd, location, howto);
  1191. /* Check for overflow. FIXME: We may drop bits during the addition
  1192. which we don't check for. We must either check at every single
  1193. operation, which would be tedious, or we must do the computations
  1194. in a type larger than bfd_vma, which would be inefficient. */
  1195. flag = bfd_reloc_ok;
  1196. if (howto->complain_on_overflow != complain_overflow_dont)
  1197. {
  1198. bfd_vma addrmask, fieldmask, signmask, ss;
  1199. bfd_vma a, b, sum;
  1200. /* Get the values to be added together. For signed and unsigned
  1201. relocations, we assume that all values should be truncated to
  1202. the size of an address. For bitfields, all the bits matter.
  1203. See also bfd_check_overflow. */
  1204. fieldmask = N_ONES (howto->bitsize);
  1205. signmask = ~fieldmask;
  1206. addrmask = (N_ONES (bfd_arch_bits_per_address (input_bfd))
  1207. | (fieldmask << rightshift));
  1208. a = (relocation & addrmask) >> rightshift;
  1209. b = (x & howto->src_mask & addrmask) >> bitpos;
  1210. addrmask >>= rightshift;
  1211. switch (howto->complain_on_overflow)
  1212. {
  1213. case complain_overflow_signed:
  1214. /* If any sign bits are set, all sign bits must be set.
  1215. That is, A must be a valid negative address after
  1216. shifting. */
  1217. signmask = ~(fieldmask >> 1);
  1218. /* Fall thru */
  1219. case complain_overflow_bitfield:
  1220. /* Much like the signed check, but for a field one bit
  1221. wider. We allow a bitfield to represent numbers in the
  1222. range -2**n to 2**n-1, where n is the number of bits in the
  1223. field. Note that when bfd_vma is 32 bits, a 32-bit reloc
  1224. can't overflow, which is exactly what we want. */
  1225. ss = a & signmask;
  1226. if (ss != 0 && ss != (addrmask & signmask))
  1227. flag = bfd_reloc_overflow;
  1228. /* We only need this next bit of code if the sign bit of B
  1229. is below the sign bit of A. This would only happen if
  1230. SRC_MASK had fewer bits than BITSIZE. Note that if
  1231. SRC_MASK has more bits than BITSIZE, we can get into
  1232. trouble; we would need to verify that B is in range, as
  1233. we do for A above. */
  1234. ss = ((~howto->src_mask) >> 1) & howto->src_mask;
  1235. ss >>= bitpos;
  1236. /* Set all the bits above the sign bit. */
  1237. b = (b ^ ss) - ss;
  1238. /* Now we can do the addition. */
  1239. sum = a + b;
  1240. /* See if the result has the correct sign. Bits above the
  1241. sign bit are junk now; ignore them. If the sum is
  1242. positive, make sure we did not have all negative inputs;
  1243. if the sum is negative, make sure we did not have all
  1244. positive inputs. The test below looks only at the sign
  1245. bits, and it really just
  1246. SIGN (A) == SIGN (B) && SIGN (A) != SIGN (SUM)
  1247. We mask with addrmask here to explicitly allow an address
  1248. wrap-around. The Linux kernel relies on it, and it is
  1249. the only way to write assembler code which can run when
  1250. loaded at a location 0x80000000 away from the location at
  1251. which it is linked. */
  1252. if (((~(a ^ b)) & (a ^ sum)) & signmask & addrmask)
  1253. flag = bfd_reloc_overflow;
  1254. break;
  1255. case complain_overflow_unsigned:
  1256. /* Checking for an unsigned overflow is relatively easy:
  1257. trim the addresses and add, and trim the result as well.
  1258. Overflow is normally indicated when the result does not
  1259. fit in the field. However, we also need to consider the
  1260. case when, e.g., fieldmask is 0x7fffffff or smaller, an
  1261. input is 0x80000000, and bfd_vma is only 32 bits; then we
  1262. will get sum == 0, but there is an overflow, since the
  1263. inputs did not fit in the field. Instead of doing a
  1264. separate test, we can check for this by or-ing in the
  1265. operands when testing for the sum overflowing its final
  1266. field. */
  1267. sum = (a + b) & addrmask;
  1268. if ((a | b | sum) & signmask)
  1269. flag = bfd_reloc_overflow;
  1270. break;
  1271. default:
  1272. abort ();
  1273. }
  1274. }
  1275. /* Put RELOCATION in the right bits. */
  1276. relocation >>= (bfd_vma) rightshift;
  1277. relocation <<= (bfd_vma) bitpos;
  1278. /* Add RELOCATION to the right bits of X. */
  1279. x = ((x & ~howto->dst_mask)
  1280. | (((x & howto->src_mask) + relocation) & howto->dst_mask));
  1281. /* Put the relocated value back in the object file. */
  1282. write_reloc (input_bfd, x, location, howto);
  1283. return flag;
  1284. }
  1285. /* Clear a given location using a given howto, by applying a fixed relocation
  1286. value and discarding any in-place addend. This is used for fixed-up
  1287. relocations against discarded symbols, to make ignorable debug or unwind
  1288. information more obvious. */
  1289. bfd_reloc_status_type
  1290. _bfd_clear_contents (reloc_howto_type *howto,
  1291. bfd *input_bfd,
  1292. asection *input_section,
  1293. bfd_byte *buf,
  1294. bfd_vma off)
  1295. {
  1296. bfd_vma x;
  1297. bfd_byte *location;
  1298. if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, off))
  1299. return bfd_reloc_outofrange;
  1300. /* Get the value we are going to relocate. */
  1301. location = buf + off;
  1302. x = read_reloc (input_bfd, location, howto);
  1303. /* Zero out the unwanted bits of X. */
  1304. x &= ~howto->dst_mask;
  1305. /* For a range list, use 1 instead of 0 as placeholder. 0
  1306. would terminate the list, hiding any later entries. */
  1307. if (strcmp (bfd_section_name (input_section), ".debug_ranges") == 0
  1308. && (howto->dst_mask & 1) != 0)
  1309. x |= 1;
  1310. /* Put the relocated value back in the object file. */
  1311. write_reloc (input_bfd, x, location, howto);
  1312. return bfd_reloc_ok;
  1313. }
  1314. /*
  1315. DOCDD
  1316. INODE
  1317. howto manager, , typedef arelent, Relocations
  1318. SUBSECTION
  1319. The howto manager
  1320. When an application wants to create a relocation, but doesn't
  1321. know what the target machine might call it, it can find out by
  1322. using this bit of code.
  1323. */
  1324. /*
  1325. TYPEDEF
  1326. bfd_reloc_code_type
  1327. DESCRIPTION
  1328. The insides of a reloc code. The idea is that, eventually, there
  1329. will be one enumerator for every type of relocation we ever do.
  1330. Pass one of these values to <<bfd_reloc_type_lookup>>, and it'll
  1331. return a howto pointer.
  1332. This does mean that the application must determine the correct
  1333. enumerator value; you can't get a howto pointer from a random set
  1334. of attributes.
  1335. SENUM
  1336. bfd_reloc_code_real
  1337. ENUM
  1338. BFD_RELOC_64
  1339. ENUMX
  1340. BFD_RELOC_32
  1341. ENUMX
  1342. BFD_RELOC_26
  1343. ENUMX
  1344. BFD_RELOC_24
  1345. ENUMX
  1346. BFD_RELOC_16
  1347. ENUMX
  1348. BFD_RELOC_14
  1349. ENUMX
  1350. BFD_RELOC_8
  1351. ENUMDOC
  1352. Basic absolute relocations of N bits.
  1353. ENUM
  1354. BFD_RELOC_64_PCREL
  1355. ENUMX
  1356. BFD_RELOC_32_PCREL
  1357. ENUMX
  1358. BFD_RELOC_24_PCREL
  1359. ENUMX
  1360. BFD_RELOC_16_PCREL
  1361. ENUMX
  1362. BFD_RELOC_12_PCREL
  1363. ENUMX
  1364. BFD_RELOC_8_PCREL
  1365. ENUMDOC
  1366. PC-relative relocations. Sometimes these are relative to the address
  1367. of the relocation itself; sometimes they are relative to the start of
  1368. the section containing the relocation. It depends on the specific target.
  1369. ENUM
  1370. BFD_RELOC_32_SECREL
  1371. ENUMX
  1372. BFD_RELOC_16_SECIDX
  1373. ENUMDOC
  1374. Section relative relocations. Some targets need this for DWARF2.
  1375. ENUM
  1376. BFD_RELOC_32_GOT_PCREL
  1377. ENUMX
  1378. BFD_RELOC_16_GOT_PCREL
  1379. ENUMX
  1380. BFD_RELOC_8_GOT_PCREL
  1381. ENUMX
  1382. BFD_RELOC_32_GOTOFF
  1383. ENUMX
  1384. BFD_RELOC_16_GOTOFF
  1385. ENUMX
  1386. BFD_RELOC_LO16_GOTOFF
  1387. ENUMX
  1388. BFD_RELOC_HI16_GOTOFF
  1389. ENUMX
  1390. BFD_RELOC_HI16_S_GOTOFF
  1391. ENUMX
  1392. BFD_RELOC_8_GOTOFF
  1393. ENUMX
  1394. BFD_RELOC_64_PLT_PCREL
  1395. ENUMX
  1396. BFD_RELOC_32_PLT_PCREL
  1397. ENUMX
  1398. BFD_RELOC_24_PLT_PCREL
  1399. ENUMX
  1400. BFD_RELOC_16_PLT_PCREL
  1401. ENUMX
  1402. BFD_RELOC_8_PLT_PCREL
  1403. ENUMX
  1404. BFD_RELOC_64_PLTOFF
  1405. ENUMX
  1406. BFD_RELOC_32_PLTOFF
  1407. ENUMX
  1408. BFD_RELOC_16_PLTOFF
  1409. ENUMX
  1410. BFD_RELOC_LO16_PLTOFF
  1411. ENUMX
  1412. BFD_RELOC_HI16_PLTOFF
  1413. ENUMX
  1414. BFD_RELOC_HI16_S_PLTOFF
  1415. ENUMX
  1416. BFD_RELOC_8_PLTOFF
  1417. ENUMDOC
  1418. For ELF.
  1419. ENUM
  1420. BFD_RELOC_SIZE32
  1421. ENUMX
  1422. BFD_RELOC_SIZE64
  1423. ENUMDOC
  1424. Size relocations.
  1425. ENUM
  1426. BFD_RELOC_68K_GLOB_DAT
  1427. ENUMX
  1428. BFD_RELOC_68K_JMP_SLOT
  1429. ENUMX
  1430. BFD_RELOC_68K_RELATIVE
  1431. ENUMX
  1432. BFD_RELOC_68K_TLS_GD32
  1433. ENUMX
  1434. BFD_RELOC_68K_TLS_GD16
  1435. ENUMX
  1436. BFD_RELOC_68K_TLS_GD8
  1437. ENUMX
  1438. BFD_RELOC_68K_TLS_LDM32
  1439. ENUMX
  1440. BFD_RELOC_68K_TLS_LDM16
  1441. ENUMX
  1442. BFD_RELOC_68K_TLS_LDM8
  1443. ENUMX
  1444. BFD_RELOC_68K_TLS_LDO32
  1445. ENUMX
  1446. BFD_RELOC_68K_TLS_LDO16
  1447. ENUMX
  1448. BFD_RELOC_68K_TLS_LDO8
  1449. ENUMX
  1450. BFD_RELOC_68K_TLS_IE32
  1451. ENUMX
  1452. BFD_RELOC_68K_TLS_IE16
  1453. ENUMX
  1454. BFD_RELOC_68K_TLS_IE8
  1455. ENUMX
  1456. BFD_RELOC_68K_TLS_LE32
  1457. ENUMX
  1458. BFD_RELOC_68K_TLS_LE16
  1459. ENUMX
  1460. BFD_RELOC_68K_TLS_LE8
  1461. ENUMDOC
  1462. Relocations used by 68K ELF.
  1463. ENUM
  1464. BFD_RELOC_32_BASEREL
  1465. ENUMX
  1466. BFD_RELOC_16_BASEREL
  1467. ENUMX
  1468. BFD_RELOC_LO16_BASEREL
  1469. ENUMX
  1470. BFD_RELOC_HI16_BASEREL
  1471. ENUMX
  1472. BFD_RELOC_HI16_S_BASEREL
  1473. ENUMX
  1474. BFD_RELOC_8_BASEREL
  1475. ENUMX
  1476. BFD_RELOC_RVA
  1477. ENUMDOC
  1478. Linkage-table relative.
  1479. ENUM
  1480. BFD_RELOC_8_FFnn
  1481. ENUMDOC
  1482. Absolute 8-bit relocation, but used to form an address like 0xFFnn.
  1483. ENUM
  1484. BFD_RELOC_32_PCREL_S2
  1485. ENUMX
  1486. BFD_RELOC_16_PCREL_S2
  1487. ENUMX
  1488. BFD_RELOC_23_PCREL_S2
  1489. ENUMDOC
  1490. These PC-relative relocations are stored as word displacements --
  1491. i.e., byte displacements shifted right two bits. The 30-bit word
  1492. displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
  1493. SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The
  1494. signed 16-bit displacement is used on the MIPS, and the 23-bit
  1495. displacement is used on the Alpha.
  1496. ENUM
  1497. BFD_RELOC_HI22
  1498. ENUMX
  1499. BFD_RELOC_LO10
  1500. ENUMDOC
  1501. High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
  1502. the target word. These are used on the SPARC.
  1503. ENUM
  1504. BFD_RELOC_GPREL16
  1505. ENUMX
  1506. BFD_RELOC_GPREL32
  1507. ENUMDOC
  1508. For systems that allocate a Global Pointer register, these are
  1509. displacements off that register. These relocation types are
  1510. handled specially, because the value the register will have is
  1511. decided relatively late.
  1512. ENUM
  1513. BFD_RELOC_NONE
  1514. ENUMX
  1515. BFD_RELOC_SPARC_WDISP22
  1516. ENUMX
  1517. BFD_RELOC_SPARC22
  1518. ENUMX
  1519. BFD_RELOC_SPARC13
  1520. ENUMX
  1521. BFD_RELOC_SPARC_GOT10
  1522. ENUMX
  1523. BFD_RELOC_SPARC_GOT13
  1524. ENUMX
  1525. BFD_RELOC_SPARC_GOT22
  1526. ENUMX
  1527. BFD_RELOC_SPARC_PC10
  1528. ENUMX
  1529. BFD_RELOC_SPARC_PC22
  1530. ENUMX
  1531. BFD_RELOC_SPARC_WPLT30
  1532. ENUMX
  1533. BFD_RELOC_SPARC_COPY
  1534. ENUMX
  1535. BFD_RELOC_SPARC_GLOB_DAT
  1536. ENUMX
  1537. BFD_RELOC_SPARC_JMP_SLOT
  1538. ENUMX
  1539. BFD_RELOC_SPARC_RELATIVE
  1540. ENUMX
  1541. BFD_RELOC_SPARC_UA16
  1542. ENUMX
  1543. BFD_RELOC_SPARC_UA32
  1544. ENUMX
  1545. BFD_RELOC_SPARC_UA64
  1546. ENUMX
  1547. BFD_RELOC_SPARC_GOTDATA_HIX22
  1548. ENUMX
  1549. BFD_RELOC_SPARC_GOTDATA_LOX10
  1550. ENUMX
  1551. BFD_RELOC_SPARC_GOTDATA_OP_HIX22
  1552. ENUMX
  1553. BFD_RELOC_SPARC_GOTDATA_OP_LOX10
  1554. ENUMX
  1555. BFD_RELOC_SPARC_GOTDATA_OP
  1556. ENUMX
  1557. BFD_RELOC_SPARC_JMP_IREL
  1558. ENUMX
  1559. BFD_RELOC_SPARC_IRELATIVE
  1560. ENUMDOC
  1561. SPARC ELF relocations. There is probably some overlap with other
  1562. relocation types already defined.
  1563. ENUM
  1564. BFD_RELOC_SPARC_BASE13
  1565. ENUMX
  1566. BFD_RELOC_SPARC_BASE22
  1567. ENUMDOC
  1568. I think these are specific to SPARC a.out (e.g., Sun 4).
  1569. ENUMEQ
  1570. BFD_RELOC_SPARC_64
  1571. BFD_RELOC_64
  1572. ENUMX
  1573. BFD_RELOC_SPARC_10
  1574. ENUMX
  1575. BFD_RELOC_SPARC_11
  1576. ENUMX
  1577. BFD_RELOC_SPARC_OLO10
  1578. ENUMX
  1579. BFD_RELOC_SPARC_HH22
  1580. ENUMX
  1581. BFD_RELOC_SPARC_HM10
  1582. ENUMX
  1583. BFD_RELOC_SPARC_LM22
  1584. ENUMX
  1585. BFD_RELOC_SPARC_PC_HH22
  1586. ENUMX
  1587. BFD_RELOC_SPARC_PC_HM10
  1588. ENUMX
  1589. BFD_RELOC_SPARC_PC_LM22
  1590. ENUMX
  1591. BFD_RELOC_SPARC_WDISP16
  1592. ENUMX
  1593. BFD_RELOC_SPARC_WDISP19
  1594. ENUMX
  1595. BFD_RELOC_SPARC_7
  1596. ENUMX
  1597. BFD_RELOC_SPARC_6
  1598. ENUMX
  1599. BFD_RELOC_SPARC_5
  1600. ENUMEQX
  1601. BFD_RELOC_SPARC_DISP64
  1602. BFD_RELOC_64_PCREL
  1603. ENUMX
  1604. BFD_RELOC_SPARC_PLT32
  1605. ENUMX
  1606. BFD_RELOC_SPARC_PLT64
  1607. ENUMX
  1608. BFD_RELOC_SPARC_HIX22
  1609. ENUMX
  1610. BFD_RELOC_SPARC_LOX10
  1611. ENUMX
  1612. BFD_RELOC_SPARC_H44
  1613. ENUMX
  1614. BFD_RELOC_SPARC_M44
  1615. ENUMX
  1616. BFD_RELOC_SPARC_L44
  1617. ENUMX
  1618. BFD_RELOC_SPARC_REGISTER
  1619. ENUMX
  1620. BFD_RELOC_SPARC_H34
  1621. ENUMX
  1622. BFD_RELOC_SPARC_SIZE32
  1623. ENUMX
  1624. BFD_RELOC_SPARC_SIZE64
  1625. ENUMX
  1626. BFD_RELOC_SPARC_WDISP10
  1627. ENUMDOC
  1628. SPARC64 relocations
  1629. ENUM
  1630. BFD_RELOC_SPARC_REV32
  1631. ENUMDOC
  1632. SPARC little endian relocation
  1633. ENUM
  1634. BFD_RELOC_SPARC_TLS_GD_HI22
  1635. ENUMX
  1636. BFD_RELOC_SPARC_TLS_GD_LO10
  1637. ENUMX
  1638. BFD_RELOC_SPARC_TLS_GD_ADD
  1639. ENUMX
  1640. BFD_RELOC_SPARC_TLS_GD_CALL
  1641. ENUMX
  1642. BFD_RELOC_SPARC_TLS_LDM_HI22
  1643. ENUMX
  1644. BFD_RELOC_SPARC_TLS_LDM_LO10
  1645. ENUMX
  1646. BFD_RELOC_SPARC_TLS_LDM_ADD
  1647. ENUMX
  1648. BFD_RELOC_SPARC_TLS_LDM_CALL
  1649. ENUMX
  1650. BFD_RELOC_SPARC_TLS_LDO_HIX22
  1651. ENUMX
  1652. BFD_RELOC_SPARC_TLS_LDO_LOX10
  1653. ENUMX
  1654. BFD_RELOC_SPARC_TLS_LDO_ADD
  1655. ENUMX
  1656. BFD_RELOC_SPARC_TLS_IE_HI22
  1657. ENUMX
  1658. BFD_RELOC_SPARC_TLS_IE_LO10
  1659. ENUMX
  1660. BFD_RELOC_SPARC_TLS_IE_LD
  1661. ENUMX
  1662. BFD_RELOC_SPARC_TLS_IE_LDX
  1663. ENUMX
  1664. BFD_RELOC_SPARC_TLS_IE_ADD
  1665. ENUMX
  1666. BFD_RELOC_SPARC_TLS_LE_HIX22
  1667. ENUMX
  1668. BFD_RELOC_SPARC_TLS_LE_LOX10
  1669. ENUMX
  1670. BFD_RELOC_SPARC_TLS_DTPMOD32
  1671. ENUMX
  1672. BFD_RELOC_SPARC_TLS_DTPMOD64
  1673. ENUMX
  1674. BFD_RELOC_SPARC_TLS_DTPOFF32
  1675. ENUMX
  1676. BFD_RELOC_SPARC_TLS_DTPOFF64
  1677. ENUMX
  1678. BFD_RELOC_SPARC_TLS_TPOFF32
  1679. ENUMX
  1680. BFD_RELOC_SPARC_TLS_TPOFF64
  1681. ENUMDOC
  1682. SPARC TLS relocations
  1683. ENUM
  1684. BFD_RELOC_SPU_IMM7
  1685. ENUMX
  1686. BFD_RELOC_SPU_IMM8
  1687. ENUMX
  1688. BFD_RELOC_SPU_IMM10
  1689. ENUMX
  1690. BFD_RELOC_SPU_IMM10W
  1691. ENUMX
  1692. BFD_RELOC_SPU_IMM16
  1693. ENUMX
  1694. BFD_RELOC_SPU_IMM16W
  1695. ENUMX
  1696. BFD_RELOC_SPU_IMM18
  1697. ENUMX
  1698. BFD_RELOC_SPU_PCREL9a
  1699. ENUMX
  1700. BFD_RELOC_SPU_PCREL9b
  1701. ENUMX
  1702. BFD_RELOC_SPU_PCREL16
  1703. ENUMX
  1704. BFD_RELOC_SPU_LO16
  1705. ENUMX
  1706. BFD_RELOC_SPU_HI16
  1707. ENUMX
  1708. BFD_RELOC_SPU_PPU32
  1709. ENUMX
  1710. BFD_RELOC_SPU_PPU64
  1711. ENUMX
  1712. BFD_RELOC_SPU_ADD_PIC
  1713. ENUMDOC
  1714. SPU Relocations.
  1715. ENUM
  1716. BFD_RELOC_ALPHA_GPDISP_HI16
  1717. ENUMDOC
  1718. Alpha ECOFF and ELF relocations. Some of these treat the symbol or
  1719. "addend" in some special way.
  1720. For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
  1721. writing; when reading, it will be the absolute section symbol. The
  1722. addend is the displacement in bytes of the "lda" instruction from
  1723. the "ldah" instruction (which is at the address of this reloc).
  1724. ENUM
  1725. BFD_RELOC_ALPHA_GPDISP_LO16
  1726. ENUMDOC
  1727. For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
  1728. with GPDISP_HI16 relocs. The addend is ignored when writing the
  1729. relocations out, and is filled in with the file's GP value on
  1730. reading, for convenience.
  1731. ENUM
  1732. BFD_RELOC_ALPHA_GPDISP
  1733. ENUMDOC
  1734. The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
  1735. relocation except that there is no accompanying GPDISP_LO16
  1736. relocation.
  1737. ENUM
  1738. BFD_RELOC_ALPHA_LITERAL
  1739. ENUMX
  1740. BFD_RELOC_ALPHA_ELF_LITERAL
  1741. ENUMX
  1742. BFD_RELOC_ALPHA_LITUSE
  1743. ENUMDOC
  1744. The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
  1745. the assembler turns it into a LDQ instruction to load the address of
  1746. the symbol, and then fills in a register in the real instruction.
  1747. The LITERAL reloc, at the LDQ instruction, refers to the .lita
  1748. section symbol. The addend is ignored when writing, but is filled
  1749. in with the file's GP value on reading, for convenience, as with the
  1750. GPDISP_LO16 reloc.
  1751. The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
  1752. It should refer to the symbol to be referenced, as with 16_GOTOFF,
  1753. but it generates output not based on the position within the .got
  1754. section, but relative to the GP value chosen for the file during the
  1755. final link stage.
  1756. The LITUSE reloc, on the instruction using the loaded address, gives
  1757. information to the linker that it might be able to use to optimize
  1758. away some literal section references. The symbol is ignored (read
  1759. as the absolute section symbol), and the "addend" indicates the type
  1760. of instruction using the register:
  1761. 1 - "memory" fmt insn
  1762. 2 - byte-manipulation (byte offset reg)
  1763. 3 - jsr (target of branch)
  1764. ENUM
  1765. BFD_RELOC_ALPHA_HINT
  1766. ENUMDOC
  1767. The HINT relocation indicates a value that should be filled into the
  1768. "hint" field of a jmp/jsr/ret instruction, for possible branch-
  1769. prediction logic which may be provided on some processors.
  1770. ENUM
  1771. BFD_RELOC_ALPHA_LINKAGE
  1772. ENUMDOC
  1773. The LINKAGE relocation outputs a linkage pair in the object file,
  1774. which is filled by the linker.
  1775. ENUM
  1776. BFD_RELOC_ALPHA_CODEADDR
  1777. ENUMDOC
  1778. The CODEADDR relocation outputs a STO_CA in the object file,
  1779. which is filled by the linker.
  1780. ENUM
  1781. BFD_RELOC_ALPHA_GPREL_HI16
  1782. ENUMX
  1783. BFD_RELOC_ALPHA_GPREL_LO16
  1784. ENUMDOC
  1785. The GPREL_HI/LO relocations together form a 32-bit offset from the
  1786. GP register.
  1787. ENUM
  1788. BFD_RELOC_ALPHA_BRSGP
  1789. ENUMDOC
  1790. Like BFD_RELOC_23_PCREL_S2, except that the source and target must
  1791. share a common GP, and the target address is adjusted for
  1792. STO_ALPHA_STD_GPLOAD.
  1793. ENUM
  1794. BFD_RELOC_ALPHA_NOP
  1795. ENUMDOC
  1796. The NOP relocation outputs a NOP if the longword displacement
  1797. between two procedure entry points is < 2^21.
  1798. ENUM
  1799. BFD_RELOC_ALPHA_BSR
  1800. ENUMDOC
  1801. The BSR relocation outputs a BSR if the longword displacement
  1802. between two procedure entry points is < 2^21.
  1803. ENUM
  1804. BFD_RELOC_ALPHA_LDA
  1805. ENUMDOC
  1806. The LDA relocation outputs a LDA if the longword displacement
  1807. between two procedure entry points is < 2^16.
  1808. ENUM
  1809. BFD_RELOC_ALPHA_BOH
  1810. ENUMDOC
  1811. The BOH relocation outputs a BSR if the longword displacement
  1812. between two procedure entry points is < 2^21, or else a hint.
  1813. ENUM
  1814. BFD_RELOC_ALPHA_TLSGD
  1815. ENUMX
  1816. BFD_RELOC_ALPHA_TLSLDM
  1817. ENUMX
  1818. BFD_RELOC_ALPHA_DTPMOD64
  1819. ENUMX
  1820. BFD_RELOC_ALPHA_GOTDTPREL16
  1821. ENUMX
  1822. BFD_RELOC_ALPHA_DTPREL64
  1823. ENUMX
  1824. BFD_RELOC_ALPHA_DTPREL_HI16
  1825. ENUMX
  1826. BFD_RELOC_ALPHA_DTPREL_LO16
  1827. ENUMX
  1828. BFD_RELOC_ALPHA_DTPREL16
  1829. ENUMX
  1830. BFD_RELOC_ALPHA_GOTTPREL16
  1831. ENUMX
  1832. BFD_RELOC_ALPHA_TPREL64
  1833. ENUMX
  1834. BFD_RELOC_ALPHA_TPREL_HI16
  1835. ENUMX
  1836. BFD_RELOC_ALPHA_TPREL_LO16
  1837. ENUMX
  1838. BFD_RELOC_ALPHA_TPREL16
  1839. ENUMDOC
  1840. Alpha thread-local storage relocations.
  1841. ENUM
  1842. BFD_RELOC_MIPS_JMP
  1843. ENUMX
  1844. BFD_RELOC_MICROMIPS_JMP
  1845. ENUMDOC
  1846. The MIPS jump instruction.
  1847. ENUM
  1848. BFD_RELOC_MIPS16_JMP
  1849. ENUMDOC
  1850. The MIPS16 jump instruction.
  1851. ENUM
  1852. BFD_RELOC_MIPS16_GPREL
  1853. ENUMDOC
  1854. MIPS16 GP relative reloc.
  1855. ENUM
  1856. BFD_RELOC_HI16
  1857. ENUMDOC
  1858. High 16 bits of 32-bit value; simple reloc.
  1859. ENUM
  1860. BFD_RELOC_HI16_S
  1861. ENUMDOC
  1862. High 16 bits of 32-bit value but the low 16 bits will be sign
  1863. extended and added to form the final result. If the low 16
  1864. bits form a negative number, we need to add one to the high value
  1865. to compensate for the borrow when the low bits are added.
  1866. ENUM
  1867. BFD_RELOC_LO16
  1868. ENUMDOC
  1869. Low 16 bits.
  1870. ENUM
  1871. BFD_RELOC_HI16_PCREL
  1872. ENUMDOC
  1873. High 16 bits of 32-bit pc-relative value
  1874. ENUM
  1875. BFD_RELOC_HI16_S_PCREL
  1876. ENUMDOC
  1877. High 16 bits of 32-bit pc-relative value, adjusted
  1878. ENUM
  1879. BFD_RELOC_LO16_PCREL
  1880. ENUMDOC
  1881. Low 16 bits of pc-relative value
  1882. ENUM
  1883. BFD_RELOC_MIPS16_GOT16
  1884. ENUMX
  1885. BFD_RELOC_MIPS16_CALL16
  1886. ENUMDOC
  1887. Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
  1888. 16-bit immediate fields
  1889. ENUM
  1890. BFD_RELOC_MIPS16_HI16
  1891. ENUMDOC
  1892. MIPS16 high 16 bits of 32-bit value.
  1893. ENUM
  1894. BFD_RELOC_MIPS16_HI16_S
  1895. ENUMDOC
  1896. MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
  1897. extended and added to form the final result. If the low 16
  1898. bits form a negative number, we need to add one to the high value
  1899. to compensate for the borrow when the low bits are added.
  1900. ENUM
  1901. BFD_RELOC_MIPS16_LO16
  1902. ENUMDOC
  1903. MIPS16 low 16 bits.
  1904. ENUM
  1905. BFD_RELOC_MIPS16_TLS_GD
  1906. ENUMX
  1907. BFD_RELOC_MIPS16_TLS_LDM
  1908. ENUMX
  1909. BFD_RELOC_MIPS16_TLS_DTPREL_HI16
  1910. ENUMX
  1911. BFD_RELOC_MIPS16_TLS_DTPREL_LO16
  1912. ENUMX
  1913. BFD_RELOC_MIPS16_TLS_GOTTPREL
  1914. ENUMX
  1915. BFD_RELOC_MIPS16_TLS_TPREL_HI16
  1916. ENUMX
  1917. BFD_RELOC_MIPS16_TLS_TPREL_LO16
  1918. ENUMDOC
  1919. MIPS16 TLS relocations
  1920. ENUM
  1921. BFD_RELOC_MIPS_LITERAL
  1922. ENUMX
  1923. BFD_RELOC_MICROMIPS_LITERAL
  1924. ENUMDOC
  1925. Relocation against a MIPS literal section.
  1926. ENUM
  1927. BFD_RELOC_MICROMIPS_7_PCREL_S1
  1928. ENUMX
  1929. BFD_RELOC_MICROMIPS_10_PCREL_S1
  1930. ENUMX
  1931. BFD_RELOC_MICROMIPS_16_PCREL_S1
  1932. ENUMDOC
  1933. microMIPS PC-relative relocations.
  1934. ENUM
  1935. BFD_RELOC_MIPS16_16_PCREL_S1
  1936. ENUMDOC
  1937. MIPS16 PC-relative relocation.
  1938. ENUM
  1939. BFD_RELOC_MIPS_21_PCREL_S2
  1940. ENUMX
  1941. BFD_RELOC_MIPS_26_PCREL_S2
  1942. ENUMX
  1943. BFD_RELOC_MIPS_18_PCREL_S3
  1944. ENUMX
  1945. BFD_RELOC_MIPS_19_PCREL_S2
  1946. ENUMDOC
  1947. MIPS PC-relative relocations.
  1948. ENUM
  1949. BFD_RELOC_MICROMIPS_GPREL16
  1950. ENUMX
  1951. BFD_RELOC_MICROMIPS_HI16
  1952. ENUMX
  1953. BFD_RELOC_MICROMIPS_HI16_S
  1954. ENUMX
  1955. BFD_RELOC_MICROMIPS_LO16
  1956. ENUMDOC
  1957. microMIPS versions of generic BFD relocs.
  1958. ENUM
  1959. BFD_RELOC_MIPS_GOT16
  1960. ENUMX
  1961. BFD_RELOC_MICROMIPS_GOT16
  1962. ENUMX
  1963. BFD_RELOC_MIPS_CALL16
  1964. ENUMX
  1965. BFD_RELOC_MICROMIPS_CALL16
  1966. ENUMX
  1967. BFD_RELOC_MIPS_GOT_HI16
  1968. ENUMX
  1969. BFD_RELOC_MICROMIPS_GOT_HI16
  1970. ENUMX
  1971. BFD_RELOC_MIPS_GOT_LO16
  1972. ENUMX
  1973. BFD_RELOC_MICROMIPS_GOT_LO16
  1974. ENUMX
  1975. BFD_RELOC_MIPS_CALL_HI16
  1976. ENUMX
  1977. BFD_RELOC_MICROMIPS_CALL_HI16
  1978. ENUMX
  1979. BFD_RELOC_MIPS_CALL_LO16
  1980. ENUMX
  1981. BFD_RELOC_MICROMIPS_CALL_LO16
  1982. ENUMX
  1983. BFD_RELOC_MIPS_SUB
  1984. ENUMX
  1985. BFD_RELOC_MICROMIPS_SUB
  1986. ENUMX
  1987. BFD_RELOC_MIPS_GOT_PAGE
  1988. ENUMX
  1989. BFD_RELOC_MICROMIPS_GOT_PAGE
  1990. ENUMX
  1991. BFD_RELOC_MIPS_GOT_OFST
  1992. ENUMX
  1993. BFD_RELOC_MICROMIPS_GOT_OFST
  1994. ENUMX
  1995. BFD_RELOC_MIPS_GOT_DISP
  1996. ENUMX
  1997. BFD_RELOC_MICROMIPS_GOT_DISP
  1998. ENUMX
  1999. BFD_RELOC_MIPS_SHIFT5
  2000. ENUMX
  2001. BFD_RELOC_MIPS_SHIFT6
  2002. ENUMX
  2003. BFD_RELOC_MIPS_INSERT_A
  2004. ENUMX
  2005. BFD_RELOC_MIPS_INSERT_B
  2006. ENUMX
  2007. BFD_RELOC_MIPS_DELETE
  2008. ENUMX
  2009. BFD_RELOC_MIPS_HIGHEST
  2010. ENUMX
  2011. BFD_RELOC_MICROMIPS_HIGHEST
  2012. ENUMX
  2013. BFD_RELOC_MIPS_HIGHER
  2014. ENUMX
  2015. BFD_RELOC_MICROMIPS_HIGHER
  2016. ENUMX
  2017. BFD_RELOC_MIPS_SCN_DISP
  2018. ENUMX
  2019. BFD_RELOC_MICROMIPS_SCN_DISP
  2020. ENUMX
  2021. BFD_RELOC_MIPS_REL16
  2022. ENUMX
  2023. BFD_RELOC_MIPS_RELGOT
  2024. ENUMX
  2025. BFD_RELOC_MIPS_JALR
  2026. ENUMX
  2027. BFD_RELOC_MICROMIPS_JALR
  2028. ENUMX
  2029. BFD_RELOC_MIPS_TLS_DTPMOD32
  2030. ENUMX
  2031. BFD_RELOC_MIPS_TLS_DTPREL32
  2032. ENUMX
  2033. BFD_RELOC_MIPS_TLS_DTPMOD64
  2034. ENUMX
  2035. BFD_RELOC_MIPS_TLS_DTPREL64
  2036. ENUMX
  2037. BFD_RELOC_MIPS_TLS_GD
  2038. ENUMX
  2039. BFD_RELOC_MICROMIPS_TLS_GD
  2040. ENUMX
  2041. BFD_RELOC_MIPS_TLS_LDM
  2042. ENUMX
  2043. BFD_RELOC_MICROMIPS_TLS_LDM
  2044. ENUMX
  2045. BFD_RELOC_MIPS_TLS_DTPREL_HI16
  2046. ENUMX
  2047. BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
  2048. ENUMX
  2049. BFD_RELOC_MIPS_TLS_DTPREL_LO16
  2050. ENUMX
  2051. BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
  2052. ENUMX
  2053. BFD_RELOC_MIPS_TLS_GOTTPREL
  2054. ENUMX
  2055. BFD_RELOC_MICROMIPS_TLS_GOTTPREL
  2056. ENUMX
  2057. BFD_RELOC_MIPS_TLS_TPREL32
  2058. ENUMX
  2059. BFD_RELOC_MIPS_TLS_TPREL64
  2060. ENUMX
  2061. BFD_RELOC_MIPS_TLS_TPREL_HI16
  2062. ENUMX
  2063. BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
  2064. ENUMX
  2065. BFD_RELOC_MIPS_TLS_TPREL_LO16
  2066. ENUMX
  2067. BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
  2068. ENUMX
  2069. BFD_RELOC_MIPS_EH
  2070. ENUMDOC
  2071. MIPS ELF relocations.
  2072. COMMENT
  2073. ENUM
  2074. BFD_RELOC_MIPS_COPY
  2075. ENUMX
  2076. BFD_RELOC_MIPS_JUMP_SLOT
  2077. ENUMDOC
  2078. MIPS ELF relocations (VxWorks and PLT extensions).
  2079. COMMENT
  2080. ENUM
  2081. BFD_RELOC_MOXIE_10_PCREL
  2082. ENUMDOC
  2083. Moxie ELF relocations.
  2084. COMMENT
  2085. ENUM
  2086. BFD_RELOC_FT32_10
  2087. ENUMX
  2088. BFD_RELOC_FT32_20
  2089. ENUMX
  2090. BFD_RELOC_FT32_17
  2091. ENUMX
  2092. BFD_RELOC_FT32_18
  2093. ENUMX
  2094. BFD_RELOC_FT32_RELAX
  2095. ENUMX
  2096. BFD_RELOC_FT32_SC0
  2097. ENUMX
  2098. BFD_RELOC_FT32_SC1
  2099. ENUMX
  2100. BFD_RELOC_FT32_15
  2101. ENUMX
  2102. BFD_RELOC_FT32_DIFF32
  2103. ENUMDOC
  2104. FT32 ELF relocations.
  2105. COMMENT
  2106. ENUM
  2107. BFD_RELOC_FRV_LABEL16
  2108. ENUMX
  2109. BFD_RELOC_FRV_LABEL24
  2110. ENUMX
  2111. BFD_RELOC_FRV_LO16
  2112. ENUMX
  2113. BFD_RELOC_FRV_HI16
  2114. ENUMX
  2115. BFD_RELOC_FRV_GPREL12
  2116. ENUMX
  2117. BFD_RELOC_FRV_GPRELU12
  2118. ENUMX
  2119. BFD_RELOC_FRV_GPREL32
  2120. ENUMX
  2121. BFD_RELOC_FRV_GPRELHI
  2122. ENUMX
  2123. BFD_RELOC_FRV_GPRELLO
  2124. ENUMX
  2125. BFD_RELOC_FRV_GOT12
  2126. ENUMX
  2127. BFD_RELOC_FRV_GOTHI
  2128. ENUMX
  2129. BFD_RELOC_FRV_GOTLO
  2130. ENUMX
  2131. BFD_RELOC_FRV_FUNCDESC
  2132. ENUMX
  2133. BFD_RELOC_FRV_FUNCDESC_GOT12
  2134. ENUMX
  2135. BFD_RELOC_FRV_FUNCDESC_GOTHI
  2136. ENUMX
  2137. BFD_RELOC_FRV_FUNCDESC_GOTLO
  2138. ENUMX
  2139. BFD_RELOC_FRV_FUNCDESC_VALUE
  2140. ENUMX
  2141. BFD_RELOC_FRV_FUNCDESC_GOTOFF12
  2142. ENUMX
  2143. BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
  2144. ENUMX
  2145. BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
  2146. ENUMX
  2147. BFD_RELOC_FRV_GOTOFF12
  2148. ENUMX
  2149. BFD_RELOC_FRV_GOTOFFHI
  2150. ENUMX
  2151. BFD_RELOC_FRV_GOTOFFLO
  2152. ENUMX
  2153. BFD_RELOC_FRV_GETTLSOFF
  2154. ENUMX
  2155. BFD_RELOC_FRV_TLSDESC_VALUE
  2156. ENUMX
  2157. BFD_RELOC_FRV_GOTTLSDESC12
  2158. ENUMX
  2159. BFD_RELOC_FRV_GOTTLSDESCHI
  2160. ENUMX
  2161. BFD_RELOC_FRV_GOTTLSDESCLO
  2162. ENUMX
  2163. BFD_RELOC_FRV_TLSMOFF12
  2164. ENUMX
  2165. BFD_RELOC_FRV_TLSMOFFHI
  2166. ENUMX
  2167. BFD_RELOC_FRV_TLSMOFFLO
  2168. ENUMX
  2169. BFD_RELOC_FRV_GOTTLSOFF12
  2170. ENUMX
  2171. BFD_RELOC_FRV_GOTTLSOFFHI
  2172. ENUMX
  2173. BFD_RELOC_FRV_GOTTLSOFFLO
  2174. ENUMX
  2175. BFD_RELOC_FRV_TLSOFF
  2176. ENUMX
  2177. BFD_RELOC_FRV_TLSDESC_RELAX
  2178. ENUMX
  2179. BFD_RELOC_FRV_GETTLSOFF_RELAX
  2180. ENUMX
  2181. BFD_RELOC_FRV_TLSOFF_RELAX
  2182. ENUMX
  2183. BFD_RELOC_FRV_TLSMOFF
  2184. ENUMDOC
  2185. Fujitsu Frv Relocations.
  2186. COMMENT
  2187. ENUM
  2188. BFD_RELOC_MN10300_GOTOFF24
  2189. ENUMDOC
  2190. This is a 24bit GOT-relative reloc for the mn10300.
  2191. ENUM
  2192. BFD_RELOC_MN10300_GOT32
  2193. ENUMDOC
  2194. This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
  2195. in the instruction.
  2196. ENUM
  2197. BFD_RELOC_MN10300_GOT24
  2198. ENUMDOC
  2199. This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
  2200. in the instruction.
  2201. ENUM
  2202. BFD_RELOC_MN10300_GOT16
  2203. ENUMDOC
  2204. This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
  2205. in the instruction.
  2206. ENUM
  2207. BFD_RELOC_MN10300_COPY
  2208. ENUMDOC
  2209. Copy symbol at runtime.
  2210. ENUM
  2211. BFD_RELOC_MN10300_GLOB_DAT
  2212. ENUMDOC
  2213. Create GOT entry.
  2214. ENUM
  2215. BFD_RELOC_MN10300_JMP_SLOT
  2216. ENUMDOC
  2217. Create PLT entry.
  2218. ENUM
  2219. BFD_RELOC_MN10300_RELATIVE
  2220. ENUMDOC
  2221. Adjust by program base.
  2222. ENUM
  2223. BFD_RELOC_MN10300_SYM_DIFF
  2224. ENUMDOC
  2225. Together with another reloc targeted at the same location,
  2226. allows for a value that is the difference of two symbols
  2227. in the same section.
  2228. ENUM
  2229. BFD_RELOC_MN10300_ALIGN
  2230. ENUMDOC
  2231. The addend of this reloc is an alignment power that must
  2232. be honoured at the offset's location, regardless of linker
  2233. relaxation.
  2234. ENUM
  2235. BFD_RELOC_MN10300_TLS_GD
  2236. ENUMX
  2237. BFD_RELOC_MN10300_TLS_LD
  2238. ENUMX
  2239. BFD_RELOC_MN10300_TLS_LDO
  2240. ENUMX
  2241. BFD_RELOC_MN10300_TLS_GOTIE
  2242. ENUMX
  2243. BFD_RELOC_MN10300_TLS_IE
  2244. ENUMX
  2245. BFD_RELOC_MN10300_TLS_LE
  2246. ENUMX
  2247. BFD_RELOC_MN10300_TLS_DTPMOD
  2248. ENUMX
  2249. BFD_RELOC_MN10300_TLS_DTPOFF
  2250. ENUMX
  2251. BFD_RELOC_MN10300_TLS_TPOFF
  2252. ENUMDOC
  2253. Various TLS-related relocations.
  2254. ENUM
  2255. BFD_RELOC_MN10300_32_PCREL
  2256. ENUMDOC
  2257. This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
  2258. instruction.
  2259. ENUM
  2260. BFD_RELOC_MN10300_16_PCREL
  2261. ENUMDOC
  2262. This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
  2263. instruction.
  2264. COMMENT
  2265. ENUM
  2266. BFD_RELOC_386_GOT32
  2267. ENUMX
  2268. BFD_RELOC_386_PLT32
  2269. ENUMX
  2270. BFD_RELOC_386_COPY
  2271. ENUMX
  2272. BFD_RELOC_386_GLOB_DAT
  2273. ENUMX
  2274. BFD_RELOC_386_JUMP_SLOT
  2275. ENUMX
  2276. BFD_RELOC_386_RELATIVE
  2277. ENUMX
  2278. BFD_RELOC_386_GOTOFF
  2279. ENUMX
  2280. BFD_RELOC_386_GOTPC
  2281. ENUMX
  2282. BFD_RELOC_386_TLS_TPOFF
  2283. ENUMX
  2284. BFD_RELOC_386_TLS_IE
  2285. ENUMX
  2286. BFD_RELOC_386_TLS_GOTIE
  2287. ENUMX
  2288. BFD_RELOC_386_TLS_LE
  2289. ENUMX
  2290. BFD_RELOC_386_TLS_GD
  2291. ENUMX
  2292. BFD_RELOC_386_TLS_LDM
  2293. ENUMX
  2294. BFD_RELOC_386_TLS_LDO_32
  2295. ENUMX
  2296. BFD_RELOC_386_TLS_IE_32
  2297. ENUMX
  2298. BFD_RELOC_386_TLS_LE_32
  2299. ENUMX
  2300. BFD_RELOC_386_TLS_DTPMOD32
  2301. ENUMX
  2302. BFD_RELOC_386_TLS_DTPOFF32
  2303. ENUMX
  2304. BFD_RELOC_386_TLS_TPOFF32
  2305. ENUMX
  2306. BFD_RELOC_386_TLS_GOTDESC
  2307. ENUMX
  2308. BFD_RELOC_386_TLS_DESC_CALL
  2309. ENUMX
  2310. BFD_RELOC_386_TLS_DESC
  2311. ENUMX
  2312. BFD_RELOC_386_IRELATIVE
  2313. ENUMX
  2314. BFD_RELOC_386_GOT32X
  2315. ENUMDOC
  2316. i386/elf relocations
  2317. ENUM
  2318. BFD_RELOC_X86_64_GOT32
  2319. ENUMX
  2320. BFD_RELOC_X86_64_PLT32
  2321. ENUMX
  2322. BFD_RELOC_X86_64_COPY
  2323. ENUMX
  2324. BFD_RELOC_X86_64_GLOB_DAT
  2325. ENUMX
  2326. BFD_RELOC_X86_64_JUMP_SLOT
  2327. ENUMX
  2328. BFD_RELOC_X86_64_RELATIVE
  2329. ENUMX
  2330. BFD_RELOC_X86_64_GOTPCREL
  2331. ENUMX
  2332. BFD_RELOC_X86_64_32S
  2333. ENUMX
  2334. BFD_RELOC_X86_64_DTPMOD64
  2335. ENUMX
  2336. BFD_RELOC_X86_64_DTPOFF64
  2337. ENUMX
  2338. BFD_RELOC_X86_64_TPOFF64
  2339. ENUMX
  2340. BFD_RELOC_X86_64_TLSGD
  2341. ENUMX
  2342. BFD_RELOC_X86_64_TLSLD
  2343. ENUMX
  2344. BFD_RELOC_X86_64_DTPOFF32
  2345. ENUMX
  2346. BFD_RELOC_X86_64_GOTTPOFF
  2347. ENUMX
  2348. BFD_RELOC_X86_64_TPOFF32
  2349. ENUMX
  2350. BFD_RELOC_X86_64_GOTOFF64
  2351. ENUMX
  2352. BFD_RELOC_X86_64_GOTPC32
  2353. ENUMX
  2354. BFD_RELOC_X86_64_GOT64
  2355. ENUMX
  2356. BFD_RELOC_X86_64_GOTPCREL64
  2357. ENUMX
  2358. BFD_RELOC_X86_64_GOTPC64
  2359. ENUMX
  2360. BFD_RELOC_X86_64_GOTPLT64
  2361. ENUMX
  2362. BFD_RELOC_X86_64_PLTOFF64
  2363. ENUMX
  2364. BFD_RELOC_X86_64_GOTPC32_TLSDESC
  2365. ENUMX
  2366. BFD_RELOC_X86_64_TLSDESC_CALL
  2367. ENUMX
  2368. BFD_RELOC_X86_64_TLSDESC
  2369. ENUMX
  2370. BFD_RELOC_X86_64_IRELATIVE
  2371. ENUMX
  2372. BFD_RELOC_X86_64_PC32_BND
  2373. ENUMX
  2374. BFD_RELOC_X86_64_PLT32_BND
  2375. ENUMX
  2376. BFD_RELOC_X86_64_GOTPCRELX
  2377. ENUMX
  2378. BFD_RELOC_X86_64_REX_GOTPCRELX
  2379. ENUMDOC
  2380. x86-64/elf relocations
  2381. ENUM
  2382. BFD_RELOC_NS32K_IMM_8
  2383. ENUMX
  2384. BFD_RELOC_NS32K_IMM_16
  2385. ENUMX
  2386. BFD_RELOC_NS32K_IMM_32
  2387. ENUMX
  2388. BFD_RELOC_NS32K_IMM_8_PCREL
  2389. ENUMX
  2390. BFD_RELOC_NS32K_IMM_16_PCREL
  2391. ENUMX
  2392. BFD_RELOC_NS32K_IMM_32_PCREL
  2393. ENUMX
  2394. BFD_RELOC_NS32K_DISP_8
  2395. ENUMX
  2396. BFD_RELOC_NS32K_DISP_16
  2397. ENUMX
  2398. BFD_RELOC_NS32K_DISP_32
  2399. ENUMX
  2400. BFD_RELOC_NS32K_DISP_8_PCREL
  2401. ENUMX
  2402. BFD_RELOC_NS32K_DISP_16_PCREL
  2403. ENUMX
  2404. BFD_RELOC_NS32K_DISP_32_PCREL
  2405. ENUMDOC
  2406. ns32k relocations
  2407. ENUM
  2408. BFD_RELOC_PDP11_DISP_8_PCREL
  2409. ENUMX
  2410. BFD_RELOC_PDP11_DISP_6_PCREL
  2411. ENUMDOC
  2412. PDP11 relocations
  2413. ENUM
  2414. BFD_RELOC_PJ_CODE_HI16
  2415. ENUMX
  2416. BFD_RELOC_PJ_CODE_LO16
  2417. ENUMX
  2418. BFD_RELOC_PJ_CODE_DIR16
  2419. ENUMX
  2420. BFD_RELOC_PJ_CODE_DIR32
  2421. ENUMX
  2422. BFD_RELOC_PJ_CODE_REL16
  2423. ENUMX
  2424. BFD_RELOC_PJ_CODE_REL32
  2425. ENUMDOC
  2426. Picojava relocs. Not all of these appear in object files.
  2427. ENUM
  2428. BFD_RELOC_PPC_B26
  2429. ENUMX
  2430. BFD_RELOC_PPC_BA26
  2431. ENUMX
  2432. BFD_RELOC_PPC_TOC16
  2433. ENUMX
  2434. BFD_RELOC_PPC_TOC16_LO
  2435. ENUMX
  2436. BFD_RELOC_PPC_TOC16_HI
  2437. ENUMX
  2438. BFD_RELOC_PPC_B16
  2439. ENUMX
  2440. BFD_RELOC_PPC_B16_BRTAKEN
  2441. ENUMX
  2442. BFD_RELOC_PPC_B16_BRNTAKEN
  2443. ENUMX
  2444. BFD_RELOC_PPC_BA16
  2445. ENUMX
  2446. BFD_RELOC_PPC_BA16_BRTAKEN
  2447. ENUMX
  2448. BFD_RELOC_PPC_BA16_BRNTAKEN
  2449. ENUMX
  2450. BFD_RELOC_PPC_COPY
  2451. ENUMX
  2452. BFD_RELOC_PPC_GLOB_DAT
  2453. ENUMX
  2454. BFD_RELOC_PPC_JMP_SLOT
  2455. ENUMX
  2456. BFD_RELOC_PPC_RELATIVE
  2457. ENUMX
  2458. BFD_RELOC_PPC_LOCAL24PC
  2459. ENUMX
  2460. BFD_RELOC_PPC_EMB_NADDR32
  2461. ENUMX
  2462. BFD_RELOC_PPC_EMB_NADDR16
  2463. ENUMX
  2464. BFD_RELOC_PPC_EMB_NADDR16_LO
  2465. ENUMX
  2466. BFD_RELOC_PPC_EMB_NADDR16_HI
  2467. ENUMX
  2468. BFD_RELOC_PPC_EMB_NADDR16_HA
  2469. ENUMX
  2470. BFD_RELOC_PPC_EMB_SDAI16
  2471. ENUMX
  2472. BFD_RELOC_PPC_EMB_SDA2I16
  2473. ENUMX
  2474. BFD_RELOC_PPC_EMB_SDA2REL
  2475. ENUMX
  2476. BFD_RELOC_PPC_EMB_SDA21
  2477. ENUMX
  2478. BFD_RELOC_PPC_EMB_MRKREF
  2479. ENUMX
  2480. BFD_RELOC_PPC_EMB_RELSEC16
  2481. ENUMX
  2482. BFD_RELOC_PPC_EMB_RELST_LO
  2483. ENUMX
  2484. BFD_RELOC_PPC_EMB_RELST_HI
  2485. ENUMX
  2486. BFD_RELOC_PPC_EMB_RELST_HA
  2487. ENUMX
  2488. BFD_RELOC_PPC_EMB_BIT_FLD
  2489. ENUMX
  2490. BFD_RELOC_PPC_EMB_RELSDA
  2491. ENUMX
  2492. BFD_RELOC_PPC_VLE_REL8
  2493. ENUMX
  2494. BFD_RELOC_PPC_VLE_REL15
  2495. ENUMX
  2496. BFD_RELOC_PPC_VLE_REL24
  2497. ENUMX
  2498. BFD_RELOC_PPC_VLE_LO16A
  2499. ENUMX
  2500. BFD_RELOC_PPC_VLE_LO16D
  2501. ENUMX
  2502. BFD_RELOC_PPC_VLE_HI16A
  2503. ENUMX
  2504. BFD_RELOC_PPC_VLE_HI16D
  2505. ENUMX
  2506. BFD_RELOC_PPC_VLE_HA16A
  2507. ENUMX
  2508. BFD_RELOC_PPC_VLE_HA16D
  2509. ENUMX
  2510. BFD_RELOC_PPC_VLE_SDA21
  2511. ENUMX
  2512. BFD_RELOC_PPC_VLE_SDA21_LO
  2513. ENUMX
  2514. BFD_RELOC_PPC_VLE_SDAREL_LO16A
  2515. ENUMX
  2516. BFD_RELOC_PPC_VLE_SDAREL_LO16D
  2517. ENUMX
  2518. BFD_RELOC_PPC_VLE_SDAREL_HI16A
  2519. ENUMX
  2520. BFD_RELOC_PPC_VLE_SDAREL_HI16D
  2521. ENUMX
  2522. BFD_RELOC_PPC_VLE_SDAREL_HA16A
  2523. ENUMX
  2524. BFD_RELOC_PPC_VLE_SDAREL_HA16D
  2525. ENUMX
  2526. BFD_RELOC_PPC_16DX_HA
  2527. ENUMX
  2528. BFD_RELOC_PPC_REL16DX_HA
  2529. ENUMX
  2530. BFD_RELOC_PPC_NEG
  2531. ENUMX
  2532. BFD_RELOC_PPC64_HIGHER
  2533. ENUMX
  2534. BFD_RELOC_PPC64_HIGHER_S
  2535. ENUMX
  2536. BFD_RELOC_PPC64_HIGHEST
  2537. ENUMX
  2538. BFD_RELOC_PPC64_HIGHEST_S
  2539. ENUMX
  2540. BFD_RELOC_PPC64_TOC16_LO
  2541. ENUMX
  2542. BFD_RELOC_PPC64_TOC16_HI
  2543. ENUMX
  2544. BFD_RELOC_PPC64_TOC16_HA
  2545. ENUMX
  2546. BFD_RELOC_PPC64_TOC
  2547. ENUMX
  2548. BFD_RELOC_PPC64_PLTGOT16
  2549. ENUMX
  2550. BFD_RELOC_PPC64_PLTGOT16_LO
  2551. ENUMX
  2552. BFD_RELOC_PPC64_PLTGOT16_HI
  2553. ENUMX
  2554. BFD_RELOC_PPC64_PLTGOT16_HA
  2555. ENUMX
  2556. BFD_RELOC_PPC64_ADDR16_DS
  2557. ENUMX
  2558. BFD_RELOC_PPC64_ADDR16_LO_DS
  2559. ENUMX
  2560. BFD_RELOC_PPC64_GOT16_DS
  2561. ENUMX
  2562. BFD_RELOC_PPC64_GOT16_LO_DS
  2563. ENUMX
  2564. BFD_RELOC_PPC64_PLT16_LO_DS
  2565. ENUMX
  2566. BFD_RELOC_PPC64_SECTOFF_DS
  2567. ENUMX
  2568. BFD_RELOC_PPC64_SECTOFF_LO_DS
  2569. ENUMX
  2570. BFD_RELOC_PPC64_TOC16_DS
  2571. ENUMX
  2572. BFD_RELOC_PPC64_TOC16_LO_DS
  2573. ENUMX
  2574. BFD_RELOC_PPC64_PLTGOT16_DS
  2575. ENUMX
  2576. BFD_RELOC_PPC64_PLTGOT16_LO_DS
  2577. ENUMX
  2578. BFD_RELOC_PPC64_ADDR16_HIGH
  2579. ENUMX
  2580. BFD_RELOC_PPC64_ADDR16_HIGHA
  2581. ENUMX
  2582. BFD_RELOC_PPC64_REL16_HIGH
  2583. ENUMX
  2584. BFD_RELOC_PPC64_REL16_HIGHA
  2585. ENUMX
  2586. BFD_RELOC_PPC64_REL16_HIGHER
  2587. ENUMX
  2588. BFD_RELOC_PPC64_REL16_HIGHERA
  2589. ENUMX
  2590. BFD_RELOC_PPC64_REL16_HIGHEST
  2591. ENUMX
  2592. BFD_RELOC_PPC64_REL16_HIGHESTA
  2593. ENUMX
  2594. BFD_RELOC_PPC64_ADDR64_LOCAL
  2595. ENUMX
  2596. BFD_RELOC_PPC64_ENTRY
  2597. ENUMX
  2598. BFD_RELOC_PPC64_REL24_NOTOC
  2599. ENUMX
  2600. BFD_RELOC_PPC64_REL24_P9NOTOC
  2601. ENUMX
  2602. BFD_RELOC_PPC64_D34
  2603. ENUMX
  2604. BFD_RELOC_PPC64_D34_LO
  2605. ENUMX
  2606. BFD_RELOC_PPC64_D34_HI30
  2607. ENUMX
  2608. BFD_RELOC_PPC64_D34_HA30
  2609. ENUMX
  2610. BFD_RELOC_PPC64_PCREL34
  2611. ENUMX
  2612. BFD_RELOC_PPC64_GOT_PCREL34
  2613. ENUMX
  2614. BFD_RELOC_PPC64_PLT_PCREL34
  2615. ENUMX
  2616. BFD_RELOC_PPC64_ADDR16_HIGHER34
  2617. ENUMX
  2618. BFD_RELOC_PPC64_ADDR16_HIGHERA34
  2619. ENUMX
  2620. BFD_RELOC_PPC64_ADDR16_HIGHEST34
  2621. ENUMX
  2622. BFD_RELOC_PPC64_ADDR16_HIGHESTA34
  2623. ENUMX
  2624. BFD_RELOC_PPC64_REL16_HIGHER34
  2625. ENUMX
  2626. BFD_RELOC_PPC64_REL16_HIGHERA34
  2627. ENUMX
  2628. BFD_RELOC_PPC64_REL16_HIGHEST34
  2629. ENUMX
  2630. BFD_RELOC_PPC64_REL16_HIGHESTA34
  2631. ENUMX
  2632. BFD_RELOC_PPC64_D28
  2633. ENUMX
  2634. BFD_RELOC_PPC64_PCREL28
  2635. ENUMDOC
  2636. Power(rs6000) and PowerPC relocations.
  2637. ENUM
  2638. BFD_RELOC_PPC_TLS
  2639. ENUMX
  2640. BFD_RELOC_PPC_TLSGD
  2641. ENUMX
  2642. BFD_RELOC_PPC_TLSLD
  2643. ENUMX
  2644. BFD_RELOC_PPC_TLSLE
  2645. ENUMX
  2646. BFD_RELOC_PPC_TLSIE
  2647. ENUMX
  2648. BFD_RELOC_PPC_TLSM
  2649. ENUMX
  2650. BFD_RELOC_PPC_TLSML
  2651. ENUMX
  2652. BFD_RELOC_PPC_DTPMOD
  2653. ENUMX
  2654. BFD_RELOC_PPC_TPREL16
  2655. ENUMX
  2656. BFD_RELOC_PPC_TPREL16_LO
  2657. ENUMX
  2658. BFD_RELOC_PPC_TPREL16_HI
  2659. ENUMX
  2660. BFD_RELOC_PPC_TPREL16_HA
  2661. ENUMX
  2662. BFD_RELOC_PPC_TPREL
  2663. ENUMX
  2664. BFD_RELOC_PPC_DTPREL16
  2665. ENUMX
  2666. BFD_RELOC_PPC_DTPREL16_LO
  2667. ENUMX
  2668. BFD_RELOC_PPC_DTPREL16_HI
  2669. ENUMX
  2670. BFD_RELOC_PPC_DTPREL16_HA
  2671. ENUMX
  2672. BFD_RELOC_PPC_DTPREL
  2673. ENUMX
  2674. BFD_RELOC_PPC_GOT_TLSGD16
  2675. ENUMX
  2676. BFD_RELOC_PPC_GOT_TLSGD16_LO
  2677. ENUMX
  2678. BFD_RELOC_PPC_GOT_TLSGD16_HI
  2679. ENUMX
  2680. BFD_RELOC_PPC_GOT_TLSGD16_HA
  2681. ENUMX
  2682. BFD_RELOC_PPC_GOT_TLSLD16
  2683. ENUMX
  2684. BFD_RELOC_PPC_GOT_TLSLD16_LO
  2685. ENUMX
  2686. BFD_RELOC_PPC_GOT_TLSLD16_HI
  2687. ENUMX
  2688. BFD_RELOC_PPC_GOT_TLSLD16_HA
  2689. ENUMX
  2690. BFD_RELOC_PPC_GOT_TPREL16
  2691. ENUMX
  2692. BFD_RELOC_PPC_GOT_TPREL16_LO
  2693. ENUMX
  2694. BFD_RELOC_PPC_GOT_TPREL16_HI
  2695. ENUMX
  2696. BFD_RELOC_PPC_GOT_TPREL16_HA
  2697. ENUMX
  2698. BFD_RELOC_PPC_GOT_DTPREL16
  2699. ENUMX
  2700. BFD_RELOC_PPC_GOT_DTPREL16_LO
  2701. ENUMX
  2702. BFD_RELOC_PPC_GOT_DTPREL16_HI
  2703. ENUMX
  2704. BFD_RELOC_PPC_GOT_DTPREL16_HA
  2705. ENUMX
  2706. BFD_RELOC_PPC64_TLSGD
  2707. ENUMX
  2708. BFD_RELOC_PPC64_TLSLD
  2709. ENUMX
  2710. BFD_RELOC_PPC64_TLSLE
  2711. ENUMX
  2712. BFD_RELOC_PPC64_TLSIE
  2713. ENUMX
  2714. BFD_RELOC_PPC64_TLSM
  2715. ENUMX
  2716. BFD_RELOC_PPC64_TLSML
  2717. ENUMX
  2718. BFD_RELOC_PPC64_TPREL16_DS
  2719. ENUMX
  2720. BFD_RELOC_PPC64_TPREL16_LO_DS
  2721. ENUMX
  2722. BFD_RELOC_PPC64_TPREL16_HIGH
  2723. ENUMX
  2724. BFD_RELOC_PPC64_TPREL16_HIGHA
  2725. ENUMX
  2726. BFD_RELOC_PPC64_TPREL16_HIGHER
  2727. ENUMX
  2728. BFD_RELOC_PPC64_TPREL16_HIGHERA
  2729. ENUMX
  2730. BFD_RELOC_PPC64_TPREL16_HIGHEST
  2731. ENUMX
  2732. BFD_RELOC_PPC64_TPREL16_HIGHESTA
  2733. ENUMX
  2734. BFD_RELOC_PPC64_DTPREL16_DS
  2735. ENUMX
  2736. BFD_RELOC_PPC64_DTPREL16_LO_DS
  2737. ENUMX
  2738. BFD_RELOC_PPC64_DTPREL16_HIGH
  2739. ENUMX
  2740. BFD_RELOC_PPC64_DTPREL16_HIGHA
  2741. ENUMX
  2742. BFD_RELOC_PPC64_DTPREL16_HIGHER
  2743. ENUMX
  2744. BFD_RELOC_PPC64_DTPREL16_HIGHERA
  2745. ENUMX
  2746. BFD_RELOC_PPC64_DTPREL16_HIGHEST
  2747. ENUMX
  2748. BFD_RELOC_PPC64_DTPREL16_HIGHESTA
  2749. ENUMX
  2750. BFD_RELOC_PPC64_TPREL34
  2751. ENUMX
  2752. BFD_RELOC_PPC64_DTPREL34
  2753. ENUMX
  2754. BFD_RELOC_PPC64_GOT_TLSGD_PCREL34
  2755. ENUMX
  2756. BFD_RELOC_PPC64_GOT_TLSLD_PCREL34
  2757. ENUMX
  2758. BFD_RELOC_PPC64_GOT_TPREL_PCREL34
  2759. ENUMX
  2760. BFD_RELOC_PPC64_GOT_DTPREL_PCREL34
  2761. ENUMX
  2762. BFD_RELOC_PPC64_TLS_PCREL
  2763. ENUMDOC
  2764. PowerPC and PowerPC64 thread-local storage relocations.
  2765. ENUM
  2766. BFD_RELOC_I370_D12
  2767. ENUMDOC
  2768. IBM 370/390 relocations
  2769. ENUM
  2770. BFD_RELOC_CTOR
  2771. ENUMDOC
  2772. The type of reloc used to build a constructor table - at the moment
  2773. probably a 32 bit wide absolute relocation, but the target can choose.
  2774. It generally does map to one of the other relocation types.
  2775. ENUM
  2776. BFD_RELOC_ARM_PCREL_BRANCH
  2777. ENUMDOC
  2778. ARM 26 bit pc-relative branch. The lowest two bits must be zero and are
  2779. not stored in the instruction.
  2780. ENUM
  2781. BFD_RELOC_ARM_PCREL_BLX
  2782. ENUMDOC
  2783. ARM 26 bit pc-relative branch. The lowest bit must be zero and is
  2784. not stored in the instruction. The 2nd lowest bit comes from a 1 bit
  2785. field in the instruction.
  2786. ENUM
  2787. BFD_RELOC_THUMB_PCREL_BLX
  2788. ENUMDOC
  2789. Thumb 22 bit pc-relative branch. The lowest bit must be zero and is
  2790. not stored in the instruction. The 2nd lowest bit comes from a 1 bit
  2791. field in the instruction.
  2792. ENUM
  2793. BFD_RELOC_ARM_PCREL_CALL
  2794. ENUMDOC
  2795. ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction.
  2796. ENUM
  2797. BFD_RELOC_ARM_PCREL_JUMP
  2798. ENUMDOC
  2799. ARM 26-bit pc-relative branch for B or conditional BL instruction.
  2800. ENUM
  2801. BFD_RELOC_THUMB_PCREL_BRANCH5
  2802. ENUMDOC
  2803. ARM 5-bit pc-relative branch for Branch Future instructions.
  2804. ENUM
  2805. BFD_RELOC_THUMB_PCREL_BFCSEL
  2806. ENUMDOC
  2807. ARM 6-bit pc-relative branch for BFCSEL instruction.
  2808. ENUM
  2809. BFD_RELOC_ARM_THUMB_BF17
  2810. ENUMDOC
  2811. ARM 17-bit pc-relative branch for Branch Future instructions.
  2812. ENUM
  2813. BFD_RELOC_ARM_THUMB_BF13
  2814. ENUMDOC
  2815. ARM 13-bit pc-relative branch for BFCSEL instruction.
  2816. ENUM
  2817. BFD_RELOC_ARM_THUMB_BF19
  2818. ENUMDOC
  2819. ARM 19-bit pc-relative branch for Branch Future Link instruction.
  2820. ENUM
  2821. BFD_RELOC_ARM_THUMB_LOOP12
  2822. ENUMDOC
  2823. ARM 12-bit pc-relative branch for Low Overhead Loop instructions.
  2824. ENUM
  2825. BFD_RELOC_THUMB_PCREL_BRANCH7
  2826. ENUMX
  2827. BFD_RELOC_THUMB_PCREL_BRANCH9
  2828. ENUMX
  2829. BFD_RELOC_THUMB_PCREL_BRANCH12
  2830. ENUMX
  2831. BFD_RELOC_THUMB_PCREL_BRANCH20
  2832. ENUMX
  2833. BFD_RELOC_THUMB_PCREL_BRANCH23
  2834. ENUMX
  2835. BFD_RELOC_THUMB_PCREL_BRANCH25
  2836. ENUMDOC
  2837. Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
  2838. The lowest bit must be zero and is not stored in the instruction.
  2839. Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
  2840. "nn" one smaller in all cases. Note further that BRANCH23
  2841. corresponds to R_ARM_THM_CALL.
  2842. ENUM
  2843. BFD_RELOC_ARM_OFFSET_IMM
  2844. ENUMDOC
  2845. 12-bit immediate offset, used in ARM-format ldr and str instructions.
  2846. ENUM
  2847. BFD_RELOC_ARM_THUMB_OFFSET
  2848. ENUMDOC
  2849. 5-bit immediate offset, used in Thumb-format ldr and str instructions.
  2850. ENUM
  2851. BFD_RELOC_ARM_TARGET1
  2852. ENUMDOC
  2853. Pc-relative or absolute relocation depending on target. Used for
  2854. entries in .init_array sections.
  2855. ENUM
  2856. BFD_RELOC_ARM_ROSEGREL32
  2857. ENUMDOC
  2858. Read-only segment base relative address.
  2859. ENUM
  2860. BFD_RELOC_ARM_SBREL32
  2861. ENUMDOC
  2862. Data segment base relative address.
  2863. ENUM
  2864. BFD_RELOC_ARM_TARGET2
  2865. ENUMDOC
  2866. This reloc is used for references to RTTI data from exception handling
  2867. tables. The actual definition depends on the target. It may be a
  2868. pc-relative or some form of GOT-indirect relocation.
  2869. ENUM
  2870. BFD_RELOC_ARM_PREL31
  2871. ENUMDOC
  2872. 31-bit PC relative address.
  2873. ENUM
  2874. BFD_RELOC_ARM_MOVW
  2875. ENUMX
  2876. BFD_RELOC_ARM_MOVT
  2877. ENUMX
  2878. BFD_RELOC_ARM_MOVW_PCREL
  2879. ENUMX
  2880. BFD_RELOC_ARM_MOVT_PCREL
  2881. ENUMX
  2882. BFD_RELOC_ARM_THUMB_MOVW
  2883. ENUMX
  2884. BFD_RELOC_ARM_THUMB_MOVT
  2885. ENUMX
  2886. BFD_RELOC_ARM_THUMB_MOVW_PCREL
  2887. ENUMX
  2888. BFD_RELOC_ARM_THUMB_MOVT_PCREL
  2889. ENUMDOC
  2890. Low and High halfword relocations for MOVW and MOVT instructions.
  2891. ENUM
  2892. BFD_RELOC_ARM_GOTFUNCDESC
  2893. ENUMX
  2894. BFD_RELOC_ARM_GOTOFFFUNCDESC
  2895. ENUMX
  2896. BFD_RELOC_ARM_FUNCDESC
  2897. ENUMX
  2898. BFD_RELOC_ARM_FUNCDESC_VALUE
  2899. ENUMX
  2900. BFD_RELOC_ARM_TLS_GD32_FDPIC
  2901. ENUMX
  2902. BFD_RELOC_ARM_TLS_LDM32_FDPIC
  2903. ENUMX
  2904. BFD_RELOC_ARM_TLS_IE32_FDPIC
  2905. ENUMDOC
  2906. ARM FDPIC specific relocations.
  2907. ENUM
  2908. BFD_RELOC_ARM_JUMP_SLOT
  2909. ENUMX
  2910. BFD_RELOC_ARM_GLOB_DAT
  2911. ENUMX
  2912. BFD_RELOC_ARM_GOT32
  2913. ENUMX
  2914. BFD_RELOC_ARM_PLT32
  2915. ENUMX
  2916. BFD_RELOC_ARM_RELATIVE
  2917. ENUMX
  2918. BFD_RELOC_ARM_GOTOFF
  2919. ENUMX
  2920. BFD_RELOC_ARM_GOTPC
  2921. ENUMX
  2922. BFD_RELOC_ARM_GOT_PREL
  2923. ENUMDOC
  2924. Relocations for setting up GOTs and PLTs for shared libraries.
  2925. ENUM
  2926. BFD_RELOC_ARM_TLS_GD32
  2927. ENUMX
  2928. BFD_RELOC_ARM_TLS_LDO32
  2929. ENUMX
  2930. BFD_RELOC_ARM_TLS_LDM32
  2931. ENUMX
  2932. BFD_RELOC_ARM_TLS_DTPOFF32
  2933. ENUMX
  2934. BFD_RELOC_ARM_TLS_DTPMOD32
  2935. ENUMX
  2936. BFD_RELOC_ARM_TLS_TPOFF32
  2937. ENUMX
  2938. BFD_RELOC_ARM_TLS_IE32
  2939. ENUMX
  2940. BFD_RELOC_ARM_TLS_LE32
  2941. ENUMX
  2942. BFD_RELOC_ARM_TLS_GOTDESC
  2943. ENUMX
  2944. BFD_RELOC_ARM_TLS_CALL
  2945. ENUMX
  2946. BFD_RELOC_ARM_THM_TLS_CALL
  2947. ENUMX
  2948. BFD_RELOC_ARM_TLS_DESCSEQ
  2949. ENUMX
  2950. BFD_RELOC_ARM_THM_TLS_DESCSEQ
  2951. ENUMX
  2952. BFD_RELOC_ARM_TLS_DESC
  2953. ENUMDOC
  2954. ARM thread-local storage relocations.
  2955. ENUM
  2956. BFD_RELOC_ARM_ALU_PC_G0_NC
  2957. ENUMX
  2958. BFD_RELOC_ARM_ALU_PC_G0
  2959. ENUMX
  2960. BFD_RELOC_ARM_ALU_PC_G1_NC
  2961. ENUMX
  2962. BFD_RELOC_ARM_ALU_PC_G1
  2963. ENUMX
  2964. BFD_RELOC_ARM_ALU_PC_G2
  2965. ENUMX
  2966. BFD_RELOC_ARM_LDR_PC_G0
  2967. ENUMX
  2968. BFD_RELOC_ARM_LDR_PC_G1
  2969. ENUMX
  2970. BFD_RELOC_ARM_LDR_PC_G2
  2971. ENUMX
  2972. BFD_RELOC_ARM_LDRS_PC_G0
  2973. ENUMX
  2974. BFD_RELOC_ARM_LDRS_PC_G1
  2975. ENUMX
  2976. BFD_RELOC_ARM_LDRS_PC_G2
  2977. ENUMX
  2978. BFD_RELOC_ARM_LDC_PC_G0
  2979. ENUMX
  2980. BFD_RELOC_ARM_LDC_PC_G1
  2981. ENUMX
  2982. BFD_RELOC_ARM_LDC_PC_G2
  2983. ENUMX
  2984. BFD_RELOC_ARM_ALU_SB_G0_NC
  2985. ENUMX
  2986. BFD_RELOC_ARM_ALU_SB_G0
  2987. ENUMX
  2988. BFD_RELOC_ARM_ALU_SB_G1_NC
  2989. ENUMX
  2990. BFD_RELOC_ARM_ALU_SB_G1
  2991. ENUMX
  2992. BFD_RELOC_ARM_ALU_SB_G2
  2993. ENUMX
  2994. BFD_RELOC_ARM_LDR_SB_G0
  2995. ENUMX
  2996. BFD_RELOC_ARM_LDR_SB_G1
  2997. ENUMX
  2998. BFD_RELOC_ARM_LDR_SB_G2
  2999. ENUMX
  3000. BFD_RELOC_ARM_LDRS_SB_G0
  3001. ENUMX
  3002. BFD_RELOC_ARM_LDRS_SB_G1
  3003. ENUMX
  3004. BFD_RELOC_ARM_LDRS_SB_G2
  3005. ENUMX
  3006. BFD_RELOC_ARM_LDC_SB_G0
  3007. ENUMX
  3008. BFD_RELOC_ARM_LDC_SB_G1
  3009. ENUMX
  3010. BFD_RELOC_ARM_LDC_SB_G2
  3011. ENUMDOC
  3012. ARM group relocations.
  3013. ENUM
  3014. BFD_RELOC_ARM_V4BX
  3015. ENUMDOC
  3016. Annotation of BX instructions.
  3017. ENUM
  3018. BFD_RELOC_ARM_IRELATIVE
  3019. ENUMDOC
  3020. ARM support for STT_GNU_IFUNC.
  3021. ENUM
  3022. BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC
  3023. ENUMX
  3024. BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC
  3025. ENUMX
  3026. BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC
  3027. ENUMX
  3028. BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC
  3029. ENUMDOC
  3030. Thumb1 relocations to support execute-only code.
  3031. ENUM
  3032. BFD_RELOC_ARM_IMMEDIATE
  3033. ENUMX
  3034. BFD_RELOC_ARM_ADRL_IMMEDIATE
  3035. ENUMX
  3036. BFD_RELOC_ARM_T32_IMMEDIATE
  3037. ENUMX
  3038. BFD_RELOC_ARM_T32_ADD_IMM
  3039. ENUMX
  3040. BFD_RELOC_ARM_T32_IMM12
  3041. ENUMX
  3042. BFD_RELOC_ARM_T32_ADD_PC12
  3043. ENUMX
  3044. BFD_RELOC_ARM_SHIFT_IMM
  3045. ENUMX
  3046. BFD_RELOC_ARM_SMC
  3047. ENUMX
  3048. BFD_RELOC_ARM_HVC
  3049. ENUMX
  3050. BFD_RELOC_ARM_SWI
  3051. ENUMX
  3052. BFD_RELOC_ARM_MULTI
  3053. ENUMX
  3054. BFD_RELOC_ARM_CP_OFF_IMM
  3055. ENUMX
  3056. BFD_RELOC_ARM_CP_OFF_IMM_S2
  3057. ENUMX
  3058. BFD_RELOC_ARM_T32_CP_OFF_IMM
  3059. ENUMX
  3060. BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
  3061. ENUMX
  3062. BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM
  3063. ENUMX
  3064. BFD_RELOC_ARM_ADR_IMM
  3065. ENUMX
  3066. BFD_RELOC_ARM_LDR_IMM
  3067. ENUMX
  3068. BFD_RELOC_ARM_LITERAL
  3069. ENUMX
  3070. BFD_RELOC_ARM_IN_POOL
  3071. ENUMX
  3072. BFD_RELOC_ARM_OFFSET_IMM8
  3073. ENUMX
  3074. BFD_RELOC_ARM_T32_OFFSET_U8
  3075. ENUMX
  3076. BFD_RELOC_ARM_T32_OFFSET_IMM
  3077. ENUMX
  3078. BFD_RELOC_ARM_HWLITERAL
  3079. ENUMX
  3080. BFD_RELOC_ARM_THUMB_ADD
  3081. ENUMX
  3082. BFD_RELOC_ARM_THUMB_IMM
  3083. ENUMX
  3084. BFD_RELOC_ARM_THUMB_SHIFT
  3085. ENUMDOC
  3086. These relocs are only used within the ARM assembler. They are not
  3087. (at present) written to any object files.
  3088. ENUM
  3089. BFD_RELOC_SH_PCDISP8BY2
  3090. ENUMX
  3091. BFD_RELOC_SH_PCDISP12BY2
  3092. ENUMX
  3093. BFD_RELOC_SH_IMM3
  3094. ENUMX
  3095. BFD_RELOC_SH_IMM3U
  3096. ENUMX
  3097. BFD_RELOC_SH_DISP12
  3098. ENUMX
  3099. BFD_RELOC_SH_DISP12BY2
  3100. ENUMX
  3101. BFD_RELOC_SH_DISP12BY4
  3102. ENUMX
  3103. BFD_RELOC_SH_DISP12BY8
  3104. ENUMX
  3105. BFD_RELOC_SH_DISP20
  3106. ENUMX
  3107. BFD_RELOC_SH_DISP20BY8
  3108. ENUMX
  3109. BFD_RELOC_SH_IMM4
  3110. ENUMX
  3111. BFD_RELOC_SH_IMM4BY2
  3112. ENUMX
  3113. BFD_RELOC_SH_IMM4BY4
  3114. ENUMX
  3115. BFD_RELOC_SH_IMM8
  3116. ENUMX
  3117. BFD_RELOC_SH_IMM8BY2
  3118. ENUMX
  3119. BFD_RELOC_SH_IMM8BY4
  3120. ENUMX
  3121. BFD_RELOC_SH_PCRELIMM8BY2
  3122. ENUMX
  3123. BFD_RELOC_SH_PCRELIMM8BY4
  3124. ENUMX
  3125. BFD_RELOC_SH_SWITCH16
  3126. ENUMX
  3127. BFD_RELOC_SH_SWITCH32
  3128. ENUMX
  3129. BFD_RELOC_SH_USES
  3130. ENUMX
  3131. BFD_RELOC_SH_COUNT
  3132. ENUMX
  3133. BFD_RELOC_SH_ALIGN
  3134. ENUMX
  3135. BFD_RELOC_SH_CODE
  3136. ENUMX
  3137. BFD_RELOC_SH_DATA
  3138. ENUMX
  3139. BFD_RELOC_SH_LABEL
  3140. ENUMX
  3141. BFD_RELOC_SH_LOOP_START
  3142. ENUMX
  3143. BFD_RELOC_SH_LOOP_END
  3144. ENUMX
  3145. BFD_RELOC_SH_COPY
  3146. ENUMX
  3147. BFD_RELOC_SH_GLOB_DAT
  3148. ENUMX
  3149. BFD_RELOC_SH_JMP_SLOT
  3150. ENUMX
  3151. BFD_RELOC_SH_RELATIVE
  3152. ENUMX
  3153. BFD_RELOC_SH_GOTPC
  3154. ENUMX
  3155. BFD_RELOC_SH_GOT_LOW16
  3156. ENUMX
  3157. BFD_RELOC_SH_GOT_MEDLOW16
  3158. ENUMX
  3159. BFD_RELOC_SH_GOT_MEDHI16
  3160. ENUMX
  3161. BFD_RELOC_SH_GOT_HI16
  3162. ENUMX
  3163. BFD_RELOC_SH_GOTPLT_LOW16
  3164. ENUMX
  3165. BFD_RELOC_SH_GOTPLT_MEDLOW16
  3166. ENUMX
  3167. BFD_RELOC_SH_GOTPLT_MEDHI16
  3168. ENUMX
  3169. BFD_RELOC_SH_GOTPLT_HI16
  3170. ENUMX
  3171. BFD_RELOC_SH_PLT_LOW16
  3172. ENUMX
  3173. BFD_RELOC_SH_PLT_MEDLOW16
  3174. ENUMX
  3175. BFD_RELOC_SH_PLT_MEDHI16
  3176. ENUMX
  3177. BFD_RELOC_SH_PLT_HI16
  3178. ENUMX
  3179. BFD_RELOC_SH_GOTOFF_LOW16
  3180. ENUMX
  3181. BFD_RELOC_SH_GOTOFF_MEDLOW16
  3182. ENUMX
  3183. BFD_RELOC_SH_GOTOFF_MEDHI16
  3184. ENUMX
  3185. BFD_RELOC_SH_GOTOFF_HI16
  3186. ENUMX
  3187. BFD_RELOC_SH_GOTPC_LOW16
  3188. ENUMX
  3189. BFD_RELOC_SH_GOTPC_MEDLOW16
  3190. ENUMX
  3191. BFD_RELOC_SH_GOTPC_MEDHI16
  3192. ENUMX
  3193. BFD_RELOC_SH_GOTPC_HI16
  3194. ENUMX
  3195. BFD_RELOC_SH_COPY64
  3196. ENUMX
  3197. BFD_RELOC_SH_GLOB_DAT64
  3198. ENUMX
  3199. BFD_RELOC_SH_JMP_SLOT64
  3200. ENUMX
  3201. BFD_RELOC_SH_RELATIVE64
  3202. ENUMX
  3203. BFD_RELOC_SH_GOT10BY4
  3204. ENUMX
  3205. BFD_RELOC_SH_GOT10BY8
  3206. ENUMX
  3207. BFD_RELOC_SH_GOTPLT10BY4
  3208. ENUMX
  3209. BFD_RELOC_SH_GOTPLT10BY8
  3210. ENUMX
  3211. BFD_RELOC_SH_GOTPLT32
  3212. ENUMX
  3213. BFD_RELOC_SH_SHMEDIA_CODE
  3214. ENUMX
  3215. BFD_RELOC_SH_IMMU5
  3216. ENUMX
  3217. BFD_RELOC_SH_IMMS6
  3218. ENUMX
  3219. BFD_RELOC_SH_IMMS6BY32
  3220. ENUMX
  3221. BFD_RELOC_SH_IMMU6
  3222. ENUMX
  3223. BFD_RELOC_SH_IMMS10
  3224. ENUMX
  3225. BFD_RELOC_SH_IMMS10BY2
  3226. ENUMX
  3227. BFD_RELOC_SH_IMMS10BY4
  3228. ENUMX
  3229. BFD_RELOC_SH_IMMS10BY8
  3230. ENUMX
  3231. BFD_RELOC_SH_IMMS16
  3232. ENUMX
  3233. BFD_RELOC_SH_IMMU16
  3234. ENUMX
  3235. BFD_RELOC_SH_IMM_LOW16
  3236. ENUMX
  3237. BFD_RELOC_SH_IMM_LOW16_PCREL
  3238. ENUMX
  3239. BFD_RELOC_SH_IMM_MEDLOW16
  3240. ENUMX
  3241. BFD_RELOC_SH_IMM_MEDLOW16_PCREL
  3242. ENUMX
  3243. BFD_RELOC_SH_IMM_MEDHI16
  3244. ENUMX
  3245. BFD_RELOC_SH_IMM_MEDHI16_PCREL
  3246. ENUMX
  3247. BFD_RELOC_SH_IMM_HI16
  3248. ENUMX
  3249. BFD_RELOC_SH_IMM_HI16_PCREL
  3250. ENUMX
  3251. BFD_RELOC_SH_PT_16
  3252. ENUMX
  3253. BFD_RELOC_SH_TLS_GD_32
  3254. ENUMX
  3255. BFD_RELOC_SH_TLS_LD_32
  3256. ENUMX
  3257. BFD_RELOC_SH_TLS_LDO_32
  3258. ENUMX
  3259. BFD_RELOC_SH_TLS_IE_32
  3260. ENUMX
  3261. BFD_RELOC_SH_TLS_LE_32
  3262. ENUMX
  3263. BFD_RELOC_SH_TLS_DTPMOD32
  3264. ENUMX
  3265. BFD_RELOC_SH_TLS_DTPOFF32
  3266. ENUMX
  3267. BFD_RELOC_SH_TLS_TPOFF32
  3268. ENUMX
  3269. BFD_RELOC_SH_GOT20
  3270. ENUMX
  3271. BFD_RELOC_SH_GOTOFF20
  3272. ENUMX
  3273. BFD_RELOC_SH_GOTFUNCDESC
  3274. ENUMX
  3275. BFD_RELOC_SH_GOTFUNCDESC20
  3276. ENUMX
  3277. BFD_RELOC_SH_GOTOFFFUNCDESC
  3278. ENUMX
  3279. BFD_RELOC_SH_GOTOFFFUNCDESC20
  3280. ENUMX
  3281. BFD_RELOC_SH_FUNCDESC
  3282. ENUMDOC
  3283. Renesas / SuperH SH relocs. Not all of these appear in object files.
  3284. ENUM
  3285. BFD_RELOC_ARC_NONE
  3286. ENUMX
  3287. BFD_RELOC_ARC_8
  3288. ENUMX
  3289. BFD_RELOC_ARC_16
  3290. ENUMX
  3291. BFD_RELOC_ARC_24
  3292. ENUMX
  3293. BFD_RELOC_ARC_32
  3294. ENUMX
  3295. BFD_RELOC_ARC_N8
  3296. ENUMX
  3297. BFD_RELOC_ARC_N16
  3298. ENUMX
  3299. BFD_RELOC_ARC_N24
  3300. ENUMX
  3301. BFD_RELOC_ARC_N32
  3302. ENUMX
  3303. BFD_RELOC_ARC_SDA
  3304. ENUMX
  3305. BFD_RELOC_ARC_SECTOFF
  3306. ENUMX
  3307. BFD_RELOC_ARC_S21H_PCREL
  3308. ENUMX
  3309. BFD_RELOC_ARC_S21W_PCREL
  3310. ENUMX
  3311. BFD_RELOC_ARC_S25H_PCREL
  3312. ENUMX
  3313. BFD_RELOC_ARC_S25W_PCREL
  3314. ENUMX
  3315. BFD_RELOC_ARC_SDA32
  3316. ENUMX
  3317. BFD_RELOC_ARC_SDA_LDST
  3318. ENUMX
  3319. BFD_RELOC_ARC_SDA_LDST1
  3320. ENUMX
  3321. BFD_RELOC_ARC_SDA_LDST2
  3322. ENUMX
  3323. BFD_RELOC_ARC_SDA16_LD
  3324. ENUMX
  3325. BFD_RELOC_ARC_SDA16_LD1
  3326. ENUMX
  3327. BFD_RELOC_ARC_SDA16_LD2
  3328. ENUMX
  3329. BFD_RELOC_ARC_S13_PCREL
  3330. ENUMX
  3331. BFD_RELOC_ARC_W
  3332. ENUMX
  3333. BFD_RELOC_ARC_32_ME
  3334. ENUMX
  3335. BFD_RELOC_ARC_32_ME_S
  3336. ENUMX
  3337. BFD_RELOC_ARC_N32_ME
  3338. ENUMX
  3339. BFD_RELOC_ARC_SECTOFF_ME
  3340. ENUMX
  3341. BFD_RELOC_ARC_SDA32_ME
  3342. ENUMX
  3343. BFD_RELOC_ARC_W_ME
  3344. ENUMX
  3345. BFD_RELOC_AC_SECTOFF_U8
  3346. ENUMX
  3347. BFD_RELOC_AC_SECTOFF_U8_1
  3348. ENUMX
  3349. BFD_RELOC_AC_SECTOFF_U8_2
  3350. ENUMX
  3351. BFD_RELOC_AC_SECTOFF_S9
  3352. ENUMX
  3353. BFD_RELOC_AC_SECTOFF_S9_1
  3354. ENUMX
  3355. BFD_RELOC_AC_SECTOFF_S9_2
  3356. ENUMX
  3357. BFD_RELOC_ARC_SECTOFF_ME_1
  3358. ENUMX
  3359. BFD_RELOC_ARC_SECTOFF_ME_2
  3360. ENUMX
  3361. BFD_RELOC_ARC_SECTOFF_1
  3362. ENUMX
  3363. BFD_RELOC_ARC_SECTOFF_2
  3364. ENUMX
  3365. BFD_RELOC_ARC_SDA_12
  3366. ENUMX
  3367. BFD_RELOC_ARC_SDA16_ST2
  3368. ENUMX
  3369. BFD_RELOC_ARC_32_PCREL
  3370. ENUMX
  3371. BFD_RELOC_ARC_PC32
  3372. ENUMX
  3373. BFD_RELOC_ARC_GOT32
  3374. ENUMX
  3375. BFD_RELOC_ARC_GOTPC32
  3376. ENUMX
  3377. BFD_RELOC_ARC_PLT32
  3378. ENUMX
  3379. BFD_RELOC_ARC_COPY
  3380. ENUMX
  3381. BFD_RELOC_ARC_GLOB_DAT
  3382. ENUMX
  3383. BFD_RELOC_ARC_JMP_SLOT
  3384. ENUMX
  3385. BFD_RELOC_ARC_RELATIVE
  3386. ENUMX
  3387. BFD_RELOC_ARC_GOTOFF
  3388. ENUMX
  3389. BFD_RELOC_ARC_GOTPC
  3390. ENUMX
  3391. BFD_RELOC_ARC_S21W_PCREL_PLT
  3392. ENUMX
  3393. BFD_RELOC_ARC_S25H_PCREL_PLT
  3394. ENUMX
  3395. BFD_RELOC_ARC_TLS_DTPMOD
  3396. ENUMX
  3397. BFD_RELOC_ARC_TLS_TPOFF
  3398. ENUMX
  3399. BFD_RELOC_ARC_TLS_GD_GOT
  3400. ENUMX
  3401. BFD_RELOC_ARC_TLS_GD_LD
  3402. ENUMX
  3403. BFD_RELOC_ARC_TLS_GD_CALL
  3404. ENUMX
  3405. BFD_RELOC_ARC_TLS_IE_GOT
  3406. ENUMX
  3407. BFD_RELOC_ARC_TLS_DTPOFF
  3408. ENUMX
  3409. BFD_RELOC_ARC_TLS_DTPOFF_S9
  3410. ENUMX
  3411. BFD_RELOC_ARC_TLS_LE_S9
  3412. ENUMX
  3413. BFD_RELOC_ARC_TLS_LE_32
  3414. ENUMX
  3415. BFD_RELOC_ARC_S25W_PCREL_PLT
  3416. ENUMX
  3417. BFD_RELOC_ARC_S21H_PCREL_PLT
  3418. ENUMX
  3419. BFD_RELOC_ARC_NPS_CMEM16
  3420. ENUMX
  3421. BFD_RELOC_ARC_JLI_SECTOFF
  3422. ENUMDOC
  3423. ARC relocs.
  3424. ENUM
  3425. BFD_RELOC_BFIN_16_IMM
  3426. ENUMDOC
  3427. ADI Blackfin 16 bit immediate absolute reloc.
  3428. ENUM
  3429. BFD_RELOC_BFIN_16_HIGH
  3430. ENUMDOC
  3431. ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
  3432. ENUM
  3433. BFD_RELOC_BFIN_4_PCREL
  3434. ENUMDOC
  3435. ADI Blackfin 'a' part of LSETUP.
  3436. ENUM
  3437. BFD_RELOC_BFIN_5_PCREL
  3438. ENUMDOC
  3439. ADI Blackfin.
  3440. ENUM
  3441. BFD_RELOC_BFIN_16_LOW
  3442. ENUMDOC
  3443. ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
  3444. ENUM
  3445. BFD_RELOC_BFIN_10_PCREL
  3446. ENUMDOC
  3447. ADI Blackfin.
  3448. ENUM
  3449. BFD_RELOC_BFIN_11_PCREL
  3450. ENUMDOC
  3451. ADI Blackfin 'b' part of LSETUP.
  3452. ENUM
  3453. BFD_RELOC_BFIN_12_PCREL_JUMP
  3454. ENUMDOC
  3455. ADI Blackfin.
  3456. ENUM
  3457. BFD_RELOC_BFIN_12_PCREL_JUMP_S
  3458. ENUMDOC
  3459. ADI Blackfin Short jump, pcrel.
  3460. ENUM
  3461. BFD_RELOC_BFIN_24_PCREL_CALL_X
  3462. ENUMDOC
  3463. ADI Blackfin Call.x not implemented.
  3464. ENUM
  3465. BFD_RELOC_BFIN_24_PCREL_JUMP_L
  3466. ENUMDOC
  3467. ADI Blackfin Long Jump pcrel.
  3468. ENUM
  3469. BFD_RELOC_BFIN_GOT17M4
  3470. ENUMX
  3471. BFD_RELOC_BFIN_GOTHI
  3472. ENUMX
  3473. BFD_RELOC_BFIN_GOTLO
  3474. ENUMX
  3475. BFD_RELOC_BFIN_FUNCDESC
  3476. ENUMX
  3477. BFD_RELOC_BFIN_FUNCDESC_GOT17M4
  3478. ENUMX
  3479. BFD_RELOC_BFIN_FUNCDESC_GOTHI
  3480. ENUMX
  3481. BFD_RELOC_BFIN_FUNCDESC_GOTLO
  3482. ENUMX
  3483. BFD_RELOC_BFIN_FUNCDESC_VALUE
  3484. ENUMX
  3485. BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
  3486. ENUMX
  3487. BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
  3488. ENUMX
  3489. BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
  3490. ENUMX
  3491. BFD_RELOC_BFIN_GOTOFF17M4
  3492. ENUMX
  3493. BFD_RELOC_BFIN_GOTOFFHI
  3494. ENUMX
  3495. BFD_RELOC_BFIN_GOTOFFLO
  3496. ENUMDOC
  3497. ADI Blackfin FD-PIC relocations.
  3498. ENUM
  3499. BFD_RELOC_BFIN_GOT
  3500. ENUMDOC
  3501. ADI Blackfin GOT relocation.
  3502. ENUM
  3503. BFD_RELOC_BFIN_PLTPC
  3504. ENUMDOC
  3505. ADI Blackfin PLTPC relocation.
  3506. ENUM
  3507. BFD_ARELOC_BFIN_PUSH
  3508. ENUMDOC
  3509. ADI Blackfin arithmetic relocation.
  3510. ENUM
  3511. BFD_ARELOC_BFIN_CONST
  3512. ENUMDOC
  3513. ADI Blackfin arithmetic relocation.
  3514. ENUM
  3515. BFD_ARELOC_BFIN_ADD
  3516. ENUMDOC
  3517. ADI Blackfin arithmetic relocation.
  3518. ENUM
  3519. BFD_ARELOC_BFIN_SUB
  3520. ENUMDOC
  3521. ADI Blackfin arithmetic relocation.
  3522. ENUM
  3523. BFD_ARELOC_BFIN_MULT
  3524. ENUMDOC
  3525. ADI Blackfin arithmetic relocation.
  3526. ENUM
  3527. BFD_ARELOC_BFIN_DIV
  3528. ENUMDOC
  3529. ADI Blackfin arithmetic relocation.
  3530. ENUM
  3531. BFD_ARELOC_BFIN_MOD
  3532. ENUMDOC
  3533. ADI Blackfin arithmetic relocation.
  3534. ENUM
  3535. BFD_ARELOC_BFIN_LSHIFT
  3536. ENUMDOC
  3537. ADI Blackfin arithmetic relocation.
  3538. ENUM
  3539. BFD_ARELOC_BFIN_RSHIFT
  3540. ENUMDOC
  3541. ADI Blackfin arithmetic relocation.
  3542. ENUM
  3543. BFD_ARELOC_BFIN_AND
  3544. ENUMDOC
  3545. ADI Blackfin arithmetic relocation.
  3546. ENUM
  3547. BFD_ARELOC_BFIN_OR
  3548. ENUMDOC
  3549. ADI Blackfin arithmetic relocation.
  3550. ENUM
  3551. BFD_ARELOC_BFIN_XOR
  3552. ENUMDOC
  3553. ADI Blackfin arithmetic relocation.
  3554. ENUM
  3555. BFD_ARELOC_BFIN_LAND
  3556. ENUMDOC
  3557. ADI Blackfin arithmetic relocation.
  3558. ENUM
  3559. BFD_ARELOC_BFIN_LOR
  3560. ENUMDOC
  3561. ADI Blackfin arithmetic relocation.
  3562. ENUM
  3563. BFD_ARELOC_BFIN_LEN
  3564. ENUMDOC
  3565. ADI Blackfin arithmetic relocation.
  3566. ENUM
  3567. BFD_ARELOC_BFIN_NEG
  3568. ENUMDOC
  3569. ADI Blackfin arithmetic relocation.
  3570. ENUM
  3571. BFD_ARELOC_BFIN_COMP
  3572. ENUMDOC
  3573. ADI Blackfin arithmetic relocation.
  3574. ENUM
  3575. BFD_ARELOC_BFIN_PAGE
  3576. ENUMDOC
  3577. ADI Blackfin arithmetic relocation.
  3578. ENUM
  3579. BFD_ARELOC_BFIN_HWPAGE
  3580. ENUMDOC
  3581. ADI Blackfin arithmetic relocation.
  3582. ENUM
  3583. BFD_ARELOC_BFIN_ADDR
  3584. ENUMDOC
  3585. ADI Blackfin arithmetic relocation.
  3586. ENUM
  3587. BFD_RELOC_D10V_10_PCREL_R
  3588. ENUMDOC
  3589. Mitsubishi D10V relocs.
  3590. This is a 10-bit reloc with the right 2 bits
  3591. assumed to be 0.
  3592. ENUM
  3593. BFD_RELOC_D10V_10_PCREL_L
  3594. ENUMDOC
  3595. Mitsubishi D10V relocs.
  3596. This is a 10-bit reloc with the right 2 bits
  3597. assumed to be 0. This is the same as the previous reloc
  3598. except it is in the left container, i.e.,
  3599. shifted left 15 bits.
  3600. ENUM
  3601. BFD_RELOC_D10V_18
  3602. ENUMDOC
  3603. This is an 18-bit reloc with the right 2 bits
  3604. assumed to be 0.
  3605. ENUM
  3606. BFD_RELOC_D10V_18_PCREL
  3607. ENUMDOC
  3608. This is an 18-bit reloc with the right 2 bits
  3609. assumed to be 0.
  3610. ENUM
  3611. BFD_RELOC_D30V_6
  3612. ENUMDOC
  3613. Mitsubishi D30V relocs.
  3614. This is a 6-bit absolute reloc.
  3615. ENUM
  3616. BFD_RELOC_D30V_9_PCREL
  3617. ENUMDOC
  3618. This is a 6-bit pc-relative reloc with
  3619. the right 3 bits assumed to be 0.
  3620. ENUM
  3621. BFD_RELOC_D30V_9_PCREL_R
  3622. ENUMDOC
  3623. This is a 6-bit pc-relative reloc with
  3624. the right 3 bits assumed to be 0. Same
  3625. as the previous reloc but on the right side
  3626. of the container.
  3627. ENUM
  3628. BFD_RELOC_D30V_15
  3629. ENUMDOC
  3630. This is a 12-bit absolute reloc with the
  3631. right 3 bitsassumed to be 0.
  3632. ENUM
  3633. BFD_RELOC_D30V_15_PCREL
  3634. ENUMDOC
  3635. This is a 12-bit pc-relative reloc with
  3636. the right 3 bits assumed to be 0.
  3637. ENUM
  3638. BFD_RELOC_D30V_15_PCREL_R
  3639. ENUMDOC
  3640. This is a 12-bit pc-relative reloc with
  3641. the right 3 bits assumed to be 0. Same
  3642. as the previous reloc but on the right side
  3643. of the container.
  3644. ENUM
  3645. BFD_RELOC_D30V_21
  3646. ENUMDOC
  3647. This is an 18-bit absolute reloc with
  3648. the right 3 bits assumed to be 0.
  3649. ENUM
  3650. BFD_RELOC_D30V_21_PCREL
  3651. ENUMDOC
  3652. This is an 18-bit pc-relative reloc with
  3653. the right 3 bits assumed to be 0.
  3654. ENUM
  3655. BFD_RELOC_D30V_21_PCREL_R
  3656. ENUMDOC
  3657. This is an 18-bit pc-relative reloc with
  3658. the right 3 bits assumed to be 0. Same
  3659. as the previous reloc but on the right side
  3660. of the container.
  3661. ENUM
  3662. BFD_RELOC_D30V_32
  3663. ENUMDOC
  3664. This is a 32-bit absolute reloc.
  3665. ENUM
  3666. BFD_RELOC_D30V_32_PCREL
  3667. ENUMDOC
  3668. This is a 32-bit pc-relative reloc.
  3669. ENUM
  3670. BFD_RELOC_DLX_HI16_S
  3671. ENUMDOC
  3672. DLX relocs
  3673. ENUM
  3674. BFD_RELOC_DLX_LO16
  3675. ENUMDOC
  3676. DLX relocs
  3677. ENUM
  3678. BFD_RELOC_DLX_JMP26
  3679. ENUMDOC
  3680. DLX relocs
  3681. ENUM
  3682. BFD_RELOC_M32C_HI8
  3683. ENUMX
  3684. BFD_RELOC_M32C_RL_JUMP
  3685. ENUMX
  3686. BFD_RELOC_M32C_RL_1ADDR
  3687. ENUMX
  3688. BFD_RELOC_M32C_RL_2ADDR
  3689. ENUMDOC
  3690. Renesas M16C/M32C Relocations.
  3691. ENUM
  3692. BFD_RELOC_M32R_24
  3693. ENUMDOC
  3694. Renesas M32R (formerly Mitsubishi M32R) relocs.
  3695. This is a 24 bit absolute address.
  3696. ENUM
  3697. BFD_RELOC_M32R_10_PCREL
  3698. ENUMDOC
  3699. This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0.
  3700. ENUM
  3701. BFD_RELOC_M32R_18_PCREL
  3702. ENUMDOC
  3703. This is an 18-bit reloc with the right 2 bits assumed to be 0.
  3704. ENUM
  3705. BFD_RELOC_M32R_26_PCREL
  3706. ENUMDOC
  3707. This is a 26-bit reloc with the right 2 bits assumed to be 0.
  3708. ENUM
  3709. BFD_RELOC_M32R_HI16_ULO
  3710. ENUMDOC
  3711. This is a 16-bit reloc containing the high 16 bits of an address
  3712. used when the lower 16 bits are treated as unsigned.
  3713. ENUM
  3714. BFD_RELOC_M32R_HI16_SLO
  3715. ENUMDOC
  3716. This is a 16-bit reloc containing the high 16 bits of an address
  3717. used when the lower 16 bits are treated as signed.
  3718. ENUM
  3719. BFD_RELOC_M32R_LO16
  3720. ENUMDOC
  3721. This is a 16-bit reloc containing the lower 16 bits of an address.
  3722. ENUM
  3723. BFD_RELOC_M32R_SDA16
  3724. ENUMDOC
  3725. This is a 16-bit reloc containing the small data area offset for use in
  3726. add3, load, and store instructions.
  3727. ENUM
  3728. BFD_RELOC_M32R_GOT24
  3729. ENUMX
  3730. BFD_RELOC_M32R_26_PLTREL
  3731. ENUMX
  3732. BFD_RELOC_M32R_COPY
  3733. ENUMX
  3734. BFD_RELOC_M32R_GLOB_DAT
  3735. ENUMX
  3736. BFD_RELOC_M32R_JMP_SLOT
  3737. ENUMX
  3738. BFD_RELOC_M32R_RELATIVE
  3739. ENUMX
  3740. BFD_RELOC_M32R_GOTOFF
  3741. ENUMX
  3742. BFD_RELOC_M32R_GOTOFF_HI_ULO
  3743. ENUMX
  3744. BFD_RELOC_M32R_GOTOFF_HI_SLO
  3745. ENUMX
  3746. BFD_RELOC_M32R_GOTOFF_LO
  3747. ENUMX
  3748. BFD_RELOC_M32R_GOTPC24
  3749. ENUMX
  3750. BFD_RELOC_M32R_GOT16_HI_ULO
  3751. ENUMX
  3752. BFD_RELOC_M32R_GOT16_HI_SLO
  3753. ENUMX
  3754. BFD_RELOC_M32R_GOT16_LO
  3755. ENUMX
  3756. BFD_RELOC_M32R_GOTPC_HI_ULO
  3757. ENUMX
  3758. BFD_RELOC_M32R_GOTPC_HI_SLO
  3759. ENUMX
  3760. BFD_RELOC_M32R_GOTPC_LO
  3761. ENUMDOC
  3762. For PIC.
  3763. ENUM
  3764. BFD_RELOC_NDS32_20
  3765. ENUMDOC
  3766. NDS32 relocs.
  3767. This is a 20 bit absolute address.
  3768. ENUM
  3769. BFD_RELOC_NDS32_9_PCREL
  3770. ENUMDOC
  3771. This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
  3772. ENUM
  3773. BFD_RELOC_NDS32_WORD_9_PCREL
  3774. ENUMDOC
  3775. This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
  3776. ENUM
  3777. BFD_RELOC_NDS32_15_PCREL
  3778. ENUMDOC
  3779. This is an 15-bit reloc with the right 1 bit assumed to be 0.
  3780. ENUM
  3781. BFD_RELOC_NDS32_17_PCREL
  3782. ENUMDOC
  3783. This is an 17-bit reloc with the right 1 bit assumed to be 0.
  3784. ENUM
  3785. BFD_RELOC_NDS32_25_PCREL
  3786. ENUMDOC
  3787. This is a 25-bit reloc with the right 1 bit assumed to be 0.
  3788. ENUM
  3789. BFD_RELOC_NDS32_HI20
  3790. ENUMDOC
  3791. This is a 20-bit reloc containing the high 20 bits of an address
  3792. used with the lower 12 bits
  3793. ENUM
  3794. BFD_RELOC_NDS32_LO12S3
  3795. ENUMDOC
  3796. This is a 12-bit reloc containing the lower 12 bits of an address
  3797. then shift right by 3. This is used with ldi,sdi...
  3798. ENUM
  3799. BFD_RELOC_NDS32_LO12S2
  3800. ENUMDOC
  3801. This is a 12-bit reloc containing the lower 12 bits of an address
  3802. then shift left by 2. This is used with lwi,swi...
  3803. ENUM
  3804. BFD_RELOC_NDS32_LO12S1
  3805. ENUMDOC
  3806. This is a 12-bit reloc containing the lower 12 bits of an address
  3807. then shift left by 1. This is used with lhi,shi...
  3808. ENUM
  3809. BFD_RELOC_NDS32_LO12S0
  3810. ENUMDOC
  3811. This is a 12-bit reloc containing the lower 12 bits of an address
  3812. then shift left by 0. This is used with lbisbi...
  3813. ENUM
  3814. BFD_RELOC_NDS32_LO12S0_ORI
  3815. ENUMDOC
  3816. This is a 12-bit reloc containing the lower 12 bits of an address
  3817. then shift left by 0. This is only used with branch relaxations
  3818. ENUM
  3819. BFD_RELOC_NDS32_SDA15S3
  3820. ENUMDOC
  3821. This is a 15-bit reloc containing the small data area 18-bit signed offset
  3822. and shift left by 3 for use in ldi, sdi...
  3823. ENUM
  3824. BFD_RELOC_NDS32_SDA15S2
  3825. ENUMDOC
  3826. This is a 15-bit reloc containing the small data area 17-bit signed offset
  3827. and shift left by 2 for use in lwi, swi...
  3828. ENUM
  3829. BFD_RELOC_NDS32_SDA15S1
  3830. ENUMDOC
  3831. This is a 15-bit reloc containing the small data area 16-bit signed offset
  3832. and shift left by 1 for use in lhi, shi...
  3833. ENUM
  3834. BFD_RELOC_NDS32_SDA15S0
  3835. ENUMDOC
  3836. This is a 15-bit reloc containing the small data area 15-bit signed offset
  3837. and shift left by 0 for use in lbi, sbi...
  3838. ENUM
  3839. BFD_RELOC_NDS32_SDA16S3
  3840. ENUMDOC
  3841. This is a 16-bit reloc containing the small data area 16-bit signed offset
  3842. and shift left by 3
  3843. ENUM
  3844. BFD_RELOC_NDS32_SDA17S2
  3845. ENUMDOC
  3846. This is a 17-bit reloc containing the small data area 17-bit signed offset
  3847. and shift left by 2 for use in lwi.gp, swi.gp...
  3848. ENUM
  3849. BFD_RELOC_NDS32_SDA18S1
  3850. ENUMDOC
  3851. This is a 18-bit reloc containing the small data area 18-bit signed offset
  3852. and shift left by 1 for use in lhi.gp, shi.gp...
  3853. ENUM
  3854. BFD_RELOC_NDS32_SDA19S0
  3855. ENUMDOC
  3856. This is a 19-bit reloc containing the small data area 19-bit signed offset
  3857. and shift left by 0 for use in lbi.gp, sbi.gp...
  3858. ENUM
  3859. BFD_RELOC_NDS32_GOT20
  3860. ENUMX
  3861. BFD_RELOC_NDS32_9_PLTREL
  3862. ENUMX
  3863. BFD_RELOC_NDS32_25_PLTREL
  3864. ENUMX
  3865. BFD_RELOC_NDS32_COPY
  3866. ENUMX
  3867. BFD_RELOC_NDS32_GLOB_DAT
  3868. ENUMX
  3869. BFD_RELOC_NDS32_JMP_SLOT
  3870. ENUMX
  3871. BFD_RELOC_NDS32_RELATIVE
  3872. ENUMX
  3873. BFD_RELOC_NDS32_GOTOFF
  3874. ENUMX
  3875. BFD_RELOC_NDS32_GOTOFF_HI20
  3876. ENUMX
  3877. BFD_RELOC_NDS32_GOTOFF_LO12
  3878. ENUMX
  3879. BFD_RELOC_NDS32_GOTPC20
  3880. ENUMX
  3881. BFD_RELOC_NDS32_GOT_HI20
  3882. ENUMX
  3883. BFD_RELOC_NDS32_GOT_LO12
  3884. ENUMX
  3885. BFD_RELOC_NDS32_GOTPC_HI20
  3886. ENUMX
  3887. BFD_RELOC_NDS32_GOTPC_LO12
  3888. ENUMDOC
  3889. for PIC
  3890. ENUM
  3891. BFD_RELOC_NDS32_INSN16
  3892. ENUMX
  3893. BFD_RELOC_NDS32_LABEL
  3894. ENUMX
  3895. BFD_RELOC_NDS32_LONGCALL1
  3896. ENUMX
  3897. BFD_RELOC_NDS32_LONGCALL2
  3898. ENUMX
  3899. BFD_RELOC_NDS32_LONGCALL3
  3900. ENUMX
  3901. BFD_RELOC_NDS32_LONGJUMP1
  3902. ENUMX
  3903. BFD_RELOC_NDS32_LONGJUMP2
  3904. ENUMX
  3905. BFD_RELOC_NDS32_LONGJUMP3
  3906. ENUMX
  3907. BFD_RELOC_NDS32_LOADSTORE
  3908. ENUMX
  3909. BFD_RELOC_NDS32_9_FIXED
  3910. ENUMX
  3911. BFD_RELOC_NDS32_15_FIXED
  3912. ENUMX
  3913. BFD_RELOC_NDS32_17_FIXED
  3914. ENUMX
  3915. BFD_RELOC_NDS32_25_FIXED
  3916. ENUMX
  3917. BFD_RELOC_NDS32_LONGCALL4
  3918. ENUMX
  3919. BFD_RELOC_NDS32_LONGCALL5
  3920. ENUMX
  3921. BFD_RELOC_NDS32_LONGCALL6
  3922. ENUMX
  3923. BFD_RELOC_NDS32_LONGJUMP4
  3924. ENUMX
  3925. BFD_RELOC_NDS32_LONGJUMP5
  3926. ENUMX
  3927. BFD_RELOC_NDS32_LONGJUMP6
  3928. ENUMX
  3929. BFD_RELOC_NDS32_LONGJUMP7
  3930. ENUMDOC
  3931. for relax
  3932. ENUM
  3933. BFD_RELOC_NDS32_PLTREL_HI20
  3934. ENUMX
  3935. BFD_RELOC_NDS32_PLTREL_LO12
  3936. ENUMX
  3937. BFD_RELOC_NDS32_PLT_GOTREL_HI20
  3938. ENUMX
  3939. BFD_RELOC_NDS32_PLT_GOTREL_LO12
  3940. ENUMDOC
  3941. for PIC
  3942. ENUM
  3943. BFD_RELOC_NDS32_SDA12S2_DP
  3944. ENUMX
  3945. BFD_RELOC_NDS32_SDA12S2_SP
  3946. ENUMX
  3947. BFD_RELOC_NDS32_LO12S2_DP
  3948. ENUMX
  3949. BFD_RELOC_NDS32_LO12S2_SP
  3950. ENUMDOC
  3951. for floating point
  3952. ENUM
  3953. BFD_RELOC_NDS32_DWARF2_OP1
  3954. ENUMX
  3955. BFD_RELOC_NDS32_DWARF2_OP2
  3956. ENUMX
  3957. BFD_RELOC_NDS32_DWARF2_LEB
  3958. ENUMDOC
  3959. for dwarf2 debug_line.
  3960. ENUM
  3961. BFD_RELOC_NDS32_UPDATE_TA
  3962. ENUMDOC
  3963. for eliminate 16-bit instructions
  3964. ENUM
  3965. BFD_RELOC_NDS32_PLT_GOTREL_LO20
  3966. ENUMX
  3967. BFD_RELOC_NDS32_PLT_GOTREL_LO15
  3968. ENUMX
  3969. BFD_RELOC_NDS32_PLT_GOTREL_LO19
  3970. ENUMX
  3971. BFD_RELOC_NDS32_GOT_LO15
  3972. ENUMX
  3973. BFD_RELOC_NDS32_GOT_LO19
  3974. ENUMX
  3975. BFD_RELOC_NDS32_GOTOFF_LO15
  3976. ENUMX
  3977. BFD_RELOC_NDS32_GOTOFF_LO19
  3978. ENUMX
  3979. BFD_RELOC_NDS32_GOT15S2
  3980. ENUMX
  3981. BFD_RELOC_NDS32_GOT17S2
  3982. ENUMDOC
  3983. for PIC object relaxation
  3984. ENUM
  3985. BFD_RELOC_NDS32_5
  3986. ENUMDOC
  3987. NDS32 relocs.
  3988. This is a 5 bit absolute address.
  3989. ENUM
  3990. BFD_RELOC_NDS32_10_UPCREL
  3991. ENUMDOC
  3992. This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0.
  3993. ENUM
  3994. BFD_RELOC_NDS32_SDA_FP7U2_RELA
  3995. ENUMDOC
  3996. If fp were omitted, fp can used as another gp.
  3997. ENUM
  3998. BFD_RELOC_NDS32_RELAX_ENTRY
  3999. ENUMX
  4000. BFD_RELOC_NDS32_GOT_SUFF
  4001. ENUMX
  4002. BFD_RELOC_NDS32_GOTOFF_SUFF
  4003. ENUMX
  4004. BFD_RELOC_NDS32_PLT_GOT_SUFF
  4005. ENUMX
  4006. BFD_RELOC_NDS32_MULCALL_SUFF
  4007. ENUMX
  4008. BFD_RELOC_NDS32_PTR
  4009. ENUMX
  4010. BFD_RELOC_NDS32_PTR_COUNT
  4011. ENUMX
  4012. BFD_RELOC_NDS32_PTR_RESOLVED
  4013. ENUMX
  4014. BFD_RELOC_NDS32_PLTBLOCK
  4015. ENUMX
  4016. BFD_RELOC_NDS32_RELAX_REGION_BEGIN
  4017. ENUMX
  4018. BFD_RELOC_NDS32_RELAX_REGION_END
  4019. ENUMX
  4020. BFD_RELOC_NDS32_MINUEND
  4021. ENUMX
  4022. BFD_RELOC_NDS32_SUBTRAHEND
  4023. ENUMX
  4024. BFD_RELOC_NDS32_DIFF8
  4025. ENUMX
  4026. BFD_RELOC_NDS32_DIFF16
  4027. ENUMX
  4028. BFD_RELOC_NDS32_DIFF32
  4029. ENUMX
  4030. BFD_RELOC_NDS32_DIFF_ULEB128
  4031. ENUMX
  4032. BFD_RELOC_NDS32_EMPTY
  4033. ENUMDOC
  4034. relaxation relative relocation types
  4035. ENUM
  4036. BFD_RELOC_NDS32_25_ABS
  4037. ENUMDOC
  4038. This is a 25 bit absolute address.
  4039. ENUM
  4040. BFD_RELOC_NDS32_DATA
  4041. ENUMX
  4042. BFD_RELOC_NDS32_TRAN
  4043. ENUMX
  4044. BFD_RELOC_NDS32_17IFC_PCREL
  4045. ENUMX
  4046. BFD_RELOC_NDS32_10IFCU_PCREL
  4047. ENUMDOC
  4048. For ex9 and ifc using.
  4049. ENUM
  4050. BFD_RELOC_NDS32_TPOFF
  4051. ENUMX
  4052. BFD_RELOC_NDS32_GOTTPOFF
  4053. ENUMX
  4054. BFD_RELOC_NDS32_TLS_LE_HI20
  4055. ENUMX
  4056. BFD_RELOC_NDS32_TLS_LE_LO12
  4057. ENUMX
  4058. BFD_RELOC_NDS32_TLS_LE_20
  4059. ENUMX
  4060. BFD_RELOC_NDS32_TLS_LE_15S0
  4061. ENUMX
  4062. BFD_RELOC_NDS32_TLS_LE_15S1
  4063. ENUMX
  4064. BFD_RELOC_NDS32_TLS_LE_15S2
  4065. ENUMX
  4066. BFD_RELOC_NDS32_TLS_LE_ADD
  4067. ENUMX
  4068. BFD_RELOC_NDS32_TLS_LE_LS
  4069. ENUMX
  4070. BFD_RELOC_NDS32_TLS_IE_HI20
  4071. ENUMX
  4072. BFD_RELOC_NDS32_TLS_IE_LO12
  4073. ENUMX
  4074. BFD_RELOC_NDS32_TLS_IE_LO12S2
  4075. ENUMX
  4076. BFD_RELOC_NDS32_TLS_IEGP_HI20
  4077. ENUMX
  4078. BFD_RELOC_NDS32_TLS_IEGP_LO12
  4079. ENUMX
  4080. BFD_RELOC_NDS32_TLS_IEGP_LO12S2
  4081. ENUMX
  4082. BFD_RELOC_NDS32_TLS_IEGP_LW
  4083. ENUMX
  4084. BFD_RELOC_NDS32_TLS_DESC
  4085. ENUMX
  4086. BFD_RELOC_NDS32_TLS_DESC_HI20
  4087. ENUMX
  4088. BFD_RELOC_NDS32_TLS_DESC_LO12
  4089. ENUMX
  4090. BFD_RELOC_NDS32_TLS_DESC_20
  4091. ENUMX
  4092. BFD_RELOC_NDS32_TLS_DESC_SDA17S2
  4093. ENUMX
  4094. BFD_RELOC_NDS32_TLS_DESC_ADD
  4095. ENUMX
  4096. BFD_RELOC_NDS32_TLS_DESC_FUNC
  4097. ENUMX
  4098. BFD_RELOC_NDS32_TLS_DESC_CALL
  4099. ENUMX
  4100. BFD_RELOC_NDS32_TLS_DESC_MEM
  4101. ENUMX
  4102. BFD_RELOC_NDS32_REMOVE
  4103. ENUMX
  4104. BFD_RELOC_NDS32_GROUP
  4105. ENUMDOC
  4106. For TLS.
  4107. ENUM
  4108. BFD_RELOC_NDS32_LSI
  4109. ENUMDOC
  4110. For floating load store relaxation.
  4111. ENUM
  4112. BFD_RELOC_V850_9_PCREL
  4113. ENUMDOC
  4114. This is a 9-bit reloc
  4115. ENUM
  4116. BFD_RELOC_V850_22_PCREL
  4117. ENUMDOC
  4118. This is a 22-bit reloc
  4119. ENUM
  4120. BFD_RELOC_V850_SDA_16_16_OFFSET
  4121. ENUMDOC
  4122. This is a 16 bit offset from the short data area pointer.
  4123. ENUM
  4124. BFD_RELOC_V850_SDA_15_16_OFFSET
  4125. ENUMDOC
  4126. This is a 16 bit offset (of which only 15 bits are used) from the
  4127. short data area pointer.
  4128. ENUM
  4129. BFD_RELOC_V850_ZDA_16_16_OFFSET
  4130. ENUMDOC
  4131. This is a 16 bit offset from the zero data area pointer.
  4132. ENUM
  4133. BFD_RELOC_V850_ZDA_15_16_OFFSET
  4134. ENUMDOC
  4135. This is a 16 bit offset (of which only 15 bits are used) from the
  4136. zero data area pointer.
  4137. ENUM
  4138. BFD_RELOC_V850_TDA_6_8_OFFSET
  4139. ENUMDOC
  4140. This is an 8 bit offset (of which only 6 bits are used) from the
  4141. tiny data area pointer.
  4142. ENUM
  4143. BFD_RELOC_V850_TDA_7_8_OFFSET
  4144. ENUMDOC
  4145. This is an 8bit offset (of which only 7 bits are used) from the tiny
  4146. data area pointer.
  4147. ENUM
  4148. BFD_RELOC_V850_TDA_7_7_OFFSET
  4149. ENUMDOC
  4150. This is a 7 bit offset from the tiny data area pointer.
  4151. ENUM
  4152. BFD_RELOC_V850_TDA_16_16_OFFSET
  4153. ENUMDOC
  4154. This is a 16 bit offset from the tiny data area pointer.
  4155. COMMENT
  4156. ENUM
  4157. BFD_RELOC_V850_TDA_4_5_OFFSET
  4158. ENUMDOC
  4159. This is a 5 bit offset (of which only 4 bits are used) from the tiny
  4160. data area pointer.
  4161. ENUM
  4162. BFD_RELOC_V850_TDA_4_4_OFFSET
  4163. ENUMDOC
  4164. This is a 4 bit offset from the tiny data area pointer.
  4165. ENUM
  4166. BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
  4167. ENUMDOC
  4168. This is a 16 bit offset from the short data area pointer, with the
  4169. bits placed non-contiguously in the instruction.
  4170. ENUM
  4171. BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
  4172. ENUMDOC
  4173. This is a 16 bit offset from the zero data area pointer, with the
  4174. bits placed non-contiguously in the instruction.
  4175. ENUM
  4176. BFD_RELOC_V850_CALLT_6_7_OFFSET
  4177. ENUMDOC
  4178. This is a 6 bit offset from the call table base pointer.
  4179. ENUM
  4180. BFD_RELOC_V850_CALLT_16_16_OFFSET
  4181. ENUMDOC
  4182. This is a 16 bit offset from the call table base pointer.
  4183. ENUM
  4184. BFD_RELOC_V850_LONGCALL
  4185. ENUMDOC
  4186. Used for relaxing indirect function calls.
  4187. ENUM
  4188. BFD_RELOC_V850_LONGJUMP
  4189. ENUMDOC
  4190. Used for relaxing indirect jumps.
  4191. ENUM
  4192. BFD_RELOC_V850_ALIGN
  4193. ENUMDOC
  4194. Used to maintain alignment whilst relaxing.
  4195. ENUM
  4196. BFD_RELOC_V850_LO16_SPLIT_OFFSET
  4197. ENUMDOC
  4198. This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
  4199. instructions.
  4200. ENUM
  4201. BFD_RELOC_V850_16_PCREL
  4202. ENUMDOC
  4203. This is a 16-bit reloc.
  4204. ENUM
  4205. BFD_RELOC_V850_17_PCREL
  4206. ENUMDOC
  4207. This is a 17-bit reloc.
  4208. ENUM
  4209. BFD_RELOC_V850_23
  4210. ENUMDOC
  4211. This is a 23-bit reloc.
  4212. ENUM
  4213. BFD_RELOC_V850_32_PCREL
  4214. ENUMDOC
  4215. This is a 32-bit reloc.
  4216. ENUM
  4217. BFD_RELOC_V850_32_ABS
  4218. ENUMDOC
  4219. This is a 32-bit reloc.
  4220. ENUM
  4221. BFD_RELOC_V850_16_SPLIT_OFFSET
  4222. ENUMDOC
  4223. This is a 16-bit reloc.
  4224. ENUM
  4225. BFD_RELOC_V850_16_S1
  4226. ENUMDOC
  4227. This is a 16-bit reloc.
  4228. ENUM
  4229. BFD_RELOC_V850_LO16_S1
  4230. ENUMDOC
  4231. Low 16 bits. 16 bit shifted by 1.
  4232. ENUM
  4233. BFD_RELOC_V850_CALLT_15_16_OFFSET
  4234. ENUMDOC
  4235. This is a 16 bit offset from the call table base pointer.
  4236. ENUM
  4237. BFD_RELOC_V850_32_GOTPCREL
  4238. ENUMDOC
  4239. DSO relocations.
  4240. ENUM
  4241. BFD_RELOC_V850_16_GOT
  4242. ENUMDOC
  4243. DSO relocations.
  4244. ENUM
  4245. BFD_RELOC_V850_32_GOT
  4246. ENUMDOC
  4247. DSO relocations.
  4248. ENUM
  4249. BFD_RELOC_V850_22_PLT_PCREL
  4250. ENUMDOC
  4251. DSO relocations.
  4252. ENUM
  4253. BFD_RELOC_V850_32_PLT_PCREL
  4254. ENUMDOC
  4255. DSO relocations.
  4256. ENUM
  4257. BFD_RELOC_V850_COPY
  4258. ENUMDOC
  4259. DSO relocations.
  4260. ENUM
  4261. BFD_RELOC_V850_GLOB_DAT
  4262. ENUMDOC
  4263. DSO relocations.
  4264. ENUM
  4265. BFD_RELOC_V850_JMP_SLOT
  4266. ENUMDOC
  4267. DSO relocations.
  4268. ENUM
  4269. BFD_RELOC_V850_RELATIVE
  4270. ENUMDOC
  4271. DSO relocations.
  4272. ENUM
  4273. BFD_RELOC_V850_16_GOTOFF
  4274. ENUMDOC
  4275. DSO relocations.
  4276. ENUM
  4277. BFD_RELOC_V850_32_GOTOFF
  4278. ENUMDOC
  4279. DSO relocations.
  4280. ENUM
  4281. BFD_RELOC_V850_CODE
  4282. ENUMDOC
  4283. start code.
  4284. ENUM
  4285. BFD_RELOC_V850_DATA
  4286. ENUMDOC
  4287. start data in text.
  4288. ENUM
  4289. BFD_RELOC_TIC30_LDP
  4290. ENUMDOC
  4291. This is a 8bit DP reloc for the tms320c30, where the most
  4292. significant 8 bits of a 24 bit word are placed into the least
  4293. significant 8 bits of the opcode.
  4294. ENUM
  4295. BFD_RELOC_TIC54X_PARTLS7
  4296. ENUMDOC
  4297. This is a 7bit reloc for the tms320c54x, where the least
  4298. significant 7 bits of a 16 bit word are placed into the least
  4299. significant 7 bits of the opcode.
  4300. ENUM
  4301. BFD_RELOC_TIC54X_PARTMS9
  4302. ENUMDOC
  4303. This is a 9bit DP reloc for the tms320c54x, where the most
  4304. significant 9 bits of a 16 bit word are placed into the least
  4305. significant 9 bits of the opcode.
  4306. ENUM
  4307. BFD_RELOC_TIC54X_23
  4308. ENUMDOC
  4309. This is an extended address 23-bit reloc for the tms320c54x.
  4310. ENUM
  4311. BFD_RELOC_TIC54X_16_OF_23
  4312. ENUMDOC
  4313. This is a 16-bit reloc for the tms320c54x, where the least
  4314. significant 16 bits of a 23-bit extended address are placed into
  4315. the opcode.
  4316. ENUM
  4317. BFD_RELOC_TIC54X_MS7_OF_23
  4318. ENUMDOC
  4319. This is a reloc for the tms320c54x, where the most
  4320. significant 7 bits of a 23-bit extended address are placed into
  4321. the opcode.
  4322. ENUM
  4323. BFD_RELOC_C6000_PCR_S21
  4324. ENUMX
  4325. BFD_RELOC_C6000_PCR_S12
  4326. ENUMX
  4327. BFD_RELOC_C6000_PCR_S10
  4328. ENUMX
  4329. BFD_RELOC_C6000_PCR_S7
  4330. ENUMX
  4331. BFD_RELOC_C6000_ABS_S16
  4332. ENUMX
  4333. BFD_RELOC_C6000_ABS_L16
  4334. ENUMX
  4335. BFD_RELOC_C6000_ABS_H16
  4336. ENUMX
  4337. BFD_RELOC_C6000_SBR_U15_B
  4338. ENUMX
  4339. BFD_RELOC_C6000_SBR_U15_H
  4340. ENUMX
  4341. BFD_RELOC_C6000_SBR_U15_W
  4342. ENUMX
  4343. BFD_RELOC_C6000_SBR_S16
  4344. ENUMX
  4345. BFD_RELOC_C6000_SBR_L16_B
  4346. ENUMX
  4347. BFD_RELOC_C6000_SBR_L16_H
  4348. ENUMX
  4349. BFD_RELOC_C6000_SBR_L16_W
  4350. ENUMX
  4351. BFD_RELOC_C6000_SBR_H16_B
  4352. ENUMX
  4353. BFD_RELOC_C6000_SBR_H16_H
  4354. ENUMX
  4355. BFD_RELOC_C6000_SBR_H16_W
  4356. ENUMX
  4357. BFD_RELOC_C6000_SBR_GOT_U15_W
  4358. ENUMX
  4359. BFD_RELOC_C6000_SBR_GOT_L16_W
  4360. ENUMX
  4361. BFD_RELOC_C6000_SBR_GOT_H16_W
  4362. ENUMX
  4363. BFD_RELOC_C6000_DSBT_INDEX
  4364. ENUMX
  4365. BFD_RELOC_C6000_PREL31
  4366. ENUMX
  4367. BFD_RELOC_C6000_COPY
  4368. ENUMX
  4369. BFD_RELOC_C6000_JUMP_SLOT
  4370. ENUMX
  4371. BFD_RELOC_C6000_EHTYPE
  4372. ENUMX
  4373. BFD_RELOC_C6000_PCR_H16
  4374. ENUMX
  4375. BFD_RELOC_C6000_PCR_L16
  4376. ENUMX
  4377. BFD_RELOC_C6000_ALIGN
  4378. ENUMX
  4379. BFD_RELOC_C6000_FPHEAD
  4380. ENUMX
  4381. BFD_RELOC_C6000_NOCMP
  4382. ENUMDOC
  4383. TMS320C6000 relocations.
  4384. ENUM
  4385. BFD_RELOC_FR30_48
  4386. ENUMDOC
  4387. This is a 48 bit reloc for the FR30 that stores 32 bits.
  4388. ENUM
  4389. BFD_RELOC_FR30_20
  4390. ENUMDOC
  4391. This is a 32 bit reloc for the FR30 that stores 20 bits split up into
  4392. two sections.
  4393. ENUM
  4394. BFD_RELOC_FR30_6_IN_4
  4395. ENUMDOC
  4396. This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
  4397. 4 bits.
  4398. ENUM
  4399. BFD_RELOC_FR30_8_IN_8
  4400. ENUMDOC
  4401. This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
  4402. into 8 bits.
  4403. ENUM
  4404. BFD_RELOC_FR30_9_IN_8
  4405. ENUMDOC
  4406. This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
  4407. into 8 bits.
  4408. ENUM
  4409. BFD_RELOC_FR30_10_IN_8
  4410. ENUMDOC
  4411. This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
  4412. into 8 bits.
  4413. ENUM
  4414. BFD_RELOC_FR30_9_PCREL
  4415. ENUMDOC
  4416. This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
  4417. short offset into 8 bits.
  4418. ENUM
  4419. BFD_RELOC_FR30_12_PCREL
  4420. ENUMDOC
  4421. This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
  4422. short offset into 11 bits.
  4423. ENUM
  4424. BFD_RELOC_MCORE_PCREL_IMM8BY4
  4425. ENUMX
  4426. BFD_RELOC_MCORE_PCREL_IMM11BY2
  4427. ENUMX
  4428. BFD_RELOC_MCORE_PCREL_IMM4BY2
  4429. ENUMX
  4430. BFD_RELOC_MCORE_PCREL_32
  4431. ENUMX
  4432. BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
  4433. ENUMX
  4434. BFD_RELOC_MCORE_RVA
  4435. ENUMDOC
  4436. Motorola Mcore relocations.
  4437. ENUM
  4438. BFD_RELOC_MEP_8
  4439. ENUMX
  4440. BFD_RELOC_MEP_16
  4441. ENUMX
  4442. BFD_RELOC_MEP_32
  4443. ENUMX
  4444. BFD_RELOC_MEP_PCREL8A2
  4445. ENUMX
  4446. BFD_RELOC_MEP_PCREL12A2
  4447. ENUMX
  4448. BFD_RELOC_MEP_PCREL17A2
  4449. ENUMX
  4450. BFD_RELOC_MEP_PCREL24A2
  4451. ENUMX
  4452. BFD_RELOC_MEP_PCABS24A2
  4453. ENUMX
  4454. BFD_RELOC_MEP_LOW16
  4455. ENUMX
  4456. BFD_RELOC_MEP_HI16U
  4457. ENUMX
  4458. BFD_RELOC_MEP_HI16S
  4459. ENUMX
  4460. BFD_RELOC_MEP_GPREL
  4461. ENUMX
  4462. BFD_RELOC_MEP_TPREL
  4463. ENUMX
  4464. BFD_RELOC_MEP_TPREL7
  4465. ENUMX
  4466. BFD_RELOC_MEP_TPREL7A2
  4467. ENUMX
  4468. BFD_RELOC_MEP_TPREL7A4
  4469. ENUMX
  4470. BFD_RELOC_MEP_UIMM24
  4471. ENUMX
  4472. BFD_RELOC_MEP_ADDR24A4
  4473. ENUMX
  4474. BFD_RELOC_MEP_GNU_VTINHERIT
  4475. ENUMX
  4476. BFD_RELOC_MEP_GNU_VTENTRY
  4477. ENUMDOC
  4478. Toshiba Media Processor Relocations.
  4479. COMMENT
  4480. ENUM
  4481. BFD_RELOC_METAG_HIADDR16
  4482. ENUMX
  4483. BFD_RELOC_METAG_LOADDR16
  4484. ENUMX
  4485. BFD_RELOC_METAG_RELBRANCH
  4486. ENUMX
  4487. BFD_RELOC_METAG_GETSETOFF
  4488. ENUMX
  4489. BFD_RELOC_METAG_HIOG
  4490. ENUMX
  4491. BFD_RELOC_METAG_LOOG
  4492. ENUMX
  4493. BFD_RELOC_METAG_REL8
  4494. ENUMX
  4495. BFD_RELOC_METAG_REL16
  4496. ENUMX
  4497. BFD_RELOC_METAG_HI16_GOTOFF
  4498. ENUMX
  4499. BFD_RELOC_METAG_LO16_GOTOFF
  4500. ENUMX
  4501. BFD_RELOC_METAG_GETSET_GOTOFF
  4502. ENUMX
  4503. BFD_RELOC_METAG_GETSET_GOT
  4504. ENUMX
  4505. BFD_RELOC_METAG_HI16_GOTPC
  4506. ENUMX
  4507. BFD_RELOC_METAG_LO16_GOTPC
  4508. ENUMX
  4509. BFD_RELOC_METAG_HI16_PLT
  4510. ENUMX
  4511. BFD_RELOC_METAG_LO16_PLT
  4512. ENUMX
  4513. BFD_RELOC_METAG_RELBRANCH_PLT
  4514. ENUMX
  4515. BFD_RELOC_METAG_GOTOFF
  4516. ENUMX
  4517. BFD_RELOC_METAG_PLT
  4518. ENUMX
  4519. BFD_RELOC_METAG_COPY
  4520. ENUMX
  4521. BFD_RELOC_METAG_JMP_SLOT
  4522. ENUMX
  4523. BFD_RELOC_METAG_RELATIVE
  4524. ENUMX
  4525. BFD_RELOC_METAG_GLOB_DAT
  4526. ENUMX
  4527. BFD_RELOC_METAG_TLS_GD
  4528. ENUMX
  4529. BFD_RELOC_METAG_TLS_LDM
  4530. ENUMX
  4531. BFD_RELOC_METAG_TLS_LDO_HI16
  4532. ENUMX
  4533. BFD_RELOC_METAG_TLS_LDO_LO16
  4534. ENUMX
  4535. BFD_RELOC_METAG_TLS_LDO
  4536. ENUMX
  4537. BFD_RELOC_METAG_TLS_IE
  4538. ENUMX
  4539. BFD_RELOC_METAG_TLS_IENONPIC
  4540. ENUMX
  4541. BFD_RELOC_METAG_TLS_IENONPIC_HI16
  4542. ENUMX
  4543. BFD_RELOC_METAG_TLS_IENONPIC_LO16
  4544. ENUMX
  4545. BFD_RELOC_METAG_TLS_TPOFF
  4546. ENUMX
  4547. BFD_RELOC_METAG_TLS_DTPMOD
  4548. ENUMX
  4549. BFD_RELOC_METAG_TLS_DTPOFF
  4550. ENUMX
  4551. BFD_RELOC_METAG_TLS_LE
  4552. ENUMX
  4553. BFD_RELOC_METAG_TLS_LE_HI16
  4554. ENUMX
  4555. BFD_RELOC_METAG_TLS_LE_LO16
  4556. ENUMDOC
  4557. Imagination Technologies Meta relocations.
  4558. ENUM
  4559. BFD_RELOC_MMIX_GETA
  4560. ENUMX
  4561. BFD_RELOC_MMIX_GETA_1
  4562. ENUMX
  4563. BFD_RELOC_MMIX_GETA_2
  4564. ENUMX
  4565. BFD_RELOC_MMIX_GETA_3
  4566. ENUMDOC
  4567. These are relocations for the GETA instruction.
  4568. ENUM
  4569. BFD_RELOC_MMIX_CBRANCH
  4570. ENUMX
  4571. BFD_RELOC_MMIX_CBRANCH_J
  4572. ENUMX
  4573. BFD_RELOC_MMIX_CBRANCH_1
  4574. ENUMX
  4575. BFD_RELOC_MMIX_CBRANCH_2
  4576. ENUMX
  4577. BFD_RELOC_MMIX_CBRANCH_3
  4578. ENUMDOC
  4579. These are relocations for a conditional branch instruction.
  4580. ENUM
  4581. BFD_RELOC_MMIX_PUSHJ
  4582. ENUMX
  4583. BFD_RELOC_MMIX_PUSHJ_1
  4584. ENUMX
  4585. BFD_RELOC_MMIX_PUSHJ_2
  4586. ENUMX
  4587. BFD_RELOC_MMIX_PUSHJ_3
  4588. ENUMX
  4589. BFD_RELOC_MMIX_PUSHJ_STUBBABLE
  4590. ENUMDOC
  4591. These are relocations for the PUSHJ instruction.
  4592. ENUM
  4593. BFD_RELOC_MMIX_JMP
  4594. ENUMX
  4595. BFD_RELOC_MMIX_JMP_1
  4596. ENUMX
  4597. BFD_RELOC_MMIX_JMP_2
  4598. ENUMX
  4599. BFD_RELOC_MMIX_JMP_3
  4600. ENUMDOC
  4601. These are relocations for the JMP instruction.
  4602. ENUM
  4603. BFD_RELOC_MMIX_ADDR19
  4604. ENUMDOC
  4605. This is a relocation for a relative address as in a GETA instruction or
  4606. a branch.
  4607. ENUM
  4608. BFD_RELOC_MMIX_ADDR27
  4609. ENUMDOC
  4610. This is a relocation for a relative address as in a JMP instruction.
  4611. ENUM
  4612. BFD_RELOC_MMIX_REG_OR_BYTE
  4613. ENUMDOC
  4614. This is a relocation for an instruction field that may be a general
  4615. register or a value 0..255.
  4616. ENUM
  4617. BFD_RELOC_MMIX_REG
  4618. ENUMDOC
  4619. This is a relocation for an instruction field that may be a general
  4620. register.
  4621. ENUM
  4622. BFD_RELOC_MMIX_BASE_PLUS_OFFSET
  4623. ENUMDOC
  4624. This is a relocation for two instruction fields holding a register and
  4625. an offset, the equivalent of the relocation.
  4626. ENUM
  4627. BFD_RELOC_MMIX_LOCAL
  4628. ENUMDOC
  4629. This relocation is an assertion that the expression is not allocated as
  4630. a global register. It does not modify contents.
  4631. ENUM
  4632. BFD_RELOC_AVR_7_PCREL
  4633. ENUMDOC
  4634. This is a 16 bit reloc for the AVR that stores 8 bit pc relative
  4635. short offset into 7 bits.
  4636. ENUM
  4637. BFD_RELOC_AVR_13_PCREL
  4638. ENUMDOC
  4639. This is a 16 bit reloc for the AVR that stores 13 bit pc relative
  4640. short offset into 12 bits.
  4641. ENUM
  4642. BFD_RELOC_AVR_16_PM
  4643. ENUMDOC
  4644. This is a 16 bit reloc for the AVR that stores 17 bit value (usually
  4645. program memory address) into 16 bits.
  4646. ENUM
  4647. BFD_RELOC_AVR_LO8_LDI
  4648. ENUMDOC
  4649. This is a 16 bit reloc for the AVR that stores 8 bit value (usually
  4650. data memory address) into 8 bit immediate value of LDI insn.
  4651. ENUM
  4652. BFD_RELOC_AVR_HI8_LDI
  4653. ENUMDOC
  4654. This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
  4655. of data memory address) into 8 bit immediate value of LDI insn.
  4656. ENUM
  4657. BFD_RELOC_AVR_HH8_LDI
  4658. ENUMDOC
  4659. This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
  4660. of program memory address) into 8 bit immediate value of LDI insn.
  4661. ENUM
  4662. BFD_RELOC_AVR_MS8_LDI
  4663. ENUMDOC
  4664. This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
  4665. of 32 bit value) into 8 bit immediate value of LDI insn.
  4666. ENUM
  4667. BFD_RELOC_AVR_LO8_LDI_NEG
  4668. ENUMDOC
  4669. This is a 16 bit reloc for the AVR that stores negated 8 bit value
  4670. (usually data memory address) into 8 bit immediate value of SUBI insn.
  4671. ENUM
  4672. BFD_RELOC_AVR_HI8_LDI_NEG
  4673. ENUMDOC
  4674. This is a 16 bit reloc for the AVR that stores negated 8 bit value
  4675. (high 8 bit of data memory address) into 8 bit immediate value of
  4676. SUBI insn.
  4677. ENUM
  4678. BFD_RELOC_AVR_HH8_LDI_NEG
  4679. ENUMDOC
  4680. This is a 16 bit reloc for the AVR that stores negated 8 bit value
  4681. (most high 8 bit of program memory address) into 8 bit immediate value
  4682. of LDI or SUBI insn.
  4683. ENUM
  4684. BFD_RELOC_AVR_MS8_LDI_NEG
  4685. ENUMDOC
  4686. This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
  4687. of 32 bit value) into 8 bit immediate value of LDI insn.
  4688. ENUM
  4689. BFD_RELOC_AVR_LO8_LDI_PM
  4690. ENUMDOC
  4691. This is a 16 bit reloc for the AVR that stores 8 bit value (usually
  4692. command address) into 8 bit immediate value of LDI insn.
  4693. ENUM
  4694. BFD_RELOC_AVR_LO8_LDI_GS
  4695. ENUMDOC
  4696. This is a 16 bit reloc for the AVR that stores 8 bit value
  4697. (command address) into 8 bit immediate value of LDI insn. If the address
  4698. is beyond the 128k boundary, the linker inserts a jump stub for this reloc
  4699. in the lower 128k.
  4700. ENUM
  4701. BFD_RELOC_AVR_HI8_LDI_PM
  4702. ENUMDOC
  4703. This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
  4704. of command address) into 8 bit immediate value of LDI insn.
  4705. ENUM
  4706. BFD_RELOC_AVR_HI8_LDI_GS
  4707. ENUMDOC
  4708. This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
  4709. of command address) into 8 bit immediate value of LDI insn. If the address
  4710. is beyond the 128k boundary, the linker inserts a jump stub for this reloc
  4711. below 128k.
  4712. ENUM
  4713. BFD_RELOC_AVR_HH8_LDI_PM
  4714. ENUMDOC
  4715. This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
  4716. of command address) into 8 bit immediate value of LDI insn.
  4717. ENUM
  4718. BFD_RELOC_AVR_LO8_LDI_PM_NEG
  4719. ENUMDOC
  4720. This is a 16 bit reloc for the AVR that stores negated 8 bit value
  4721. (usually command address) into 8 bit immediate value of SUBI insn.
  4722. ENUM
  4723. BFD_RELOC_AVR_HI8_LDI_PM_NEG
  4724. ENUMDOC
  4725. This is a 16 bit reloc for the AVR that stores negated 8 bit value
  4726. (high 8 bit of 16 bit command address) into 8 bit immediate value
  4727. of SUBI insn.
  4728. ENUM
  4729. BFD_RELOC_AVR_HH8_LDI_PM_NEG
  4730. ENUMDOC
  4731. This is a 16 bit reloc for the AVR that stores negated 8 bit value
  4732. (high 6 bit of 22 bit command address) into 8 bit immediate
  4733. value of SUBI insn.
  4734. ENUM
  4735. BFD_RELOC_AVR_CALL
  4736. ENUMDOC
  4737. This is a 32 bit reloc for the AVR that stores 23 bit value
  4738. into 22 bits.
  4739. ENUM
  4740. BFD_RELOC_AVR_LDI
  4741. ENUMDOC
  4742. This is a 16 bit reloc for the AVR that stores all needed bits
  4743. for absolute addressing with ldi with overflow check to linktime
  4744. ENUM
  4745. BFD_RELOC_AVR_6
  4746. ENUMDOC
  4747. This is a 6 bit reloc for the AVR that stores offset for ldd/std
  4748. instructions
  4749. ENUM
  4750. BFD_RELOC_AVR_6_ADIW
  4751. ENUMDOC
  4752. This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
  4753. instructions
  4754. ENUM
  4755. BFD_RELOC_AVR_8_LO
  4756. ENUMDOC
  4757. This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
  4758. in .byte lo8(symbol)
  4759. ENUM
  4760. BFD_RELOC_AVR_8_HI
  4761. ENUMDOC
  4762. This is a 8 bit reloc for the AVR that stores bits 8..15 of a symbol
  4763. in .byte hi8(symbol)
  4764. ENUM
  4765. BFD_RELOC_AVR_8_HLO
  4766. ENUMDOC
  4767. This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol
  4768. in .byte hlo8(symbol)
  4769. ENUM
  4770. BFD_RELOC_AVR_DIFF8
  4771. ENUMX
  4772. BFD_RELOC_AVR_DIFF16
  4773. ENUMX
  4774. BFD_RELOC_AVR_DIFF32
  4775. ENUMDOC
  4776. AVR relocations to mark the difference of two local symbols.
  4777. These are only needed to support linker relaxation and can be ignored
  4778. when not relaxing. The field is set to the value of the difference
  4779. assuming no relaxation. The relocation encodes the position of the
  4780. second symbol so the linker can determine whether to adjust the field
  4781. value.
  4782. ENUM
  4783. BFD_RELOC_AVR_LDS_STS_16
  4784. ENUMDOC
  4785. This is a 7 bit reloc for the AVR that stores SRAM address for 16bit
  4786. lds and sts instructions supported only tiny core.
  4787. ENUM
  4788. BFD_RELOC_AVR_PORT6
  4789. ENUMDOC
  4790. This is a 6 bit reloc for the AVR that stores an I/O register
  4791. number for the IN and OUT instructions
  4792. ENUM
  4793. BFD_RELOC_AVR_PORT5
  4794. ENUMDOC
  4795. This is a 5 bit reloc for the AVR that stores an I/O register
  4796. number for the SBIC, SBIS, SBI and CBI instructions
  4797. ENUM
  4798. BFD_RELOC_RISCV_HI20
  4799. ENUMX
  4800. BFD_RELOC_RISCV_PCREL_HI20
  4801. ENUMX
  4802. BFD_RELOC_RISCV_PCREL_LO12_I
  4803. ENUMX
  4804. BFD_RELOC_RISCV_PCREL_LO12_S
  4805. ENUMX
  4806. BFD_RELOC_RISCV_LO12_I
  4807. ENUMX
  4808. BFD_RELOC_RISCV_LO12_S
  4809. ENUMX
  4810. BFD_RELOC_RISCV_GPREL12_I
  4811. ENUMX
  4812. BFD_RELOC_RISCV_GPREL12_S
  4813. ENUMX
  4814. BFD_RELOC_RISCV_TPREL_HI20
  4815. ENUMX
  4816. BFD_RELOC_RISCV_TPREL_LO12_I
  4817. ENUMX
  4818. BFD_RELOC_RISCV_TPREL_LO12_S
  4819. ENUMX
  4820. BFD_RELOC_RISCV_TPREL_ADD
  4821. ENUMX
  4822. BFD_RELOC_RISCV_CALL
  4823. ENUMX
  4824. BFD_RELOC_RISCV_CALL_PLT
  4825. ENUMX
  4826. BFD_RELOC_RISCV_ADD8
  4827. ENUMX
  4828. BFD_RELOC_RISCV_ADD16
  4829. ENUMX
  4830. BFD_RELOC_RISCV_ADD32
  4831. ENUMX
  4832. BFD_RELOC_RISCV_ADD64
  4833. ENUMX
  4834. BFD_RELOC_RISCV_SUB8
  4835. ENUMX
  4836. BFD_RELOC_RISCV_SUB16
  4837. ENUMX
  4838. BFD_RELOC_RISCV_SUB32
  4839. ENUMX
  4840. BFD_RELOC_RISCV_SUB64
  4841. ENUMX
  4842. BFD_RELOC_RISCV_GOT_HI20
  4843. ENUMX
  4844. BFD_RELOC_RISCV_TLS_GOT_HI20
  4845. ENUMX
  4846. BFD_RELOC_RISCV_TLS_GD_HI20
  4847. ENUMX
  4848. BFD_RELOC_RISCV_JMP
  4849. ENUMX
  4850. BFD_RELOC_RISCV_TLS_DTPMOD32
  4851. ENUMX
  4852. BFD_RELOC_RISCV_TLS_DTPREL32
  4853. ENUMX
  4854. BFD_RELOC_RISCV_TLS_DTPMOD64
  4855. ENUMX
  4856. BFD_RELOC_RISCV_TLS_DTPREL64
  4857. ENUMX
  4858. BFD_RELOC_RISCV_TLS_TPREL32
  4859. ENUMX
  4860. BFD_RELOC_RISCV_TLS_TPREL64
  4861. ENUMX
  4862. BFD_RELOC_RISCV_ALIGN
  4863. ENUMX
  4864. BFD_RELOC_RISCV_RVC_BRANCH
  4865. ENUMX
  4866. BFD_RELOC_RISCV_RVC_JUMP
  4867. ENUMX
  4868. BFD_RELOC_RISCV_RVC_LUI
  4869. ENUMX
  4870. BFD_RELOC_RISCV_GPREL_I
  4871. ENUMX
  4872. BFD_RELOC_RISCV_GPREL_S
  4873. ENUMX
  4874. BFD_RELOC_RISCV_TPREL_I
  4875. ENUMX
  4876. BFD_RELOC_RISCV_TPREL_S
  4877. ENUMX
  4878. BFD_RELOC_RISCV_RELAX
  4879. ENUMX
  4880. BFD_RELOC_RISCV_CFA
  4881. ENUMX
  4882. BFD_RELOC_RISCV_SUB6
  4883. ENUMX
  4884. BFD_RELOC_RISCV_SET6
  4885. ENUMX
  4886. BFD_RELOC_RISCV_SET8
  4887. ENUMX
  4888. BFD_RELOC_RISCV_SET16
  4889. ENUMX
  4890. BFD_RELOC_RISCV_SET32
  4891. ENUMX
  4892. BFD_RELOC_RISCV_32_PCREL
  4893. ENUMDOC
  4894. RISC-V relocations.
  4895. ENUM
  4896. BFD_RELOC_RL78_NEG8
  4897. ENUMX
  4898. BFD_RELOC_RL78_NEG16
  4899. ENUMX
  4900. BFD_RELOC_RL78_NEG24
  4901. ENUMX
  4902. BFD_RELOC_RL78_NEG32
  4903. ENUMX
  4904. BFD_RELOC_RL78_16_OP
  4905. ENUMX
  4906. BFD_RELOC_RL78_24_OP
  4907. ENUMX
  4908. BFD_RELOC_RL78_32_OP
  4909. ENUMX
  4910. BFD_RELOC_RL78_8U
  4911. ENUMX
  4912. BFD_RELOC_RL78_16U
  4913. ENUMX
  4914. BFD_RELOC_RL78_24U
  4915. ENUMX
  4916. BFD_RELOC_RL78_DIR3U_PCREL
  4917. ENUMX
  4918. BFD_RELOC_RL78_DIFF
  4919. ENUMX
  4920. BFD_RELOC_RL78_GPRELB
  4921. ENUMX
  4922. BFD_RELOC_RL78_GPRELW
  4923. ENUMX
  4924. BFD_RELOC_RL78_GPRELL
  4925. ENUMX
  4926. BFD_RELOC_RL78_SYM
  4927. ENUMX
  4928. BFD_RELOC_RL78_OP_SUBTRACT
  4929. ENUMX
  4930. BFD_RELOC_RL78_OP_NEG
  4931. ENUMX
  4932. BFD_RELOC_RL78_OP_AND
  4933. ENUMX
  4934. BFD_RELOC_RL78_OP_SHRA
  4935. ENUMX
  4936. BFD_RELOC_RL78_ABS8
  4937. ENUMX
  4938. BFD_RELOC_RL78_ABS16
  4939. ENUMX
  4940. BFD_RELOC_RL78_ABS16_REV
  4941. ENUMX
  4942. BFD_RELOC_RL78_ABS32
  4943. ENUMX
  4944. BFD_RELOC_RL78_ABS32_REV
  4945. ENUMX
  4946. BFD_RELOC_RL78_ABS16U
  4947. ENUMX
  4948. BFD_RELOC_RL78_ABS16UW
  4949. ENUMX
  4950. BFD_RELOC_RL78_ABS16UL
  4951. ENUMX
  4952. BFD_RELOC_RL78_RELAX
  4953. ENUMX
  4954. BFD_RELOC_RL78_HI16
  4955. ENUMX
  4956. BFD_RELOC_RL78_HI8
  4957. ENUMX
  4958. BFD_RELOC_RL78_LO16
  4959. ENUMX
  4960. BFD_RELOC_RL78_CODE
  4961. ENUMX
  4962. BFD_RELOC_RL78_SADDR
  4963. ENUMDOC
  4964. Renesas RL78 Relocations.
  4965. ENUM
  4966. BFD_RELOC_RX_NEG8
  4967. ENUMX
  4968. BFD_RELOC_RX_NEG16
  4969. ENUMX
  4970. BFD_RELOC_RX_NEG24
  4971. ENUMX
  4972. BFD_RELOC_RX_NEG32
  4973. ENUMX
  4974. BFD_RELOC_RX_16_OP
  4975. ENUMX
  4976. BFD_RELOC_RX_24_OP
  4977. ENUMX
  4978. BFD_RELOC_RX_32_OP
  4979. ENUMX
  4980. BFD_RELOC_RX_8U
  4981. ENUMX
  4982. BFD_RELOC_RX_16U
  4983. ENUMX
  4984. BFD_RELOC_RX_24U
  4985. ENUMX
  4986. BFD_RELOC_RX_DIR3U_PCREL
  4987. ENUMX
  4988. BFD_RELOC_RX_DIFF
  4989. ENUMX
  4990. BFD_RELOC_RX_GPRELB
  4991. ENUMX
  4992. BFD_RELOC_RX_GPRELW
  4993. ENUMX
  4994. BFD_RELOC_RX_GPRELL
  4995. ENUMX
  4996. BFD_RELOC_RX_SYM
  4997. ENUMX
  4998. BFD_RELOC_RX_OP_SUBTRACT
  4999. ENUMX
  5000. BFD_RELOC_RX_OP_NEG
  5001. ENUMX
  5002. BFD_RELOC_RX_ABS8
  5003. ENUMX
  5004. BFD_RELOC_RX_ABS16
  5005. ENUMX
  5006. BFD_RELOC_RX_ABS16_REV
  5007. ENUMX
  5008. BFD_RELOC_RX_ABS32
  5009. ENUMX
  5010. BFD_RELOC_RX_ABS32_REV
  5011. ENUMX
  5012. BFD_RELOC_RX_ABS16U
  5013. ENUMX
  5014. BFD_RELOC_RX_ABS16UW
  5015. ENUMX
  5016. BFD_RELOC_RX_ABS16UL
  5017. ENUMX
  5018. BFD_RELOC_RX_RELAX
  5019. ENUMDOC
  5020. Renesas RX Relocations.
  5021. ENUM
  5022. BFD_RELOC_390_12
  5023. ENUMDOC
  5024. Direct 12 bit.
  5025. ENUM
  5026. BFD_RELOC_390_GOT12
  5027. ENUMDOC
  5028. 12 bit GOT offset.
  5029. ENUM
  5030. BFD_RELOC_390_PLT32
  5031. ENUMDOC
  5032. 32 bit PC relative PLT address.
  5033. ENUM
  5034. BFD_RELOC_390_COPY
  5035. ENUMDOC
  5036. Copy symbol at runtime.
  5037. ENUM
  5038. BFD_RELOC_390_GLOB_DAT
  5039. ENUMDOC
  5040. Create GOT entry.
  5041. ENUM
  5042. BFD_RELOC_390_JMP_SLOT
  5043. ENUMDOC
  5044. Create PLT entry.
  5045. ENUM
  5046. BFD_RELOC_390_RELATIVE
  5047. ENUMDOC
  5048. Adjust by program base.
  5049. ENUM
  5050. BFD_RELOC_390_GOTPC
  5051. ENUMDOC
  5052. 32 bit PC relative offset to GOT.
  5053. ENUM
  5054. BFD_RELOC_390_GOT16
  5055. ENUMDOC
  5056. 16 bit GOT offset.
  5057. ENUM
  5058. BFD_RELOC_390_PC12DBL
  5059. ENUMDOC
  5060. PC relative 12 bit shifted by 1.
  5061. ENUM
  5062. BFD_RELOC_390_PLT12DBL
  5063. ENUMDOC
  5064. 12 bit PC rel. PLT shifted by 1.
  5065. ENUM
  5066. BFD_RELOC_390_PC16DBL
  5067. ENUMDOC
  5068. PC relative 16 bit shifted by 1.
  5069. ENUM
  5070. BFD_RELOC_390_PLT16DBL
  5071. ENUMDOC
  5072. 16 bit PC rel. PLT shifted by 1.
  5073. ENUM
  5074. BFD_RELOC_390_PC24DBL
  5075. ENUMDOC
  5076. PC relative 24 bit shifted by 1.
  5077. ENUM
  5078. BFD_RELOC_390_PLT24DBL
  5079. ENUMDOC
  5080. 24 bit PC rel. PLT shifted by 1.
  5081. ENUM
  5082. BFD_RELOC_390_PC32DBL
  5083. ENUMDOC
  5084. PC relative 32 bit shifted by 1.
  5085. ENUM
  5086. BFD_RELOC_390_PLT32DBL
  5087. ENUMDOC
  5088. 32 bit PC rel. PLT shifted by 1.
  5089. ENUM
  5090. BFD_RELOC_390_GOTPCDBL
  5091. ENUMDOC
  5092. 32 bit PC rel. GOT shifted by 1.
  5093. ENUM
  5094. BFD_RELOC_390_GOT64
  5095. ENUMDOC
  5096. 64 bit GOT offset.
  5097. ENUM
  5098. BFD_RELOC_390_PLT64
  5099. ENUMDOC
  5100. 64 bit PC relative PLT address.
  5101. ENUM
  5102. BFD_RELOC_390_GOTENT
  5103. ENUMDOC
  5104. 32 bit rel. offset to GOT entry.
  5105. ENUM
  5106. BFD_RELOC_390_GOTOFF64
  5107. ENUMDOC
  5108. 64 bit offset to GOT.
  5109. ENUM
  5110. BFD_RELOC_390_GOTPLT12
  5111. ENUMDOC
  5112. 12-bit offset to symbol-entry within GOT, with PLT handling.
  5113. ENUM
  5114. BFD_RELOC_390_GOTPLT16
  5115. ENUMDOC
  5116. 16-bit offset to symbol-entry within GOT, with PLT handling.
  5117. ENUM
  5118. BFD_RELOC_390_GOTPLT32
  5119. ENUMDOC
  5120. 32-bit offset to symbol-entry within GOT, with PLT handling.
  5121. ENUM
  5122. BFD_RELOC_390_GOTPLT64
  5123. ENUMDOC
  5124. 64-bit offset to symbol-entry within GOT, with PLT handling.
  5125. ENUM
  5126. BFD_RELOC_390_GOTPLTENT
  5127. ENUMDOC
  5128. 32-bit rel. offset to symbol-entry within GOT, with PLT handling.
  5129. ENUM
  5130. BFD_RELOC_390_PLTOFF16
  5131. ENUMDOC
  5132. 16-bit rel. offset from the GOT to a PLT entry.
  5133. ENUM
  5134. BFD_RELOC_390_PLTOFF32
  5135. ENUMDOC
  5136. 32-bit rel. offset from the GOT to a PLT entry.
  5137. ENUM
  5138. BFD_RELOC_390_PLTOFF64
  5139. ENUMDOC
  5140. 64-bit rel. offset from the GOT to a PLT entry.
  5141. ENUM
  5142. BFD_RELOC_390_TLS_LOAD
  5143. ENUMX
  5144. BFD_RELOC_390_TLS_GDCALL
  5145. ENUMX
  5146. BFD_RELOC_390_TLS_LDCALL
  5147. ENUMX
  5148. BFD_RELOC_390_TLS_GD32
  5149. ENUMX
  5150. BFD_RELOC_390_TLS_GD64
  5151. ENUMX
  5152. BFD_RELOC_390_TLS_GOTIE12
  5153. ENUMX
  5154. BFD_RELOC_390_TLS_GOTIE32
  5155. ENUMX
  5156. BFD_RELOC_390_TLS_GOTIE64
  5157. ENUMX
  5158. BFD_RELOC_390_TLS_LDM32
  5159. ENUMX
  5160. BFD_RELOC_390_TLS_LDM64
  5161. ENUMX
  5162. BFD_RELOC_390_TLS_IE32
  5163. ENUMX
  5164. BFD_RELOC_390_TLS_IE64
  5165. ENUMX
  5166. BFD_RELOC_390_TLS_IEENT
  5167. ENUMX
  5168. BFD_RELOC_390_TLS_LE32
  5169. ENUMX
  5170. BFD_RELOC_390_TLS_LE64
  5171. ENUMX
  5172. BFD_RELOC_390_TLS_LDO32
  5173. ENUMX
  5174. BFD_RELOC_390_TLS_LDO64
  5175. ENUMX
  5176. BFD_RELOC_390_TLS_DTPMOD
  5177. ENUMX
  5178. BFD_RELOC_390_TLS_DTPOFF
  5179. ENUMX
  5180. BFD_RELOC_390_TLS_TPOFF
  5181. ENUMDOC
  5182. s390 tls relocations.
  5183. ENUM
  5184. BFD_RELOC_390_20
  5185. ENUMX
  5186. BFD_RELOC_390_GOT20
  5187. ENUMX
  5188. BFD_RELOC_390_GOTPLT20
  5189. ENUMX
  5190. BFD_RELOC_390_TLS_GOTIE20
  5191. ENUMDOC
  5192. Long displacement extension.
  5193. ENUM
  5194. BFD_RELOC_390_IRELATIVE
  5195. ENUMDOC
  5196. STT_GNU_IFUNC relocation.
  5197. ENUM
  5198. BFD_RELOC_SCORE_GPREL15
  5199. ENUMDOC
  5200. Score relocations
  5201. Low 16 bit for load/store
  5202. ENUM
  5203. BFD_RELOC_SCORE_DUMMY2
  5204. ENUMX
  5205. BFD_RELOC_SCORE_JMP
  5206. ENUMDOC
  5207. This is a 24-bit reloc with the right 1 bit assumed to be 0
  5208. ENUM
  5209. BFD_RELOC_SCORE_BRANCH
  5210. ENUMDOC
  5211. This is a 19-bit reloc with the right 1 bit assumed to be 0
  5212. ENUM
  5213. BFD_RELOC_SCORE_IMM30
  5214. ENUMDOC
  5215. This is a 32-bit reloc for 48-bit instructions.
  5216. ENUM
  5217. BFD_RELOC_SCORE_IMM32
  5218. ENUMDOC
  5219. This is a 32-bit reloc for 48-bit instructions.
  5220. ENUM
  5221. BFD_RELOC_SCORE16_JMP
  5222. ENUMDOC
  5223. This is a 11-bit reloc with the right 1 bit assumed to be 0
  5224. ENUM
  5225. BFD_RELOC_SCORE16_BRANCH
  5226. ENUMDOC
  5227. This is a 8-bit reloc with the right 1 bit assumed to be 0
  5228. ENUM
  5229. BFD_RELOC_SCORE_BCMP
  5230. ENUMDOC
  5231. This is a 9-bit reloc with the right 1 bit assumed to be 0
  5232. ENUM
  5233. BFD_RELOC_SCORE_GOT15
  5234. ENUMX
  5235. BFD_RELOC_SCORE_GOT_LO16
  5236. ENUMX
  5237. BFD_RELOC_SCORE_CALL15
  5238. ENUMX
  5239. BFD_RELOC_SCORE_DUMMY_HI16
  5240. ENUMDOC
  5241. Undocumented Score relocs
  5242. ENUM
  5243. BFD_RELOC_IP2K_FR9
  5244. ENUMDOC
  5245. Scenix IP2K - 9-bit register number / data address
  5246. ENUM
  5247. BFD_RELOC_IP2K_BANK
  5248. ENUMDOC
  5249. Scenix IP2K - 4-bit register/data bank number
  5250. ENUM
  5251. BFD_RELOC_IP2K_ADDR16CJP
  5252. ENUMDOC
  5253. Scenix IP2K - low 13 bits of instruction word address
  5254. ENUM
  5255. BFD_RELOC_IP2K_PAGE3
  5256. ENUMDOC
  5257. Scenix IP2K - high 3 bits of instruction word address
  5258. ENUM
  5259. BFD_RELOC_IP2K_LO8DATA
  5260. ENUMX
  5261. BFD_RELOC_IP2K_HI8DATA
  5262. ENUMX
  5263. BFD_RELOC_IP2K_EX8DATA
  5264. ENUMDOC
  5265. Scenix IP2K - ext/low/high 8 bits of data address
  5266. ENUM
  5267. BFD_RELOC_IP2K_LO8INSN
  5268. ENUMX
  5269. BFD_RELOC_IP2K_HI8INSN
  5270. ENUMDOC
  5271. Scenix IP2K - low/high 8 bits of instruction word address
  5272. ENUM
  5273. BFD_RELOC_IP2K_PC_SKIP
  5274. ENUMDOC
  5275. Scenix IP2K - even/odd PC modifier to modify snb pcl.0
  5276. ENUM
  5277. BFD_RELOC_IP2K_TEXT
  5278. ENUMDOC
  5279. Scenix IP2K - 16 bit word address in text section.
  5280. ENUM
  5281. BFD_RELOC_IP2K_FR_OFFSET
  5282. ENUMDOC
  5283. Scenix IP2K - 7-bit sp or dp offset
  5284. ENUM
  5285. BFD_RELOC_VPE4KMATH_DATA
  5286. ENUMX
  5287. BFD_RELOC_VPE4KMATH_INSN
  5288. ENUMDOC
  5289. Scenix VPE4K coprocessor - data/insn-space addressing
  5290. ENUM
  5291. BFD_RELOC_VTABLE_INHERIT
  5292. ENUMX
  5293. BFD_RELOC_VTABLE_ENTRY
  5294. ENUMDOC
  5295. These two relocations are used by the linker to determine which of
  5296. the entries in a C++ virtual function table are actually used. When
  5297. the --gc-sections option is given, the linker will zero out the entries
  5298. that are not used, so that the code for those functions need not be
  5299. included in the output.
  5300. VTABLE_INHERIT is a zero-space relocation used to describe to the
  5301. linker the inheritance tree of a C++ virtual function table. The
  5302. relocation's symbol should be the parent class' vtable, and the
  5303. relocation should be located at the child vtable.
  5304. VTABLE_ENTRY is a zero-space relocation that describes the use of a
  5305. virtual function table entry. The reloc's symbol should refer to the
  5306. table of the class mentioned in the code. Off of that base, an offset
  5307. describes the entry that is being used. For Rela hosts, this offset
  5308. is stored in the reloc's addend. For Rel hosts, we are forced to put
  5309. this offset in the reloc's section offset.
  5310. ENUM
  5311. BFD_RELOC_IA64_IMM14
  5312. ENUMX
  5313. BFD_RELOC_IA64_IMM22
  5314. ENUMX
  5315. BFD_RELOC_IA64_IMM64
  5316. ENUMX
  5317. BFD_RELOC_IA64_DIR32MSB
  5318. ENUMX
  5319. BFD_RELOC_IA64_DIR32LSB
  5320. ENUMX
  5321. BFD_RELOC_IA64_DIR64MSB
  5322. ENUMX
  5323. BFD_RELOC_IA64_DIR64LSB
  5324. ENUMX
  5325. BFD_RELOC_IA64_GPREL22
  5326. ENUMX
  5327. BFD_RELOC_IA64_GPREL64I
  5328. ENUMX
  5329. BFD_RELOC_IA64_GPREL32MSB
  5330. ENUMX
  5331. BFD_RELOC_IA64_GPREL32LSB
  5332. ENUMX
  5333. BFD_RELOC_IA64_GPREL64MSB
  5334. ENUMX
  5335. BFD_RELOC_IA64_GPREL64LSB
  5336. ENUMX
  5337. BFD_RELOC_IA64_LTOFF22
  5338. ENUMX
  5339. BFD_RELOC_IA64_LTOFF64I
  5340. ENUMX
  5341. BFD_RELOC_IA64_PLTOFF22
  5342. ENUMX
  5343. BFD_RELOC_IA64_PLTOFF64I
  5344. ENUMX
  5345. BFD_RELOC_IA64_PLTOFF64MSB
  5346. ENUMX
  5347. BFD_RELOC_IA64_PLTOFF64LSB
  5348. ENUMX
  5349. BFD_RELOC_IA64_FPTR64I
  5350. ENUMX
  5351. BFD_RELOC_IA64_FPTR32MSB
  5352. ENUMX
  5353. BFD_RELOC_IA64_FPTR32LSB
  5354. ENUMX
  5355. BFD_RELOC_IA64_FPTR64MSB
  5356. ENUMX
  5357. BFD_RELOC_IA64_FPTR64LSB
  5358. ENUMX
  5359. BFD_RELOC_IA64_PCREL21B
  5360. ENUMX
  5361. BFD_RELOC_IA64_PCREL21BI
  5362. ENUMX
  5363. BFD_RELOC_IA64_PCREL21M
  5364. ENUMX
  5365. BFD_RELOC_IA64_PCREL21F
  5366. ENUMX
  5367. BFD_RELOC_IA64_PCREL22
  5368. ENUMX
  5369. BFD_RELOC_IA64_PCREL60B
  5370. ENUMX
  5371. BFD_RELOC_IA64_PCREL64I
  5372. ENUMX
  5373. BFD_RELOC_IA64_PCREL32MSB
  5374. ENUMX
  5375. BFD_RELOC_IA64_PCREL32LSB
  5376. ENUMX
  5377. BFD_RELOC_IA64_PCREL64MSB
  5378. ENUMX
  5379. BFD_RELOC_IA64_PCREL64LSB
  5380. ENUMX
  5381. BFD_RELOC_IA64_LTOFF_FPTR22
  5382. ENUMX
  5383. BFD_RELOC_IA64_LTOFF_FPTR64I
  5384. ENUMX
  5385. BFD_RELOC_IA64_LTOFF_FPTR32MSB
  5386. ENUMX
  5387. BFD_RELOC_IA64_LTOFF_FPTR32LSB
  5388. ENUMX
  5389. BFD_RELOC_IA64_LTOFF_FPTR64MSB
  5390. ENUMX
  5391. BFD_RELOC_IA64_LTOFF_FPTR64LSB
  5392. ENUMX
  5393. BFD_RELOC_IA64_SEGREL32MSB
  5394. ENUMX
  5395. BFD_RELOC_IA64_SEGREL32LSB
  5396. ENUMX
  5397. BFD_RELOC_IA64_SEGREL64MSB
  5398. ENUMX
  5399. BFD_RELOC_IA64_SEGREL64LSB
  5400. ENUMX
  5401. BFD_RELOC_IA64_SECREL32MSB
  5402. ENUMX
  5403. BFD_RELOC_IA64_SECREL32LSB
  5404. ENUMX
  5405. BFD_RELOC_IA64_SECREL64MSB
  5406. ENUMX
  5407. BFD_RELOC_IA64_SECREL64LSB
  5408. ENUMX
  5409. BFD_RELOC_IA64_REL32MSB
  5410. ENUMX
  5411. BFD_RELOC_IA64_REL32LSB
  5412. ENUMX
  5413. BFD_RELOC_IA64_REL64MSB
  5414. ENUMX
  5415. BFD_RELOC_IA64_REL64LSB
  5416. ENUMX
  5417. BFD_RELOC_IA64_LTV32MSB
  5418. ENUMX
  5419. BFD_RELOC_IA64_LTV32LSB
  5420. ENUMX
  5421. BFD_RELOC_IA64_LTV64MSB
  5422. ENUMX
  5423. BFD_RELOC_IA64_LTV64LSB
  5424. ENUMX
  5425. BFD_RELOC_IA64_IPLTMSB
  5426. ENUMX
  5427. BFD_RELOC_IA64_IPLTLSB
  5428. ENUMX
  5429. BFD_RELOC_IA64_COPY
  5430. ENUMX
  5431. BFD_RELOC_IA64_LTOFF22X
  5432. ENUMX
  5433. BFD_RELOC_IA64_LDXMOV
  5434. ENUMX
  5435. BFD_RELOC_IA64_TPREL14
  5436. ENUMX
  5437. BFD_RELOC_IA64_TPREL22
  5438. ENUMX
  5439. BFD_RELOC_IA64_TPREL64I
  5440. ENUMX
  5441. BFD_RELOC_IA64_TPREL64MSB
  5442. ENUMX
  5443. BFD_RELOC_IA64_TPREL64LSB
  5444. ENUMX
  5445. BFD_RELOC_IA64_LTOFF_TPREL22
  5446. ENUMX
  5447. BFD_RELOC_IA64_DTPMOD64MSB
  5448. ENUMX
  5449. BFD_RELOC_IA64_DTPMOD64LSB
  5450. ENUMX
  5451. BFD_RELOC_IA64_LTOFF_DTPMOD22
  5452. ENUMX
  5453. BFD_RELOC_IA64_DTPREL14
  5454. ENUMX
  5455. BFD_RELOC_IA64_DTPREL22
  5456. ENUMX
  5457. BFD_RELOC_IA64_DTPREL64I
  5458. ENUMX
  5459. BFD_RELOC_IA64_DTPREL32MSB
  5460. ENUMX
  5461. BFD_RELOC_IA64_DTPREL32LSB
  5462. ENUMX
  5463. BFD_RELOC_IA64_DTPREL64MSB
  5464. ENUMX
  5465. BFD_RELOC_IA64_DTPREL64LSB
  5466. ENUMX
  5467. BFD_RELOC_IA64_LTOFF_DTPREL22
  5468. ENUMDOC
  5469. Intel IA64 Relocations.
  5470. ENUM
  5471. BFD_RELOC_M68HC11_HI8
  5472. ENUMDOC
  5473. Motorola 68HC11 reloc.
  5474. This is the 8 bit high part of an absolute address.
  5475. ENUM
  5476. BFD_RELOC_M68HC11_LO8
  5477. ENUMDOC
  5478. Motorola 68HC11 reloc.
  5479. This is the 8 bit low part of an absolute address.
  5480. ENUM
  5481. BFD_RELOC_M68HC11_3B
  5482. ENUMDOC
  5483. Motorola 68HC11 reloc.
  5484. This is the 3 bit of a value.
  5485. ENUM
  5486. BFD_RELOC_M68HC11_RL_JUMP
  5487. ENUMDOC
  5488. Motorola 68HC11 reloc.
  5489. This reloc marks the beginning of a jump/call instruction.
  5490. It is used for linker relaxation to correctly identify beginning
  5491. of instruction and change some branches to use PC-relative
  5492. addressing mode.
  5493. ENUM
  5494. BFD_RELOC_M68HC11_RL_GROUP
  5495. ENUMDOC
  5496. Motorola 68HC11 reloc.
  5497. This reloc marks a group of several instructions that gcc generates
  5498. and for which the linker relaxation pass can modify and/or remove
  5499. some of them.
  5500. ENUM
  5501. BFD_RELOC_M68HC11_LO16
  5502. ENUMDOC
  5503. Motorola 68HC11 reloc.
  5504. This is the 16-bit lower part of an address. It is used for 'call'
  5505. instruction to specify the symbol address without any special
  5506. transformation (due to memory bank window).
  5507. ENUM
  5508. BFD_RELOC_M68HC11_PAGE
  5509. ENUMDOC
  5510. Motorola 68HC11 reloc.
  5511. This is a 8-bit reloc that specifies the page number of an address.
  5512. It is used by 'call' instruction to specify the page number of
  5513. the symbol.
  5514. ENUM
  5515. BFD_RELOC_M68HC11_24
  5516. ENUMDOC
  5517. Motorola 68HC11 reloc.
  5518. This is a 24-bit reloc that represents the address with a 16-bit
  5519. value and a 8-bit page number. The symbol address is transformed
  5520. to follow the 16K memory bank of 68HC12 (seen as mapped in the window).
  5521. ENUM
  5522. BFD_RELOC_M68HC12_5B
  5523. ENUMDOC
  5524. Motorola 68HC12 reloc.
  5525. This is the 5 bits of a value.
  5526. ENUM
  5527. BFD_RELOC_XGATE_RL_JUMP
  5528. ENUMDOC
  5529. Freescale XGATE reloc.
  5530. This reloc marks the beginning of a bra/jal instruction.
  5531. ENUM
  5532. BFD_RELOC_XGATE_RL_GROUP
  5533. ENUMDOC
  5534. Freescale XGATE reloc.
  5535. This reloc marks a group of several instructions that gcc generates
  5536. and for which the linker relaxation pass can modify and/or remove
  5537. some of them.
  5538. ENUM
  5539. BFD_RELOC_XGATE_LO16
  5540. ENUMDOC
  5541. Freescale XGATE reloc.
  5542. This is the 16-bit lower part of an address. It is used for the '16-bit'
  5543. instructions.
  5544. ENUM
  5545. BFD_RELOC_XGATE_GPAGE
  5546. ENUMDOC
  5547. Freescale XGATE reloc.
  5548. ENUM
  5549. BFD_RELOC_XGATE_24
  5550. ENUMDOC
  5551. Freescale XGATE reloc.
  5552. ENUM
  5553. BFD_RELOC_XGATE_PCREL_9
  5554. ENUMDOC
  5555. Freescale XGATE reloc.
  5556. This is a 9-bit pc-relative reloc.
  5557. ENUM
  5558. BFD_RELOC_XGATE_PCREL_10
  5559. ENUMDOC
  5560. Freescale XGATE reloc.
  5561. This is a 10-bit pc-relative reloc.
  5562. ENUM
  5563. BFD_RELOC_XGATE_IMM8_LO
  5564. ENUMDOC
  5565. Freescale XGATE reloc.
  5566. This is the 16-bit lower part of an address. It is used for the '16-bit'
  5567. instructions.
  5568. ENUM
  5569. BFD_RELOC_XGATE_IMM8_HI
  5570. ENUMDOC
  5571. Freescale XGATE reloc.
  5572. This is the 16-bit higher part of an address. It is used for the '16-bit'
  5573. instructions.
  5574. ENUM
  5575. BFD_RELOC_XGATE_IMM3
  5576. ENUMDOC
  5577. Freescale XGATE reloc.
  5578. This is a 3-bit pc-relative reloc.
  5579. ENUM
  5580. BFD_RELOC_XGATE_IMM4
  5581. ENUMDOC
  5582. Freescale XGATE reloc.
  5583. This is a 4-bit pc-relative reloc.
  5584. ENUM
  5585. BFD_RELOC_XGATE_IMM5
  5586. ENUMDOC
  5587. Freescale XGATE reloc.
  5588. This is a 5-bit pc-relative reloc.
  5589. ENUM
  5590. BFD_RELOC_M68HC12_9B
  5591. ENUMDOC
  5592. Motorola 68HC12 reloc.
  5593. This is the 9 bits of a value.
  5594. ENUM
  5595. BFD_RELOC_M68HC12_16B
  5596. ENUMDOC
  5597. Motorola 68HC12 reloc.
  5598. This is the 16 bits of a value.
  5599. ENUM
  5600. BFD_RELOC_M68HC12_9_PCREL
  5601. ENUMDOC
  5602. Motorola 68HC12/XGATE reloc.
  5603. This is a PCREL9 branch.
  5604. ENUM
  5605. BFD_RELOC_M68HC12_10_PCREL
  5606. ENUMDOC
  5607. Motorola 68HC12/XGATE reloc.
  5608. This is a PCREL10 branch.
  5609. ENUM
  5610. BFD_RELOC_M68HC12_LO8XG
  5611. ENUMDOC
  5612. Motorola 68HC12/XGATE reloc.
  5613. This is the 8 bit low part of an absolute address and immediately precedes
  5614. a matching HI8XG part.
  5615. ENUM
  5616. BFD_RELOC_M68HC12_HI8XG
  5617. ENUMDOC
  5618. Motorola 68HC12/XGATE reloc.
  5619. This is the 8 bit high part of an absolute address and immediately follows
  5620. a matching LO8XG part.
  5621. ENUM
  5622. BFD_RELOC_S12Z_15_PCREL
  5623. ENUMDOC
  5624. Freescale S12Z reloc.
  5625. This is a 15 bit relative address. If the most significant bits are all zero
  5626. then it may be truncated to 8 bits.
  5627. ENUM
  5628. BFD_RELOC_CR16_NUM8
  5629. ENUMX
  5630. BFD_RELOC_CR16_NUM16
  5631. ENUMX
  5632. BFD_RELOC_CR16_NUM32
  5633. ENUMX
  5634. BFD_RELOC_CR16_NUM32a
  5635. ENUMX
  5636. BFD_RELOC_CR16_REGREL0
  5637. ENUMX
  5638. BFD_RELOC_CR16_REGREL4
  5639. ENUMX
  5640. BFD_RELOC_CR16_REGREL4a
  5641. ENUMX
  5642. BFD_RELOC_CR16_REGREL14
  5643. ENUMX
  5644. BFD_RELOC_CR16_REGREL14a
  5645. ENUMX
  5646. BFD_RELOC_CR16_REGREL16
  5647. ENUMX
  5648. BFD_RELOC_CR16_REGREL20
  5649. ENUMX
  5650. BFD_RELOC_CR16_REGREL20a
  5651. ENUMX
  5652. BFD_RELOC_CR16_ABS20
  5653. ENUMX
  5654. BFD_RELOC_CR16_ABS24
  5655. ENUMX
  5656. BFD_RELOC_CR16_IMM4
  5657. ENUMX
  5658. BFD_RELOC_CR16_IMM8
  5659. ENUMX
  5660. BFD_RELOC_CR16_IMM16
  5661. ENUMX
  5662. BFD_RELOC_CR16_IMM20
  5663. ENUMX
  5664. BFD_RELOC_CR16_IMM24
  5665. ENUMX
  5666. BFD_RELOC_CR16_IMM32
  5667. ENUMX
  5668. BFD_RELOC_CR16_IMM32a
  5669. ENUMX
  5670. BFD_RELOC_CR16_DISP4
  5671. ENUMX
  5672. BFD_RELOC_CR16_DISP8
  5673. ENUMX
  5674. BFD_RELOC_CR16_DISP16
  5675. ENUMX
  5676. BFD_RELOC_CR16_DISP20
  5677. ENUMX
  5678. BFD_RELOC_CR16_DISP24
  5679. ENUMX
  5680. BFD_RELOC_CR16_DISP24a
  5681. ENUMX
  5682. BFD_RELOC_CR16_SWITCH8
  5683. ENUMX
  5684. BFD_RELOC_CR16_SWITCH16
  5685. ENUMX
  5686. BFD_RELOC_CR16_SWITCH32
  5687. ENUMX
  5688. BFD_RELOC_CR16_GOT_REGREL20
  5689. ENUMX
  5690. BFD_RELOC_CR16_GOTC_REGREL20
  5691. ENUMX
  5692. BFD_RELOC_CR16_GLOB_DAT
  5693. ENUMDOC
  5694. NS CR16 Relocations.
  5695. ENUM
  5696. BFD_RELOC_CRX_REL4
  5697. ENUMX
  5698. BFD_RELOC_CRX_REL8
  5699. ENUMX
  5700. BFD_RELOC_CRX_REL8_CMP
  5701. ENUMX
  5702. BFD_RELOC_CRX_REL16
  5703. ENUMX
  5704. BFD_RELOC_CRX_REL24
  5705. ENUMX
  5706. BFD_RELOC_CRX_REL32
  5707. ENUMX
  5708. BFD_RELOC_CRX_REGREL12
  5709. ENUMX
  5710. BFD_RELOC_CRX_REGREL22
  5711. ENUMX
  5712. BFD_RELOC_CRX_REGREL28
  5713. ENUMX
  5714. BFD_RELOC_CRX_REGREL32
  5715. ENUMX
  5716. BFD_RELOC_CRX_ABS16
  5717. ENUMX
  5718. BFD_RELOC_CRX_ABS32
  5719. ENUMX
  5720. BFD_RELOC_CRX_NUM8
  5721. ENUMX
  5722. BFD_RELOC_CRX_NUM16
  5723. ENUMX
  5724. BFD_RELOC_CRX_NUM32
  5725. ENUMX
  5726. BFD_RELOC_CRX_IMM16
  5727. ENUMX
  5728. BFD_RELOC_CRX_IMM32
  5729. ENUMX
  5730. BFD_RELOC_CRX_SWITCH8
  5731. ENUMX
  5732. BFD_RELOC_CRX_SWITCH16
  5733. ENUMX
  5734. BFD_RELOC_CRX_SWITCH32
  5735. ENUMDOC
  5736. NS CRX Relocations.
  5737. ENUM
  5738. BFD_RELOC_CRIS_BDISP8
  5739. ENUMX
  5740. BFD_RELOC_CRIS_UNSIGNED_5
  5741. ENUMX
  5742. BFD_RELOC_CRIS_SIGNED_6
  5743. ENUMX
  5744. BFD_RELOC_CRIS_UNSIGNED_6
  5745. ENUMX
  5746. BFD_RELOC_CRIS_SIGNED_8
  5747. ENUMX
  5748. BFD_RELOC_CRIS_UNSIGNED_8
  5749. ENUMX
  5750. BFD_RELOC_CRIS_SIGNED_16
  5751. ENUMX
  5752. BFD_RELOC_CRIS_UNSIGNED_16
  5753. ENUMX
  5754. BFD_RELOC_CRIS_LAPCQ_OFFSET
  5755. ENUMX
  5756. BFD_RELOC_CRIS_UNSIGNED_4
  5757. ENUMDOC
  5758. These relocs are only used within the CRIS assembler. They are not
  5759. (at present) written to any object files.
  5760. ENUM
  5761. BFD_RELOC_CRIS_COPY
  5762. ENUMX
  5763. BFD_RELOC_CRIS_GLOB_DAT
  5764. ENUMX
  5765. BFD_RELOC_CRIS_JUMP_SLOT
  5766. ENUMX
  5767. BFD_RELOC_CRIS_RELATIVE
  5768. ENUMDOC
  5769. Relocs used in ELF shared libraries for CRIS.
  5770. ENUM
  5771. BFD_RELOC_CRIS_32_GOT
  5772. ENUMDOC
  5773. 32-bit offset to symbol-entry within GOT.
  5774. ENUM
  5775. BFD_RELOC_CRIS_16_GOT
  5776. ENUMDOC
  5777. 16-bit offset to symbol-entry within GOT.
  5778. ENUM
  5779. BFD_RELOC_CRIS_32_GOTPLT
  5780. ENUMDOC
  5781. 32-bit offset to symbol-entry within GOT, with PLT handling.
  5782. ENUM
  5783. BFD_RELOC_CRIS_16_GOTPLT
  5784. ENUMDOC
  5785. 16-bit offset to symbol-entry within GOT, with PLT handling.
  5786. ENUM
  5787. BFD_RELOC_CRIS_32_GOTREL
  5788. ENUMDOC
  5789. 32-bit offset to symbol, relative to GOT.
  5790. ENUM
  5791. BFD_RELOC_CRIS_32_PLT_GOTREL
  5792. ENUMDOC
  5793. 32-bit offset to symbol with PLT entry, relative to GOT.
  5794. ENUM
  5795. BFD_RELOC_CRIS_32_PLT_PCREL
  5796. ENUMDOC
  5797. 32-bit offset to symbol with PLT entry, relative to this relocation.
  5798. ENUM
  5799. BFD_RELOC_CRIS_32_GOT_GD
  5800. ENUMX
  5801. BFD_RELOC_CRIS_16_GOT_GD
  5802. ENUMX
  5803. BFD_RELOC_CRIS_32_GD
  5804. ENUMX
  5805. BFD_RELOC_CRIS_DTP
  5806. ENUMX
  5807. BFD_RELOC_CRIS_32_DTPREL
  5808. ENUMX
  5809. BFD_RELOC_CRIS_16_DTPREL
  5810. ENUMX
  5811. BFD_RELOC_CRIS_32_GOT_TPREL
  5812. ENUMX
  5813. BFD_RELOC_CRIS_16_GOT_TPREL
  5814. ENUMX
  5815. BFD_RELOC_CRIS_32_TPREL
  5816. ENUMX
  5817. BFD_RELOC_CRIS_16_TPREL
  5818. ENUMX
  5819. BFD_RELOC_CRIS_DTPMOD
  5820. ENUMX
  5821. BFD_RELOC_CRIS_32_IE
  5822. ENUMDOC
  5823. Relocs used in TLS code for CRIS.
  5824. ENUM
  5825. BFD_RELOC_OR1K_REL_26
  5826. ENUMX
  5827. BFD_RELOC_OR1K_SLO16
  5828. ENUMX
  5829. BFD_RELOC_OR1K_PCREL_PG21
  5830. ENUMX
  5831. BFD_RELOC_OR1K_LO13
  5832. ENUMX
  5833. BFD_RELOC_OR1K_SLO13
  5834. ENUMX
  5835. BFD_RELOC_OR1K_GOTPC_HI16
  5836. ENUMX
  5837. BFD_RELOC_OR1K_GOTPC_LO16
  5838. ENUMX
  5839. BFD_RELOC_OR1K_GOT_AHI16
  5840. ENUMX
  5841. BFD_RELOC_OR1K_GOT16
  5842. ENUMX
  5843. BFD_RELOC_OR1K_GOT_PG21
  5844. ENUMX
  5845. BFD_RELOC_OR1K_GOT_LO13
  5846. ENUMX
  5847. BFD_RELOC_OR1K_PLT26
  5848. ENUMX
  5849. BFD_RELOC_OR1K_PLTA26
  5850. ENUMX
  5851. BFD_RELOC_OR1K_GOTOFF_SLO16
  5852. ENUMX
  5853. BFD_RELOC_OR1K_COPY
  5854. ENUMX
  5855. BFD_RELOC_OR1K_GLOB_DAT
  5856. ENUMX
  5857. BFD_RELOC_OR1K_JMP_SLOT
  5858. ENUMX
  5859. BFD_RELOC_OR1K_RELATIVE
  5860. ENUMX
  5861. BFD_RELOC_OR1K_TLS_GD_HI16
  5862. ENUMX
  5863. BFD_RELOC_OR1K_TLS_GD_LO16
  5864. ENUMX
  5865. BFD_RELOC_OR1K_TLS_GD_PG21
  5866. ENUMX
  5867. BFD_RELOC_OR1K_TLS_GD_LO13
  5868. ENUMX
  5869. BFD_RELOC_OR1K_TLS_LDM_HI16
  5870. ENUMX
  5871. BFD_RELOC_OR1K_TLS_LDM_LO16
  5872. ENUMX
  5873. BFD_RELOC_OR1K_TLS_LDM_PG21
  5874. ENUMX
  5875. BFD_RELOC_OR1K_TLS_LDM_LO13
  5876. ENUMX
  5877. BFD_RELOC_OR1K_TLS_LDO_HI16
  5878. ENUMX
  5879. BFD_RELOC_OR1K_TLS_LDO_LO16
  5880. ENUMX
  5881. BFD_RELOC_OR1K_TLS_IE_HI16
  5882. ENUMX
  5883. BFD_RELOC_OR1K_TLS_IE_AHI16
  5884. ENUMX
  5885. BFD_RELOC_OR1K_TLS_IE_LO16
  5886. ENUMX
  5887. BFD_RELOC_OR1K_TLS_IE_PG21
  5888. ENUMX
  5889. BFD_RELOC_OR1K_TLS_IE_LO13
  5890. ENUMX
  5891. BFD_RELOC_OR1K_TLS_LE_HI16
  5892. ENUMX
  5893. BFD_RELOC_OR1K_TLS_LE_AHI16
  5894. ENUMX
  5895. BFD_RELOC_OR1K_TLS_LE_LO16
  5896. ENUMX
  5897. BFD_RELOC_OR1K_TLS_LE_SLO16
  5898. ENUMX
  5899. BFD_RELOC_OR1K_TLS_TPOFF
  5900. ENUMX
  5901. BFD_RELOC_OR1K_TLS_DTPOFF
  5902. ENUMX
  5903. BFD_RELOC_OR1K_TLS_DTPMOD
  5904. ENUMDOC
  5905. OpenRISC 1000 Relocations.
  5906. ENUM
  5907. BFD_RELOC_H8_DIR16A8
  5908. ENUMX
  5909. BFD_RELOC_H8_DIR16R8
  5910. ENUMX
  5911. BFD_RELOC_H8_DIR24A8
  5912. ENUMX
  5913. BFD_RELOC_H8_DIR24R8
  5914. ENUMX
  5915. BFD_RELOC_H8_DIR32A16
  5916. ENUMX
  5917. BFD_RELOC_H8_DISP32A16
  5918. ENUMDOC
  5919. H8 elf Relocations.
  5920. ENUM
  5921. BFD_RELOC_XSTORMY16_REL_12
  5922. ENUMX
  5923. BFD_RELOC_XSTORMY16_12
  5924. ENUMX
  5925. BFD_RELOC_XSTORMY16_24
  5926. ENUMX
  5927. BFD_RELOC_XSTORMY16_FPTR16
  5928. ENUMDOC
  5929. Sony Xstormy16 Relocations.
  5930. ENUM
  5931. BFD_RELOC_RELC
  5932. ENUMDOC
  5933. Self-describing complex relocations.
  5934. COMMENT
  5935. ENUM
  5936. BFD_RELOC_XC16X_PAG
  5937. ENUMX
  5938. BFD_RELOC_XC16X_POF
  5939. ENUMX
  5940. BFD_RELOC_XC16X_SEG
  5941. ENUMX
  5942. BFD_RELOC_XC16X_SOF
  5943. ENUMDOC
  5944. Infineon Relocations.
  5945. ENUM
  5946. BFD_RELOC_VAX_GLOB_DAT
  5947. ENUMX
  5948. BFD_RELOC_VAX_JMP_SLOT
  5949. ENUMX
  5950. BFD_RELOC_VAX_RELATIVE
  5951. ENUMDOC
  5952. Relocations used by VAX ELF.
  5953. ENUM
  5954. BFD_RELOC_MT_PC16
  5955. ENUMDOC
  5956. Morpho MT - 16 bit immediate relocation.
  5957. ENUM
  5958. BFD_RELOC_MT_HI16
  5959. ENUMDOC
  5960. Morpho MT - Hi 16 bits of an address.
  5961. ENUM
  5962. BFD_RELOC_MT_LO16
  5963. ENUMDOC
  5964. Morpho MT - Low 16 bits of an address.
  5965. ENUM
  5966. BFD_RELOC_MT_GNU_VTINHERIT
  5967. ENUMDOC
  5968. Morpho MT - Used to tell the linker which vtable entries are used.
  5969. ENUM
  5970. BFD_RELOC_MT_GNU_VTENTRY
  5971. ENUMDOC
  5972. Morpho MT - Used to tell the linker which vtable entries are used.
  5973. ENUM
  5974. BFD_RELOC_MT_PCINSN8
  5975. ENUMDOC
  5976. Morpho MT - 8 bit immediate relocation.
  5977. ENUM
  5978. BFD_RELOC_MSP430_10_PCREL
  5979. ENUMX
  5980. BFD_RELOC_MSP430_16_PCREL
  5981. ENUMX
  5982. BFD_RELOC_MSP430_16
  5983. ENUMX
  5984. BFD_RELOC_MSP430_16_PCREL_BYTE
  5985. ENUMX
  5986. BFD_RELOC_MSP430_16_BYTE
  5987. ENUMX
  5988. BFD_RELOC_MSP430_2X_PCREL
  5989. ENUMX
  5990. BFD_RELOC_MSP430_RL_PCREL
  5991. ENUMX
  5992. BFD_RELOC_MSP430_ABS8
  5993. ENUMX
  5994. BFD_RELOC_MSP430X_PCR20_EXT_SRC
  5995. ENUMX
  5996. BFD_RELOC_MSP430X_PCR20_EXT_DST
  5997. ENUMX
  5998. BFD_RELOC_MSP430X_PCR20_EXT_ODST
  5999. ENUMX
  6000. BFD_RELOC_MSP430X_ABS20_EXT_SRC
  6001. ENUMX
  6002. BFD_RELOC_MSP430X_ABS20_EXT_DST
  6003. ENUMX
  6004. BFD_RELOC_MSP430X_ABS20_EXT_ODST
  6005. ENUMX
  6006. BFD_RELOC_MSP430X_ABS20_ADR_SRC
  6007. ENUMX
  6008. BFD_RELOC_MSP430X_ABS20_ADR_DST
  6009. ENUMX
  6010. BFD_RELOC_MSP430X_PCR16
  6011. ENUMX
  6012. BFD_RELOC_MSP430X_PCR20_CALL
  6013. ENUMX
  6014. BFD_RELOC_MSP430X_ABS16
  6015. ENUMX
  6016. BFD_RELOC_MSP430_ABS_HI16
  6017. ENUMX
  6018. BFD_RELOC_MSP430_PREL31
  6019. ENUMX
  6020. BFD_RELOC_MSP430_SYM_DIFF
  6021. ENUMX
  6022. BFD_RELOC_MSP430_SET_ULEB128
  6023. ENUMX
  6024. BFD_RELOC_MSP430_SUB_ULEB128
  6025. ENUMDOC
  6026. msp430 specific relocation codes
  6027. ENUM
  6028. BFD_RELOC_NIOS2_S16
  6029. ENUMX
  6030. BFD_RELOC_NIOS2_U16
  6031. ENUMX
  6032. BFD_RELOC_NIOS2_CALL26
  6033. ENUMX
  6034. BFD_RELOC_NIOS2_IMM5
  6035. ENUMX
  6036. BFD_RELOC_NIOS2_CACHE_OPX
  6037. ENUMX
  6038. BFD_RELOC_NIOS2_IMM6
  6039. ENUMX
  6040. BFD_RELOC_NIOS2_IMM8
  6041. ENUMX
  6042. BFD_RELOC_NIOS2_HI16
  6043. ENUMX
  6044. BFD_RELOC_NIOS2_LO16
  6045. ENUMX
  6046. BFD_RELOC_NIOS2_HIADJ16
  6047. ENUMX
  6048. BFD_RELOC_NIOS2_GPREL
  6049. ENUMX
  6050. BFD_RELOC_NIOS2_UJMP
  6051. ENUMX
  6052. BFD_RELOC_NIOS2_CJMP
  6053. ENUMX
  6054. BFD_RELOC_NIOS2_CALLR
  6055. ENUMX
  6056. BFD_RELOC_NIOS2_ALIGN
  6057. ENUMX
  6058. BFD_RELOC_NIOS2_GOT16
  6059. ENUMX
  6060. BFD_RELOC_NIOS2_CALL16
  6061. ENUMX
  6062. BFD_RELOC_NIOS2_GOTOFF_LO
  6063. ENUMX
  6064. BFD_RELOC_NIOS2_GOTOFF_HA
  6065. ENUMX
  6066. BFD_RELOC_NIOS2_PCREL_LO
  6067. ENUMX
  6068. BFD_RELOC_NIOS2_PCREL_HA
  6069. ENUMX
  6070. BFD_RELOC_NIOS2_TLS_GD16
  6071. ENUMX
  6072. BFD_RELOC_NIOS2_TLS_LDM16
  6073. ENUMX
  6074. BFD_RELOC_NIOS2_TLS_LDO16
  6075. ENUMX
  6076. BFD_RELOC_NIOS2_TLS_IE16
  6077. ENUMX
  6078. BFD_RELOC_NIOS2_TLS_LE16
  6079. ENUMX
  6080. BFD_RELOC_NIOS2_TLS_DTPMOD
  6081. ENUMX
  6082. BFD_RELOC_NIOS2_TLS_DTPREL
  6083. ENUMX
  6084. BFD_RELOC_NIOS2_TLS_TPREL
  6085. ENUMX
  6086. BFD_RELOC_NIOS2_COPY
  6087. ENUMX
  6088. BFD_RELOC_NIOS2_GLOB_DAT
  6089. ENUMX
  6090. BFD_RELOC_NIOS2_JUMP_SLOT
  6091. ENUMX
  6092. BFD_RELOC_NIOS2_RELATIVE
  6093. ENUMX
  6094. BFD_RELOC_NIOS2_GOTOFF
  6095. ENUMX
  6096. BFD_RELOC_NIOS2_CALL26_NOAT
  6097. ENUMX
  6098. BFD_RELOC_NIOS2_GOT_LO
  6099. ENUMX
  6100. BFD_RELOC_NIOS2_GOT_HA
  6101. ENUMX
  6102. BFD_RELOC_NIOS2_CALL_LO
  6103. ENUMX
  6104. BFD_RELOC_NIOS2_CALL_HA
  6105. ENUMX
  6106. BFD_RELOC_NIOS2_R2_S12
  6107. ENUMX
  6108. BFD_RELOC_NIOS2_R2_I10_1_PCREL
  6109. ENUMX
  6110. BFD_RELOC_NIOS2_R2_T1I7_1_PCREL
  6111. ENUMX
  6112. BFD_RELOC_NIOS2_R2_T1I7_2
  6113. ENUMX
  6114. BFD_RELOC_NIOS2_R2_T2I4
  6115. ENUMX
  6116. BFD_RELOC_NIOS2_R2_T2I4_1
  6117. ENUMX
  6118. BFD_RELOC_NIOS2_R2_T2I4_2
  6119. ENUMX
  6120. BFD_RELOC_NIOS2_R2_X1I7_2
  6121. ENUMX
  6122. BFD_RELOC_NIOS2_R2_X2L5
  6123. ENUMX
  6124. BFD_RELOC_NIOS2_R2_F1I5_2
  6125. ENUMX
  6126. BFD_RELOC_NIOS2_R2_L5I4X1
  6127. ENUMX
  6128. BFD_RELOC_NIOS2_R2_T1X1I6
  6129. ENUMX
  6130. BFD_RELOC_NIOS2_R2_T1X1I6_2
  6131. ENUMDOC
  6132. Relocations used by the Altera Nios II core.
  6133. ENUM
  6134. BFD_RELOC_PRU_U16
  6135. ENUMDOC
  6136. PRU LDI 16-bit unsigned data-memory relocation.
  6137. ENUM
  6138. BFD_RELOC_PRU_U16_PMEMIMM
  6139. ENUMDOC
  6140. PRU LDI 16-bit unsigned instruction-memory relocation.
  6141. ENUM
  6142. BFD_RELOC_PRU_LDI32
  6143. ENUMDOC
  6144. PRU relocation for two consecutive LDI load instructions that load a
  6145. 32 bit value into a register. If the higher bits are all zero, then
  6146. the second instruction may be relaxed.
  6147. ENUM
  6148. BFD_RELOC_PRU_S10_PCREL
  6149. ENUMDOC
  6150. PRU QBBx 10-bit signed PC-relative relocation.
  6151. ENUM
  6152. BFD_RELOC_PRU_U8_PCREL
  6153. ENUMDOC
  6154. PRU 8-bit unsigned relocation used for the LOOP instruction.
  6155. ENUM
  6156. BFD_RELOC_PRU_32_PMEM
  6157. ENUMX
  6158. BFD_RELOC_PRU_16_PMEM
  6159. ENUMDOC
  6160. PRU Program Memory relocations. Used to convert from byte addressing to
  6161. 32-bit word addressing.
  6162. ENUM
  6163. BFD_RELOC_PRU_GNU_DIFF8
  6164. ENUMX
  6165. BFD_RELOC_PRU_GNU_DIFF16
  6166. ENUMX
  6167. BFD_RELOC_PRU_GNU_DIFF32
  6168. ENUMX
  6169. BFD_RELOC_PRU_GNU_DIFF16_PMEM
  6170. ENUMX
  6171. BFD_RELOC_PRU_GNU_DIFF32_PMEM
  6172. ENUMDOC
  6173. PRU relocations to mark the difference of two local symbols.
  6174. These are only needed to support linker relaxation and can be ignored
  6175. when not relaxing. The field is set to the value of the difference
  6176. assuming no relaxation. The relocation encodes the position of the
  6177. second symbol so the linker can determine whether to adjust the field
  6178. value. The PMEM variants encode the word difference, instead of byte
  6179. difference between symbols.
  6180. ENUM
  6181. BFD_RELOC_IQ2000_OFFSET_16
  6182. ENUMX
  6183. BFD_RELOC_IQ2000_OFFSET_21
  6184. ENUMX
  6185. BFD_RELOC_IQ2000_UHI16
  6186. ENUMDOC
  6187. IQ2000 Relocations.
  6188. ENUM
  6189. BFD_RELOC_XTENSA_RTLD
  6190. ENUMDOC
  6191. Special Xtensa relocation used only by PLT entries in ELF shared
  6192. objects to indicate that the runtime linker should set the value
  6193. to one of its own internal functions or data structures.
  6194. ENUM
  6195. BFD_RELOC_XTENSA_GLOB_DAT
  6196. ENUMX
  6197. BFD_RELOC_XTENSA_JMP_SLOT
  6198. ENUMX
  6199. BFD_RELOC_XTENSA_RELATIVE
  6200. ENUMDOC
  6201. Xtensa relocations for ELF shared objects.
  6202. ENUM
  6203. BFD_RELOC_XTENSA_PLT
  6204. ENUMDOC
  6205. Xtensa relocation used in ELF object files for symbols that may require
  6206. PLT entries. Otherwise, this is just a generic 32-bit relocation.
  6207. ENUM
  6208. BFD_RELOC_XTENSA_DIFF8
  6209. ENUMX
  6210. BFD_RELOC_XTENSA_DIFF16
  6211. ENUMX
  6212. BFD_RELOC_XTENSA_DIFF32
  6213. ENUMDOC
  6214. Xtensa relocations for backward compatibility. These have been replaced
  6215. by BFD_RELOC_XTENSA_PDIFF and BFD_RELOC_XTENSA_NDIFF.
  6216. Xtensa relocations to mark the difference of two local symbols.
  6217. These are only needed to support linker relaxation and can be ignored
  6218. when not relaxing. The field is set to the value of the difference
  6219. assuming no relaxation. The relocation encodes the position of the
  6220. first symbol so the linker can determine whether to adjust the field
  6221. value.
  6222. ENUM
  6223. BFD_RELOC_XTENSA_SLOT0_OP
  6224. ENUMX
  6225. BFD_RELOC_XTENSA_SLOT1_OP
  6226. ENUMX
  6227. BFD_RELOC_XTENSA_SLOT2_OP
  6228. ENUMX
  6229. BFD_RELOC_XTENSA_SLOT3_OP
  6230. ENUMX
  6231. BFD_RELOC_XTENSA_SLOT4_OP
  6232. ENUMX
  6233. BFD_RELOC_XTENSA_SLOT5_OP
  6234. ENUMX
  6235. BFD_RELOC_XTENSA_SLOT6_OP
  6236. ENUMX
  6237. BFD_RELOC_XTENSA_SLOT7_OP
  6238. ENUMX
  6239. BFD_RELOC_XTENSA_SLOT8_OP
  6240. ENUMX
  6241. BFD_RELOC_XTENSA_SLOT9_OP
  6242. ENUMX
  6243. BFD_RELOC_XTENSA_SLOT10_OP
  6244. ENUMX
  6245. BFD_RELOC_XTENSA_SLOT11_OP
  6246. ENUMX
  6247. BFD_RELOC_XTENSA_SLOT12_OP
  6248. ENUMX
  6249. BFD_RELOC_XTENSA_SLOT13_OP
  6250. ENUMX
  6251. BFD_RELOC_XTENSA_SLOT14_OP
  6252. ENUMDOC
  6253. Generic Xtensa relocations for instruction operands. Only the slot
  6254. number is encoded in the relocation. The relocation applies to the
  6255. last PC-relative immediate operand, or if there are no PC-relative
  6256. immediates, to the last immediate operand.
  6257. ENUM
  6258. BFD_RELOC_XTENSA_SLOT0_ALT
  6259. ENUMX
  6260. BFD_RELOC_XTENSA_SLOT1_ALT
  6261. ENUMX
  6262. BFD_RELOC_XTENSA_SLOT2_ALT
  6263. ENUMX
  6264. BFD_RELOC_XTENSA_SLOT3_ALT
  6265. ENUMX
  6266. BFD_RELOC_XTENSA_SLOT4_ALT
  6267. ENUMX
  6268. BFD_RELOC_XTENSA_SLOT5_ALT
  6269. ENUMX
  6270. BFD_RELOC_XTENSA_SLOT6_ALT
  6271. ENUMX
  6272. BFD_RELOC_XTENSA_SLOT7_ALT
  6273. ENUMX
  6274. BFD_RELOC_XTENSA_SLOT8_ALT
  6275. ENUMX
  6276. BFD_RELOC_XTENSA_SLOT9_ALT
  6277. ENUMX
  6278. BFD_RELOC_XTENSA_SLOT10_ALT
  6279. ENUMX
  6280. BFD_RELOC_XTENSA_SLOT11_ALT
  6281. ENUMX
  6282. BFD_RELOC_XTENSA_SLOT12_ALT
  6283. ENUMX
  6284. BFD_RELOC_XTENSA_SLOT13_ALT
  6285. ENUMX
  6286. BFD_RELOC_XTENSA_SLOT14_ALT
  6287. ENUMDOC
  6288. Alternate Xtensa relocations. Only the slot is encoded in the
  6289. relocation. The meaning of these relocations is opcode-specific.
  6290. ENUM
  6291. BFD_RELOC_XTENSA_OP0
  6292. ENUMX
  6293. BFD_RELOC_XTENSA_OP1
  6294. ENUMX
  6295. BFD_RELOC_XTENSA_OP2
  6296. ENUMDOC
  6297. Xtensa relocations for backward compatibility. These have all been
  6298. replaced by BFD_RELOC_XTENSA_SLOT0_OP.
  6299. ENUM
  6300. BFD_RELOC_XTENSA_ASM_EXPAND
  6301. ENUMDOC
  6302. Xtensa relocation to mark that the assembler expanded the
  6303. instructions from an original target. The expansion size is
  6304. encoded in the reloc size.
  6305. ENUM
  6306. BFD_RELOC_XTENSA_ASM_SIMPLIFY
  6307. ENUMDOC
  6308. Xtensa relocation to mark that the linker should simplify
  6309. assembler-expanded instructions. This is commonly used
  6310. internally by the linker after analysis of a
  6311. BFD_RELOC_XTENSA_ASM_EXPAND.
  6312. ENUM
  6313. BFD_RELOC_XTENSA_TLSDESC_FN
  6314. ENUMX
  6315. BFD_RELOC_XTENSA_TLSDESC_ARG
  6316. ENUMX
  6317. BFD_RELOC_XTENSA_TLS_DTPOFF
  6318. ENUMX
  6319. BFD_RELOC_XTENSA_TLS_TPOFF
  6320. ENUMX
  6321. BFD_RELOC_XTENSA_TLS_FUNC
  6322. ENUMX
  6323. BFD_RELOC_XTENSA_TLS_ARG
  6324. ENUMX
  6325. BFD_RELOC_XTENSA_TLS_CALL
  6326. ENUMDOC
  6327. Xtensa TLS relocations.
  6328. ENUM
  6329. BFD_RELOC_XTENSA_PDIFF8
  6330. ENUMX
  6331. BFD_RELOC_XTENSA_PDIFF16
  6332. ENUMX
  6333. BFD_RELOC_XTENSA_PDIFF32
  6334. ENUMX
  6335. BFD_RELOC_XTENSA_NDIFF8
  6336. ENUMX
  6337. BFD_RELOC_XTENSA_NDIFF16
  6338. ENUMX
  6339. BFD_RELOC_XTENSA_NDIFF32
  6340. ENUMDOC
  6341. Xtensa relocations to mark the difference of two local symbols.
  6342. These are only needed to support linker relaxation and can be ignored
  6343. when not relaxing. The field is set to the value of the difference
  6344. assuming no relaxation. The relocation encodes the position of the
  6345. subtracted symbol so the linker can determine whether to adjust the field
  6346. value. PDIFF relocations are used for positive differences, NDIFF
  6347. relocations are used for negative differences. The difference value
  6348. is treated as unsigned with these relocation types, giving full
  6349. 8/16 value ranges.
  6350. ENUM
  6351. BFD_RELOC_Z80_DISP8
  6352. ENUMDOC
  6353. 8 bit signed offset in (ix+d) or (iy+d).
  6354. ENUM
  6355. BFD_RELOC_Z80_BYTE0
  6356. ENUMDOC
  6357. First 8 bits of multibyte (32, 24 or 16 bit) value.
  6358. ENUM
  6359. BFD_RELOC_Z80_BYTE1
  6360. ENUMDOC
  6361. Second 8 bits of multibyte (32, 24 or 16 bit) value.
  6362. ENUM
  6363. BFD_RELOC_Z80_BYTE2
  6364. ENUMDOC
  6365. Third 8 bits of multibyte (32 or 24 bit) value.
  6366. ENUM
  6367. BFD_RELOC_Z80_BYTE3
  6368. ENUMDOC
  6369. Fourth 8 bits of multibyte (32 bit) value.
  6370. ENUM
  6371. BFD_RELOC_Z80_WORD0
  6372. ENUMDOC
  6373. Lowest 16 bits of multibyte (32 or 24 bit) value.
  6374. ENUM
  6375. BFD_RELOC_Z80_WORD1
  6376. ENUMDOC
  6377. Highest 16 bits of multibyte (32 or 24 bit) value.
  6378. ENUM
  6379. BFD_RELOC_Z80_16_BE
  6380. ENUMDOC
  6381. Like BFD_RELOC_16 but big-endian.
  6382. ENUM
  6383. BFD_RELOC_Z8K_DISP7
  6384. ENUMDOC
  6385. DJNZ offset.
  6386. ENUM
  6387. BFD_RELOC_Z8K_CALLR
  6388. ENUMDOC
  6389. CALR offset.
  6390. ENUM
  6391. BFD_RELOC_Z8K_IMM4L
  6392. ENUMDOC
  6393. 4 bit value.
  6394. ENUM
  6395. BFD_RELOC_LM32_CALL
  6396. ENUMX
  6397. BFD_RELOC_LM32_BRANCH
  6398. ENUMX
  6399. BFD_RELOC_LM32_16_GOT
  6400. ENUMX
  6401. BFD_RELOC_LM32_GOTOFF_HI16
  6402. ENUMX
  6403. BFD_RELOC_LM32_GOTOFF_LO16
  6404. ENUMX
  6405. BFD_RELOC_LM32_COPY
  6406. ENUMX
  6407. BFD_RELOC_LM32_GLOB_DAT
  6408. ENUMX
  6409. BFD_RELOC_LM32_JMP_SLOT
  6410. ENUMX
  6411. BFD_RELOC_LM32_RELATIVE
  6412. ENUMDOC
  6413. Lattice Mico32 relocations.
  6414. ENUM
  6415. BFD_RELOC_MACH_O_SECTDIFF
  6416. ENUMDOC
  6417. Difference between two section addreses. Must be followed by a
  6418. BFD_RELOC_MACH_O_PAIR.
  6419. ENUM
  6420. BFD_RELOC_MACH_O_LOCAL_SECTDIFF
  6421. ENUMDOC
  6422. Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
  6423. ENUM
  6424. BFD_RELOC_MACH_O_PAIR
  6425. ENUMDOC
  6426. Pair of relocation. Contains the first symbol.
  6427. ENUM
  6428. BFD_RELOC_MACH_O_SUBTRACTOR32
  6429. ENUMDOC
  6430. Symbol will be substracted. Must be followed by a BFD_RELOC_32.
  6431. ENUM
  6432. BFD_RELOC_MACH_O_SUBTRACTOR64
  6433. ENUMDOC
  6434. Symbol will be substracted. Must be followed by a BFD_RELOC_64.
  6435. ENUM
  6436. BFD_RELOC_MACH_O_X86_64_BRANCH32
  6437. ENUMX
  6438. BFD_RELOC_MACH_O_X86_64_BRANCH8
  6439. ENUMDOC
  6440. PCREL relocations. They are marked as branch to create PLT entry if
  6441. required.
  6442. ENUM
  6443. BFD_RELOC_MACH_O_X86_64_GOT
  6444. ENUMDOC
  6445. Used when referencing a GOT entry.
  6446. ENUM
  6447. BFD_RELOC_MACH_O_X86_64_GOT_LOAD
  6448. ENUMDOC
  6449. Used when loading a GOT entry with movq. It is specially marked so that
  6450. the linker could optimize the movq to a leaq if possible.
  6451. ENUM
  6452. BFD_RELOC_MACH_O_X86_64_PCREL32_1
  6453. ENUMDOC
  6454. Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
  6455. ENUM
  6456. BFD_RELOC_MACH_O_X86_64_PCREL32_2
  6457. ENUMDOC
  6458. Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
  6459. ENUM
  6460. BFD_RELOC_MACH_O_X86_64_PCREL32_4
  6461. ENUMDOC
  6462. Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
  6463. ENUM
  6464. BFD_RELOC_MACH_O_X86_64_TLV
  6465. ENUMDOC
  6466. Used when referencing a TLV entry.
  6467. ENUM
  6468. BFD_RELOC_MACH_O_ARM64_ADDEND
  6469. ENUMDOC
  6470. Addend for PAGE or PAGEOFF.
  6471. ENUM
  6472. BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21
  6473. ENUMDOC
  6474. Relative offset to page of GOT slot.
  6475. ENUM
  6476. BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12
  6477. ENUMDOC
  6478. Relative offset within page of GOT slot.
  6479. ENUM
  6480. BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT
  6481. ENUMDOC
  6482. Address of a GOT entry.
  6483. ENUM
  6484. BFD_RELOC_MICROBLAZE_32_LO
  6485. ENUMDOC
  6486. This is a 32 bit reloc for the microblaze that stores the
  6487. low 16 bits of a value
  6488. ENUM
  6489. BFD_RELOC_MICROBLAZE_32_LO_PCREL
  6490. ENUMDOC
  6491. This is a 32 bit pc-relative reloc for the microblaze that
  6492. stores the low 16 bits of a value
  6493. ENUM
  6494. BFD_RELOC_MICROBLAZE_32_ROSDA
  6495. ENUMDOC
  6496. This is a 32 bit reloc for the microblaze that stores a
  6497. value relative to the read-only small data area anchor
  6498. ENUM
  6499. BFD_RELOC_MICROBLAZE_32_RWSDA
  6500. ENUMDOC
  6501. This is a 32 bit reloc for the microblaze that stores a
  6502. value relative to the read-write small data area anchor
  6503. ENUM
  6504. BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
  6505. ENUMDOC
  6506. This is a 32 bit reloc for the microblaze to handle
  6507. expressions of the form "Symbol Op Symbol"
  6508. ENUM
  6509. BFD_RELOC_MICROBLAZE_64_NONE
  6510. ENUMDOC
  6511. This is a 64 bit reloc that stores the 32 bit pc relative
  6512. value in two words (with an imm instruction). No relocation is
  6513. done here - only used for relaxing
  6514. ENUM
  6515. BFD_RELOC_MICROBLAZE_64_GOTPC
  6516. ENUMDOC
  6517. This is a 64 bit reloc that stores the 32 bit pc relative
  6518. value in two words (with an imm instruction). The relocation is
  6519. PC-relative GOT offset
  6520. ENUM
  6521. BFD_RELOC_MICROBLAZE_64_GOT
  6522. ENUMDOC
  6523. This is a 64 bit reloc that stores the 32 bit pc relative
  6524. value in two words (with an imm instruction). The relocation is
  6525. GOT offset
  6526. ENUM
  6527. BFD_RELOC_MICROBLAZE_64_PLT
  6528. ENUMDOC
  6529. This is a 64 bit reloc that stores the 32 bit pc relative
  6530. value in two words (with an imm instruction). The relocation is
  6531. PC-relative offset into PLT
  6532. ENUM
  6533. BFD_RELOC_MICROBLAZE_64_GOTOFF
  6534. ENUMDOC
  6535. This is a 64 bit reloc that stores the 32 bit GOT relative
  6536. value in two words (with an imm instruction). The relocation is
  6537. relative offset from _GLOBAL_OFFSET_TABLE_
  6538. ENUM
  6539. BFD_RELOC_MICROBLAZE_32_GOTOFF
  6540. ENUMDOC
  6541. This is a 32 bit reloc that stores the 32 bit GOT relative
  6542. value in a word. The relocation is relative offset from
  6543. _GLOBAL_OFFSET_TABLE_
  6544. ENUM
  6545. BFD_RELOC_MICROBLAZE_COPY
  6546. ENUMDOC
  6547. This is used to tell the dynamic linker to copy the value out of
  6548. the dynamic object into the runtime process image.
  6549. ENUM
  6550. BFD_RELOC_MICROBLAZE_64_TLS
  6551. ENUMDOC
  6552. Unused Reloc
  6553. ENUM
  6554. BFD_RELOC_MICROBLAZE_64_TLSGD
  6555. ENUMDOC
  6556. This is a 64 bit reloc that stores the 32 bit GOT relative value
  6557. of the GOT TLS GD info entry in two words (with an imm instruction). The
  6558. relocation is GOT offset.
  6559. ENUM
  6560. BFD_RELOC_MICROBLAZE_64_TLSLD
  6561. ENUMDOC
  6562. This is a 64 bit reloc that stores the 32 bit GOT relative value
  6563. of the GOT TLS LD info entry in two words (with an imm instruction). The
  6564. relocation is GOT offset.
  6565. ENUM
  6566. BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
  6567. ENUMDOC
  6568. This is a 32 bit reloc that stores the Module ID to GOT(n).
  6569. ENUM
  6570. BFD_RELOC_MICROBLAZE_32_TLSDTPREL
  6571. ENUMDOC
  6572. This is a 32 bit reloc that stores TLS offset to GOT(n+1).
  6573. ENUM
  6574. BFD_RELOC_MICROBLAZE_64_TLSDTPREL
  6575. ENUMDOC
  6576. This is a 32 bit reloc for storing TLS offset to two words (uses imm
  6577. instruction)
  6578. ENUM
  6579. BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
  6580. ENUMDOC
  6581. This is a 64 bit reloc that stores 32-bit thread pointer relative offset
  6582. to two words (uses imm instruction).
  6583. ENUM
  6584. BFD_RELOC_MICROBLAZE_64_TLSTPREL
  6585. ENUMDOC
  6586. This is a 64 bit reloc that stores 32-bit thread pointer relative offset
  6587. to two words (uses imm instruction).
  6588. ENUM
  6589. BFD_RELOC_MICROBLAZE_64_TEXTPCREL
  6590. ENUMDOC
  6591. This is a 64 bit reloc that stores the 32 bit pc relative
  6592. value in two words (with an imm instruction). The relocation is
  6593. PC-relative offset from start of TEXT.
  6594. ENUM
  6595. BFD_RELOC_MICROBLAZE_64_TEXTREL
  6596. ENUMDOC
  6597. This is a 64 bit reloc that stores the 32 bit offset
  6598. value in two words (with an imm instruction). The relocation is
  6599. relative offset from start of TEXT.
  6600. ENUM
  6601. BFD_RELOC_AARCH64_RELOC_START
  6602. ENUMDOC
  6603. AArch64 pseudo relocation code to mark the start of the AArch64
  6604. relocation enumerators. N.B. the order of the enumerators is
  6605. important as several tables in the AArch64 bfd backend are indexed
  6606. by these enumerators; make sure they are all synced.
  6607. ENUM
  6608. BFD_RELOC_AARCH64_NULL
  6609. ENUMDOC
  6610. Deprecated AArch64 null relocation code.
  6611. ENUM
  6612. BFD_RELOC_AARCH64_NONE
  6613. ENUMDOC
  6614. AArch64 null relocation code.
  6615. ENUM
  6616. BFD_RELOC_AARCH64_64
  6617. ENUMX
  6618. BFD_RELOC_AARCH64_32
  6619. ENUMX
  6620. BFD_RELOC_AARCH64_16
  6621. ENUMDOC
  6622. Basic absolute relocations of N bits. These are equivalent to
  6623. BFD_RELOC_N and they were added to assist the indexing of the howto
  6624. table.
  6625. ENUM
  6626. BFD_RELOC_AARCH64_64_PCREL
  6627. ENUMX
  6628. BFD_RELOC_AARCH64_32_PCREL
  6629. ENUMX
  6630. BFD_RELOC_AARCH64_16_PCREL
  6631. ENUMDOC
  6632. PC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL
  6633. and they were added to assist the indexing of the howto table.
  6634. ENUM
  6635. BFD_RELOC_AARCH64_MOVW_G0
  6636. ENUMDOC
  6637. AArch64 MOV[NZK] instruction with most significant bits 0 to 15
  6638. of an unsigned address/value.
  6639. ENUM
  6640. BFD_RELOC_AARCH64_MOVW_G0_NC
  6641. ENUMDOC
  6642. AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
  6643. an address/value. No overflow checking.
  6644. ENUM
  6645. BFD_RELOC_AARCH64_MOVW_G1
  6646. ENUMDOC
  6647. AArch64 MOV[NZK] instruction with most significant bits 16 to 31
  6648. of an unsigned address/value.
  6649. ENUM
  6650. BFD_RELOC_AARCH64_MOVW_G1_NC
  6651. ENUMDOC
  6652. AArch64 MOV[NZK] instruction with less significant bits 16 to 31
  6653. of an address/value. No overflow checking.
  6654. ENUM
  6655. BFD_RELOC_AARCH64_MOVW_G2
  6656. ENUMDOC
  6657. AArch64 MOV[NZK] instruction with most significant bits 32 to 47
  6658. of an unsigned address/value.
  6659. ENUM
  6660. BFD_RELOC_AARCH64_MOVW_G2_NC
  6661. ENUMDOC
  6662. AArch64 MOV[NZK] instruction with less significant bits 32 to 47
  6663. of an address/value. No overflow checking.
  6664. ENUM
  6665. BFD_RELOC_AARCH64_MOVW_G3
  6666. ENUMDOC
  6667. AArch64 MOV[NZK] instruction with most signficant bits 48 to 64
  6668. of a signed or unsigned address/value.
  6669. ENUM
  6670. BFD_RELOC_AARCH64_MOVW_G0_S
  6671. ENUMDOC
  6672. AArch64 MOV[NZ] instruction with most significant bits 0 to 15
  6673. of a signed value. Changes instruction to MOVZ or MOVN depending on the
  6674. value's sign.
  6675. ENUM
  6676. BFD_RELOC_AARCH64_MOVW_G1_S
  6677. ENUMDOC
  6678. AArch64 MOV[NZ] instruction with most significant bits 16 to 31
  6679. of a signed value. Changes instruction to MOVZ or MOVN depending on the
  6680. value's sign.
  6681. ENUM
  6682. BFD_RELOC_AARCH64_MOVW_G2_S
  6683. ENUMDOC
  6684. AArch64 MOV[NZ] instruction with most significant bits 32 to 47
  6685. of a signed value. Changes instruction to MOVZ or MOVN depending on the
  6686. value's sign.
  6687. ENUM
  6688. BFD_RELOC_AARCH64_MOVW_PREL_G0
  6689. ENUMDOC
  6690. AArch64 MOV[NZ] instruction with most significant bits 0 to 15
  6691. of a signed value. Changes instruction to MOVZ or MOVN depending on the
  6692. value's sign.
  6693. ENUM
  6694. BFD_RELOC_AARCH64_MOVW_PREL_G0_NC
  6695. ENUMDOC
  6696. AArch64 MOV[NZ] instruction with most significant bits 0 to 15
  6697. of a signed value. Changes instruction to MOVZ or MOVN depending on the
  6698. value's sign.
  6699. ENUM
  6700. BFD_RELOC_AARCH64_MOVW_PREL_G1
  6701. ENUMDOC
  6702. AArch64 MOVK instruction with most significant bits 16 to 31
  6703. of a signed value.
  6704. ENUM
  6705. BFD_RELOC_AARCH64_MOVW_PREL_G1_NC
  6706. ENUMDOC
  6707. AArch64 MOVK instruction with most significant bits 16 to 31
  6708. of a signed value.
  6709. ENUM
  6710. BFD_RELOC_AARCH64_MOVW_PREL_G2
  6711. ENUMDOC
  6712. AArch64 MOVK instruction with most significant bits 32 to 47
  6713. of a signed value.
  6714. ENUM
  6715. BFD_RELOC_AARCH64_MOVW_PREL_G2_NC
  6716. ENUMDOC
  6717. AArch64 MOVK instruction with most significant bits 32 to 47
  6718. of a signed value.
  6719. ENUM
  6720. BFD_RELOC_AARCH64_MOVW_PREL_G3
  6721. ENUMDOC
  6722. AArch64 MOVK instruction with most significant bits 47 to 63
  6723. of a signed value.
  6724. ENUM
  6725. BFD_RELOC_AARCH64_LD_LO19_PCREL
  6726. ENUMDOC
  6727. AArch64 Load Literal instruction, holding a 19 bit pc-relative word
  6728. offset. The lowest two bits must be zero and are not stored in the
  6729. instruction, giving a 21 bit signed byte offset.
  6730. ENUM
  6731. BFD_RELOC_AARCH64_ADR_LO21_PCREL
  6732. ENUMDOC
  6733. AArch64 ADR instruction, holding a simple 21 bit pc-relative byte offset.
  6734. ENUM
  6735. BFD_RELOC_AARCH64_ADR_HI21_PCREL
  6736. ENUMDOC
  6737. AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
  6738. offset, giving a 4KB aligned page base address.
  6739. ENUM
  6740. BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
  6741. ENUMDOC
  6742. AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
  6743. offset, giving a 4KB aligned page base address, but with no overflow
  6744. checking.
  6745. ENUM
  6746. BFD_RELOC_AARCH64_ADD_LO12
  6747. ENUMDOC
  6748. AArch64 ADD immediate instruction, holding bits 0 to 11 of the address.
  6749. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
  6750. ENUM
  6751. BFD_RELOC_AARCH64_LDST8_LO12
  6752. ENUMDOC
  6753. AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
  6754. address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
  6755. ENUM
  6756. BFD_RELOC_AARCH64_TSTBR14
  6757. ENUMDOC
  6758. AArch64 14 bit pc-relative test bit and branch.
  6759. The lowest two bits must be zero and are not stored in the instruction,
  6760. giving a 16 bit signed byte offset.
  6761. ENUM
  6762. BFD_RELOC_AARCH64_BRANCH19
  6763. ENUMDOC
  6764. AArch64 19 bit pc-relative conditional branch and compare & branch.
  6765. The lowest two bits must be zero and are not stored in the instruction,
  6766. giving a 21 bit signed byte offset.
  6767. ENUM
  6768. BFD_RELOC_AARCH64_JUMP26
  6769. ENUMDOC
  6770. AArch64 26 bit pc-relative unconditional branch.
  6771. The lowest two bits must be zero and are not stored in the instruction,
  6772. giving a 28 bit signed byte offset.
  6773. ENUM
  6774. BFD_RELOC_AARCH64_CALL26
  6775. ENUMDOC
  6776. AArch64 26 bit pc-relative unconditional branch and link.
  6777. The lowest two bits must be zero and are not stored in the instruction,
  6778. giving a 28 bit signed byte offset.
  6779. ENUM
  6780. BFD_RELOC_AARCH64_LDST16_LO12
  6781. ENUMDOC
  6782. AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
  6783. address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
  6784. ENUM
  6785. BFD_RELOC_AARCH64_LDST32_LO12
  6786. ENUMDOC
  6787. AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
  6788. address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
  6789. ENUM
  6790. BFD_RELOC_AARCH64_LDST64_LO12
  6791. ENUMDOC
  6792. AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
  6793. address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
  6794. ENUM
  6795. BFD_RELOC_AARCH64_LDST128_LO12
  6796. ENUMDOC
  6797. AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
  6798. address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
  6799. ENUM
  6800. BFD_RELOC_AARCH64_GOT_LD_PREL19
  6801. ENUMDOC
  6802. AArch64 Load Literal instruction, holding a 19 bit PC relative word
  6803. offset of the global offset table entry for a symbol. The lowest two
  6804. bits must be zero and are not stored in the instruction, giving a 21
  6805. bit signed byte offset. This relocation type requires signed overflow
  6806. checking.
  6807. ENUM
  6808. BFD_RELOC_AARCH64_ADR_GOT_PAGE
  6809. ENUMDOC
  6810. Get to the page base of the global offset table entry for a symbol as
  6811. part of an ADRP instruction using a 21 bit PC relative value.Used in
  6812. conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
  6813. ENUM
  6814. BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
  6815. ENUMDOC
  6816. Unsigned 12 bit byte offset for 64 bit load/store from the page of
  6817. the GOT entry for this symbol. Used in conjunction with
  6818. BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in LP64 ABI only.
  6819. ENUM
  6820. BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
  6821. ENUMDOC
  6822. Unsigned 12 bit byte offset for 32 bit load/store from the page of
  6823. the GOT entry for this symbol. Used in conjunction with
  6824. BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in ILP32 ABI only.
  6825. ENUM
  6826. BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
  6827. ENUMDOC
  6828. Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
  6829. for this symbol. Valid in LP64 ABI only.
  6830. ENUM
  6831. BFD_RELOC_AARCH64_MOVW_GOTOFF_G1
  6832. ENUMDOC
  6833. Unsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry
  6834. for this symbol. Valid in LP64 ABI only.
  6835. ENUM
  6836. BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
  6837. ENUMDOC
  6838. Unsigned 15 bit byte offset for 64 bit load/store from the page of
  6839. the GOT entry for this symbol. Valid in LP64 ABI only.
  6840. ENUM
  6841. BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
  6842. ENUMDOC
  6843. Scaled 14 bit byte offset to the page base of the global offset table.
  6844. ENUM
  6845. BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
  6846. ENUMDOC
  6847. Scaled 15 bit byte offset to the page base of the global offset table.
  6848. ENUM
  6849. BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
  6850. ENUMDOC
  6851. Get to the page base of the global offset table entry for a symbols
  6852. tls_index structure as part of an adrp instruction using a 21 bit PC
  6853. relative value. Used in conjunction with
  6854. BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
  6855. ENUM
  6856. BFD_RELOC_AARCH64_TLSGD_ADR_PREL21
  6857. ENUMDOC
  6858. AArch64 TLS General Dynamic
  6859. ENUM
  6860. BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
  6861. ENUMDOC
  6862. Unsigned 12 bit byte offset to global offset table entry for a symbols
  6863. tls_index structure. Used in conjunction with
  6864. BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
  6865. ENUM
  6866. BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC
  6867. ENUMDOC
  6868. AArch64 TLS General Dynamic relocation.
  6869. ENUM
  6870. BFD_RELOC_AARCH64_TLSGD_MOVW_G1
  6871. ENUMDOC
  6872. AArch64 TLS General Dynamic relocation.
  6873. ENUM
  6874. BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
  6875. ENUMDOC
  6876. AArch64 TLS INITIAL EXEC relocation.
  6877. ENUM
  6878. BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
  6879. ENUMDOC
  6880. AArch64 TLS INITIAL EXEC relocation.
  6881. ENUM
  6882. BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
  6883. ENUMDOC
  6884. AArch64 TLS INITIAL EXEC relocation.
  6885. ENUM
  6886. BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
  6887. ENUMDOC
  6888. AArch64 TLS INITIAL EXEC relocation.
  6889. ENUM
  6890. BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
  6891. ENUMDOC
  6892. AArch64 TLS INITIAL EXEC relocation.
  6893. ENUM
  6894. BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
  6895. ENUMDOC
  6896. AArch64 TLS INITIAL EXEC relocation.
  6897. ENUM
  6898. BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
  6899. ENUMDOC
  6900. bit[23:12] of byte offset to module TLS base address.
  6901. ENUM
  6902. BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12
  6903. ENUMDOC
  6904. Unsigned 12 bit byte offset to module TLS base address.
  6905. ENUM
  6906. BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
  6907. ENUMDOC
  6908. No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
  6909. ENUM
  6910. BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC
  6911. ENUMDOC
  6912. Unsigned 12 bit byte offset to global offset table entry for a symbols
  6913. tls_index structure. Used in conjunction with
  6914. BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
  6915. ENUM
  6916. BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21
  6917. ENUMDOC
  6918. GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
  6919. instruction.
  6920. ENUM
  6921. BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
  6922. ENUMDOC
  6923. GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction.
  6924. ENUM
  6925. BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12
  6926. ENUMDOC
  6927. bit[11:1] of byte offset to module TLS base address, encoded in ldst
  6928. instructions.
  6929. ENUM
  6930. BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
  6931. ENUMDOC
  6932. Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check.
  6933. ENUM
  6934. BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12
  6935. ENUMDOC
  6936. bit[11:2] of byte offset to module TLS base address, encoded in ldst
  6937. instructions.
  6938. ENUM
  6939. BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
  6940. ENUMDOC
  6941. Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check.
  6942. ENUM
  6943. BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12
  6944. ENUMDOC
  6945. bit[11:3] of byte offset to module TLS base address, encoded in ldst
  6946. instructions.
  6947. ENUM
  6948. BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
  6949. ENUMDOC
  6950. Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check.
  6951. ENUM
  6952. BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12
  6953. ENUMDOC
  6954. bit[11:0] of byte offset to module TLS base address, encoded in ldst
  6955. instructions.
  6956. ENUM
  6957. BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
  6958. ENUMDOC
  6959. Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check.
  6960. ENUM
  6961. BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
  6962. ENUMDOC
  6963. bit[15:0] of byte offset to module TLS base address.
  6964. ENUM
  6965. BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
  6966. ENUMDOC
  6967. No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
  6968. ENUM
  6969. BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
  6970. ENUMDOC
  6971. bit[31:16] of byte offset to module TLS base address.
  6972. ENUM
  6973. BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
  6974. ENUMDOC
  6975. No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
  6976. ENUM
  6977. BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2
  6978. ENUMDOC
  6979. bit[47:32] of byte offset to module TLS base address.
  6980. ENUM
  6981. BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
  6982. ENUMDOC
  6983. AArch64 TLS LOCAL EXEC relocation.
  6984. ENUM
  6985. BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
  6986. ENUMDOC
  6987. AArch64 TLS LOCAL EXEC relocation.
  6988. ENUM
  6989. BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
  6990. ENUMDOC
  6991. AArch64 TLS LOCAL EXEC relocation.
  6992. ENUM
  6993. BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
  6994. ENUMDOC
  6995. AArch64 TLS LOCAL EXEC relocation.
  6996. ENUM
  6997. BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
  6998. ENUMDOC
  6999. AArch64 TLS LOCAL EXEC relocation.
  7000. ENUM
  7001. BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
  7002. ENUMDOC
  7003. AArch64 TLS LOCAL EXEC relocation.
  7004. ENUM
  7005. BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
  7006. ENUMDOC
  7007. AArch64 TLS LOCAL EXEC relocation.
  7008. ENUM
  7009. BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
  7010. ENUMDOC
  7011. AArch64 TLS LOCAL EXEC relocation.
  7012. ENUM
  7013. BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12
  7014. ENUMDOC
  7015. bit[11:1] of byte offset to module TLS base address, encoded in ldst
  7016. instructions.
  7017. ENUM
  7018. BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC
  7019. ENUMDOC
  7020. Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check.
  7021. ENUM
  7022. BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12
  7023. ENUMDOC
  7024. bit[11:2] of byte offset to module TLS base address, encoded in ldst
  7025. instructions.
  7026. ENUM
  7027. BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC
  7028. ENUMDOC
  7029. Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check.
  7030. ENUM
  7031. BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12
  7032. ENUMDOC
  7033. bit[11:3] of byte offset to module TLS base address, encoded in ldst
  7034. instructions.
  7035. ENUM
  7036. BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC
  7037. ENUMDOC
  7038. Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check.
  7039. ENUM
  7040. BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12
  7041. ENUMDOC
  7042. bit[11:0] of byte offset to module TLS base address, encoded in ldst
  7043. instructions.
  7044. ENUM
  7045. BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC
  7046. ENUMDOC
  7047. Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check.
  7048. ENUM
  7049. BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
  7050. ENUMDOC
  7051. AArch64 TLS DESC relocation.
  7052. ENUM
  7053. BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
  7054. ENUMDOC
  7055. AArch64 TLS DESC relocation.
  7056. ENUM
  7057. BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
  7058. ENUMDOC
  7059. AArch64 TLS DESC relocation.
  7060. ENUM
  7061. BFD_RELOC_AARCH64_TLSDESC_LD64_LO12
  7062. ENUMDOC
  7063. AArch64 TLS DESC relocation.
  7064. ENUM
  7065. BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
  7066. ENUMDOC
  7067. AArch64 TLS DESC relocation.
  7068. ENUM
  7069. BFD_RELOC_AARCH64_TLSDESC_ADD_LO12
  7070. ENUMDOC
  7071. AArch64 TLS DESC relocation.
  7072. ENUM
  7073. BFD_RELOC_AARCH64_TLSDESC_OFF_G1
  7074. ENUMDOC
  7075. AArch64 TLS DESC relocation.
  7076. ENUM
  7077. BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
  7078. ENUMDOC
  7079. AArch64 TLS DESC relocation.
  7080. ENUM
  7081. BFD_RELOC_AARCH64_TLSDESC_LDR
  7082. ENUMDOC
  7083. AArch64 TLS DESC relocation.
  7084. ENUM
  7085. BFD_RELOC_AARCH64_TLSDESC_ADD
  7086. ENUMDOC
  7087. AArch64 TLS DESC relocation.
  7088. ENUM
  7089. BFD_RELOC_AARCH64_TLSDESC_CALL
  7090. ENUMDOC
  7091. AArch64 TLS DESC relocation.
  7092. ENUM
  7093. BFD_RELOC_AARCH64_COPY
  7094. ENUMDOC
  7095. AArch64 TLS relocation.
  7096. ENUM
  7097. BFD_RELOC_AARCH64_GLOB_DAT
  7098. ENUMDOC
  7099. AArch64 TLS relocation.
  7100. ENUM
  7101. BFD_RELOC_AARCH64_JUMP_SLOT
  7102. ENUMDOC
  7103. AArch64 TLS relocation.
  7104. ENUM
  7105. BFD_RELOC_AARCH64_RELATIVE
  7106. ENUMDOC
  7107. AArch64 TLS relocation.
  7108. ENUM
  7109. BFD_RELOC_AARCH64_TLS_DTPMOD
  7110. ENUMDOC
  7111. AArch64 TLS relocation.
  7112. ENUM
  7113. BFD_RELOC_AARCH64_TLS_DTPREL
  7114. ENUMDOC
  7115. AArch64 TLS relocation.
  7116. ENUM
  7117. BFD_RELOC_AARCH64_TLS_TPREL
  7118. ENUMDOC
  7119. AArch64 TLS relocation.
  7120. ENUM
  7121. BFD_RELOC_AARCH64_TLSDESC
  7122. ENUMDOC
  7123. AArch64 TLS relocation.
  7124. ENUM
  7125. BFD_RELOC_AARCH64_IRELATIVE
  7126. ENUMDOC
  7127. AArch64 support for STT_GNU_IFUNC.
  7128. ENUM
  7129. BFD_RELOC_AARCH64_RELOC_END
  7130. ENUMDOC
  7131. AArch64 pseudo relocation code to mark the end of the AArch64
  7132. relocation enumerators that have direct mapping to ELF reloc codes.
  7133. There are a few more enumerators after this one; those are mainly
  7134. used by the AArch64 assembler for the internal fixup or to select
  7135. one of the above enumerators.
  7136. ENUM
  7137. BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
  7138. ENUMDOC
  7139. AArch64 pseudo relocation code to be used internally by the AArch64
  7140. assembler and not (currently) written to any object files.
  7141. ENUM
  7142. BFD_RELOC_AARCH64_LDST_LO12
  7143. ENUMDOC
  7144. AArch64 unspecified load/store instruction, holding bits 0 to 11 of the
  7145. address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
  7146. ENUM
  7147. BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12
  7148. ENUMDOC
  7149. AArch64 pseudo relocation code for TLS local dynamic mode. It's to be
  7150. used internally by the AArch64 assembler and not (currently) written to
  7151. any object files.
  7152. ENUM
  7153. BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC
  7154. ENUMDOC
  7155. Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check.
  7156. ENUM
  7157. BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12
  7158. ENUMDOC
  7159. AArch64 pseudo relocation code for TLS local exec mode. It's to be
  7160. used internally by the AArch64 assembler and not (currently) written to
  7161. any object files.
  7162. ENUM
  7163. BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC
  7164. ENUMDOC
  7165. Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow check.
  7166. ENUM
  7167. BFD_RELOC_AARCH64_LD_GOT_LO12_NC
  7168. ENUMDOC
  7169. AArch64 pseudo relocation code to be used internally by the AArch64
  7170. assembler and not (currently) written to any object files.
  7171. ENUM
  7172. BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
  7173. ENUMDOC
  7174. AArch64 pseudo relocation code to be used internally by the AArch64
  7175. assembler and not (currently) written to any object files.
  7176. ENUM
  7177. BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
  7178. ENUMDOC
  7179. AArch64 pseudo relocation code to be used internally by the AArch64
  7180. assembler and not (currently) written to any object files.
  7181. ENUM
  7182. BFD_RELOC_TILEPRO_COPY
  7183. ENUMX
  7184. BFD_RELOC_TILEPRO_GLOB_DAT
  7185. ENUMX
  7186. BFD_RELOC_TILEPRO_JMP_SLOT
  7187. ENUMX
  7188. BFD_RELOC_TILEPRO_RELATIVE
  7189. ENUMX
  7190. BFD_RELOC_TILEPRO_BROFF_X1
  7191. ENUMX
  7192. BFD_RELOC_TILEPRO_JOFFLONG_X1
  7193. ENUMX
  7194. BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
  7195. ENUMX
  7196. BFD_RELOC_TILEPRO_IMM8_X0
  7197. ENUMX
  7198. BFD_RELOC_TILEPRO_IMM8_Y0
  7199. ENUMX
  7200. BFD_RELOC_TILEPRO_IMM8_X1
  7201. ENUMX
  7202. BFD_RELOC_TILEPRO_IMM8_Y1
  7203. ENUMX
  7204. BFD_RELOC_TILEPRO_DEST_IMM8_X1
  7205. ENUMX
  7206. BFD_RELOC_TILEPRO_MT_IMM15_X1
  7207. ENUMX
  7208. BFD_RELOC_TILEPRO_MF_IMM15_X1
  7209. ENUMX
  7210. BFD_RELOC_TILEPRO_IMM16_X0
  7211. ENUMX
  7212. BFD_RELOC_TILEPRO_IMM16_X1
  7213. ENUMX
  7214. BFD_RELOC_TILEPRO_IMM16_X0_LO
  7215. ENUMX
  7216. BFD_RELOC_TILEPRO_IMM16_X1_LO
  7217. ENUMX
  7218. BFD_RELOC_TILEPRO_IMM16_X0_HI
  7219. ENUMX
  7220. BFD_RELOC_TILEPRO_IMM16_X1_HI
  7221. ENUMX
  7222. BFD_RELOC_TILEPRO_IMM16_X0_HA
  7223. ENUMX
  7224. BFD_RELOC_TILEPRO_IMM16_X1_HA
  7225. ENUMX
  7226. BFD_RELOC_TILEPRO_IMM16_X0_PCREL
  7227. ENUMX
  7228. BFD_RELOC_TILEPRO_IMM16_X1_PCREL
  7229. ENUMX
  7230. BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
  7231. ENUMX
  7232. BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
  7233. ENUMX
  7234. BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
  7235. ENUMX
  7236. BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
  7237. ENUMX
  7238. BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
  7239. ENUMX
  7240. BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
  7241. ENUMX
  7242. BFD_RELOC_TILEPRO_IMM16_X0_GOT
  7243. ENUMX
  7244. BFD_RELOC_TILEPRO_IMM16_X1_GOT
  7245. ENUMX
  7246. BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
  7247. ENUMX
  7248. BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
  7249. ENUMX
  7250. BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
  7251. ENUMX
  7252. BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
  7253. ENUMX
  7254. BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
  7255. ENUMX
  7256. BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
  7257. ENUMX
  7258. BFD_RELOC_TILEPRO_MMSTART_X0
  7259. ENUMX
  7260. BFD_RELOC_TILEPRO_MMEND_X0
  7261. ENUMX
  7262. BFD_RELOC_TILEPRO_MMSTART_X1
  7263. ENUMX
  7264. BFD_RELOC_TILEPRO_MMEND_X1
  7265. ENUMX
  7266. BFD_RELOC_TILEPRO_SHAMT_X0
  7267. ENUMX
  7268. BFD_RELOC_TILEPRO_SHAMT_X1
  7269. ENUMX
  7270. BFD_RELOC_TILEPRO_SHAMT_Y0
  7271. ENUMX
  7272. BFD_RELOC_TILEPRO_SHAMT_Y1
  7273. ENUMX
  7274. BFD_RELOC_TILEPRO_TLS_GD_CALL
  7275. ENUMX
  7276. BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
  7277. ENUMX
  7278. BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
  7279. ENUMX
  7280. BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
  7281. ENUMX
  7282. BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
  7283. ENUMX
  7284. BFD_RELOC_TILEPRO_TLS_IE_LOAD
  7285. ENUMX
  7286. BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
  7287. ENUMX
  7288. BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
  7289. ENUMX
  7290. BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
  7291. ENUMX
  7292. BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
  7293. ENUMX
  7294. BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
  7295. ENUMX
  7296. BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
  7297. ENUMX
  7298. BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
  7299. ENUMX
  7300. BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
  7301. ENUMX
  7302. BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
  7303. ENUMX
  7304. BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
  7305. ENUMX
  7306. BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
  7307. ENUMX
  7308. BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
  7309. ENUMX
  7310. BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
  7311. ENUMX
  7312. BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
  7313. ENUMX
  7314. BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
  7315. ENUMX
  7316. BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
  7317. ENUMX
  7318. BFD_RELOC_TILEPRO_TLS_DTPMOD32
  7319. ENUMX
  7320. BFD_RELOC_TILEPRO_TLS_DTPOFF32
  7321. ENUMX
  7322. BFD_RELOC_TILEPRO_TLS_TPOFF32
  7323. ENUMX
  7324. BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
  7325. ENUMX
  7326. BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
  7327. ENUMX
  7328. BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
  7329. ENUMX
  7330. BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
  7331. ENUMX
  7332. BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
  7333. ENUMX
  7334. BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
  7335. ENUMX
  7336. BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
  7337. ENUMX
  7338. BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
  7339. ENUMDOC
  7340. Tilera TILEPro Relocations.
  7341. ENUM
  7342. BFD_RELOC_TILEGX_HW0
  7343. ENUMX
  7344. BFD_RELOC_TILEGX_HW1
  7345. ENUMX
  7346. BFD_RELOC_TILEGX_HW2
  7347. ENUMX
  7348. BFD_RELOC_TILEGX_HW3
  7349. ENUMX
  7350. BFD_RELOC_TILEGX_HW0_LAST
  7351. ENUMX
  7352. BFD_RELOC_TILEGX_HW1_LAST
  7353. ENUMX
  7354. BFD_RELOC_TILEGX_HW2_LAST
  7355. ENUMX
  7356. BFD_RELOC_TILEGX_COPY
  7357. ENUMX
  7358. BFD_RELOC_TILEGX_GLOB_DAT
  7359. ENUMX
  7360. BFD_RELOC_TILEGX_JMP_SLOT
  7361. ENUMX
  7362. BFD_RELOC_TILEGX_RELATIVE
  7363. ENUMX
  7364. BFD_RELOC_TILEGX_BROFF_X1
  7365. ENUMX
  7366. BFD_RELOC_TILEGX_JUMPOFF_X1
  7367. ENUMX
  7368. BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
  7369. ENUMX
  7370. BFD_RELOC_TILEGX_IMM8_X0
  7371. ENUMX
  7372. BFD_RELOC_TILEGX_IMM8_Y0
  7373. ENUMX
  7374. BFD_RELOC_TILEGX_IMM8_X1
  7375. ENUMX
  7376. BFD_RELOC_TILEGX_IMM8_Y1
  7377. ENUMX
  7378. BFD_RELOC_TILEGX_DEST_IMM8_X1
  7379. ENUMX
  7380. BFD_RELOC_TILEGX_MT_IMM14_X1
  7381. ENUMX
  7382. BFD_RELOC_TILEGX_MF_IMM14_X1
  7383. ENUMX
  7384. BFD_RELOC_TILEGX_MMSTART_X0
  7385. ENUMX
  7386. BFD_RELOC_TILEGX_MMEND_X0
  7387. ENUMX
  7388. BFD_RELOC_TILEGX_SHAMT_X0
  7389. ENUMX
  7390. BFD_RELOC_TILEGX_SHAMT_X1
  7391. ENUMX
  7392. BFD_RELOC_TILEGX_SHAMT_Y0
  7393. ENUMX
  7394. BFD_RELOC_TILEGX_SHAMT_Y1
  7395. ENUMX
  7396. BFD_RELOC_TILEGX_IMM16_X0_HW0
  7397. ENUMX
  7398. BFD_RELOC_TILEGX_IMM16_X1_HW0
  7399. ENUMX
  7400. BFD_RELOC_TILEGX_IMM16_X0_HW1
  7401. ENUMX
  7402. BFD_RELOC_TILEGX_IMM16_X1_HW1
  7403. ENUMX
  7404. BFD_RELOC_TILEGX_IMM16_X0_HW2
  7405. ENUMX
  7406. BFD_RELOC_TILEGX_IMM16_X1_HW2
  7407. ENUMX
  7408. BFD_RELOC_TILEGX_IMM16_X0_HW3
  7409. ENUMX
  7410. BFD_RELOC_TILEGX_IMM16_X1_HW3
  7411. ENUMX
  7412. BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
  7413. ENUMX
  7414. BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
  7415. ENUMX
  7416. BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
  7417. ENUMX
  7418. BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
  7419. ENUMX
  7420. BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
  7421. ENUMX
  7422. BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
  7423. ENUMX
  7424. BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
  7425. ENUMX
  7426. BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
  7427. ENUMX
  7428. BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
  7429. ENUMX
  7430. BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
  7431. ENUMX
  7432. BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
  7433. ENUMX
  7434. BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
  7435. ENUMX
  7436. BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
  7437. ENUMX
  7438. BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
  7439. ENUMX
  7440. BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
  7441. ENUMX
  7442. BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
  7443. ENUMX
  7444. BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
  7445. ENUMX
  7446. BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
  7447. ENUMX
  7448. BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
  7449. ENUMX
  7450. BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
  7451. ENUMX
  7452. BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
  7453. ENUMX
  7454. BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
  7455. ENUMX
  7456. BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
  7457. ENUMX
  7458. BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
  7459. ENUMX
  7460. BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
  7461. ENUMX
  7462. BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
  7463. ENUMX
  7464. BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
  7465. ENUMX
  7466. BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
  7467. ENUMX
  7468. BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
  7469. ENUMX
  7470. BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
  7471. ENUMX
  7472. BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
  7473. ENUMX
  7474. BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
  7475. ENUMX
  7476. BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
  7477. ENUMX
  7478. BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
  7479. ENUMX
  7480. BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
  7481. ENUMX
  7482. BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
  7483. ENUMX
  7484. BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
  7485. ENUMX
  7486. BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
  7487. ENUMX
  7488. BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
  7489. ENUMX
  7490. BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
  7491. ENUMX
  7492. BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
  7493. ENUMX
  7494. BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
  7495. ENUMX
  7496. BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
  7497. ENUMX
  7498. BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
  7499. ENUMX
  7500. BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
  7501. ENUMX
  7502. BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
  7503. ENUMX
  7504. BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
  7505. ENUMX
  7506. BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
  7507. ENUMX
  7508. BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
  7509. ENUMX
  7510. BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
  7511. ENUMX
  7512. BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
  7513. ENUMX
  7514. BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
  7515. ENUMX
  7516. BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
  7517. ENUMX
  7518. BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
  7519. ENUMX
  7520. BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
  7521. ENUMX
  7522. BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
  7523. ENUMX
  7524. BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
  7525. ENUMX
  7526. BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
  7527. ENUMX
  7528. BFD_RELOC_TILEGX_TLS_DTPMOD64
  7529. ENUMX
  7530. BFD_RELOC_TILEGX_TLS_DTPOFF64
  7531. ENUMX
  7532. BFD_RELOC_TILEGX_TLS_TPOFF64
  7533. ENUMX
  7534. BFD_RELOC_TILEGX_TLS_DTPMOD32
  7535. ENUMX
  7536. BFD_RELOC_TILEGX_TLS_DTPOFF32
  7537. ENUMX
  7538. BFD_RELOC_TILEGX_TLS_TPOFF32
  7539. ENUMX
  7540. BFD_RELOC_TILEGX_TLS_GD_CALL
  7541. ENUMX
  7542. BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
  7543. ENUMX
  7544. BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
  7545. ENUMX
  7546. BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
  7547. ENUMX
  7548. BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
  7549. ENUMX
  7550. BFD_RELOC_TILEGX_TLS_IE_LOAD
  7551. ENUMX
  7552. BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
  7553. ENUMX
  7554. BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
  7555. ENUMX
  7556. BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
  7557. ENUMX
  7558. BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
  7559. ENUMDOC
  7560. Tilera TILE-Gx Relocations.
  7561. ENUM
  7562. BFD_RELOC_BPF_64
  7563. ENUMX
  7564. BFD_RELOC_BPF_32
  7565. ENUMX
  7566. BFD_RELOC_BPF_16
  7567. ENUMX
  7568. BFD_RELOC_BPF_DISP16
  7569. ENUMX
  7570. BFD_RELOC_BPF_DISP32
  7571. ENUMDOC
  7572. Linux eBPF relocations.
  7573. ENUM
  7574. BFD_RELOC_EPIPHANY_SIMM8
  7575. ENUMDOC
  7576. Adapteva EPIPHANY - 8 bit signed pc-relative displacement
  7577. ENUM
  7578. BFD_RELOC_EPIPHANY_SIMM24
  7579. ENUMDOC
  7580. Adapteva EPIPHANY - 24 bit signed pc-relative displacement
  7581. ENUM
  7582. BFD_RELOC_EPIPHANY_HIGH
  7583. ENUMDOC
  7584. Adapteva EPIPHANY - 16 most-significant bits of absolute address
  7585. ENUM
  7586. BFD_RELOC_EPIPHANY_LOW
  7587. ENUMDOC
  7588. Adapteva EPIPHANY - 16 least-significant bits of absolute address
  7589. ENUM
  7590. BFD_RELOC_EPIPHANY_SIMM11
  7591. ENUMDOC
  7592. Adapteva EPIPHANY - 11 bit signed number - add/sub immediate
  7593. ENUM
  7594. BFD_RELOC_EPIPHANY_IMM11
  7595. ENUMDOC
  7596. Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement)
  7597. ENUM
  7598. BFD_RELOC_EPIPHANY_IMM8
  7599. ENUMDOC
  7600. Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
  7601. ENUM
  7602. BFD_RELOC_VISIUM_HI16
  7603. ENUMX
  7604. BFD_RELOC_VISIUM_LO16
  7605. ENUMX
  7606. BFD_RELOC_VISIUM_IM16
  7607. ENUMX
  7608. BFD_RELOC_VISIUM_REL16
  7609. ENUMX
  7610. BFD_RELOC_VISIUM_HI16_PCREL
  7611. ENUMX
  7612. BFD_RELOC_VISIUM_LO16_PCREL
  7613. ENUMX
  7614. BFD_RELOC_VISIUM_IM16_PCREL
  7615. ENUMDOC
  7616. Visium Relocations.
  7617. ENUM
  7618. BFD_RELOC_WASM32_LEB128
  7619. ENUMX
  7620. BFD_RELOC_WASM32_LEB128_GOT
  7621. ENUMX
  7622. BFD_RELOC_WASM32_LEB128_GOT_CODE
  7623. ENUMX
  7624. BFD_RELOC_WASM32_LEB128_PLT
  7625. ENUMX
  7626. BFD_RELOC_WASM32_PLT_INDEX
  7627. ENUMX
  7628. BFD_RELOC_WASM32_ABS32_CODE
  7629. ENUMX
  7630. BFD_RELOC_WASM32_COPY
  7631. ENUMX
  7632. BFD_RELOC_WASM32_CODE_POINTER
  7633. ENUMX
  7634. BFD_RELOC_WASM32_INDEX
  7635. ENUMX
  7636. BFD_RELOC_WASM32_PLT_SIG
  7637. ENUMDOC
  7638. WebAssembly relocations.
  7639. ENUM
  7640. BFD_RELOC_CKCORE_NONE
  7641. ENUMX
  7642. BFD_RELOC_CKCORE_ADDR32
  7643. ENUMX
  7644. BFD_RELOC_CKCORE_PCREL_IMM8BY4
  7645. ENUMX
  7646. BFD_RELOC_CKCORE_PCREL_IMM11BY2
  7647. ENUMX
  7648. BFD_RELOC_CKCORE_PCREL_IMM4BY2
  7649. ENUMX
  7650. BFD_RELOC_CKCORE_PCREL32
  7651. ENUMX
  7652. BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2
  7653. ENUMX
  7654. BFD_RELOC_CKCORE_GNU_VTINHERIT
  7655. ENUMX
  7656. BFD_RELOC_CKCORE_GNU_VTENTRY
  7657. ENUMX
  7658. BFD_RELOC_CKCORE_RELATIVE
  7659. ENUMX
  7660. BFD_RELOC_CKCORE_COPY
  7661. ENUMX
  7662. BFD_RELOC_CKCORE_GLOB_DAT
  7663. ENUMX
  7664. BFD_RELOC_CKCORE_JUMP_SLOT
  7665. ENUMX
  7666. BFD_RELOC_CKCORE_GOTOFF
  7667. ENUMX
  7668. BFD_RELOC_CKCORE_GOTPC
  7669. ENUMX
  7670. BFD_RELOC_CKCORE_GOT32
  7671. ENUMX
  7672. BFD_RELOC_CKCORE_PLT32
  7673. ENUMX
  7674. BFD_RELOC_CKCORE_ADDRGOT
  7675. ENUMX
  7676. BFD_RELOC_CKCORE_ADDRPLT
  7677. ENUMX
  7678. BFD_RELOC_CKCORE_PCREL_IMM26BY2
  7679. ENUMX
  7680. BFD_RELOC_CKCORE_PCREL_IMM16BY2
  7681. ENUMX
  7682. BFD_RELOC_CKCORE_PCREL_IMM16BY4
  7683. ENUMX
  7684. BFD_RELOC_CKCORE_PCREL_IMM10BY2
  7685. ENUMX
  7686. BFD_RELOC_CKCORE_PCREL_IMM10BY4
  7687. ENUMX
  7688. BFD_RELOC_CKCORE_ADDR_HI16
  7689. ENUMX
  7690. BFD_RELOC_CKCORE_ADDR_LO16
  7691. ENUMX
  7692. BFD_RELOC_CKCORE_GOTPC_HI16
  7693. ENUMX
  7694. BFD_RELOC_CKCORE_GOTPC_LO16
  7695. ENUMX
  7696. BFD_RELOC_CKCORE_GOTOFF_HI16
  7697. ENUMX
  7698. BFD_RELOC_CKCORE_GOTOFF_LO16
  7699. ENUMX
  7700. BFD_RELOC_CKCORE_GOT12
  7701. ENUMX
  7702. BFD_RELOC_CKCORE_GOT_HI16
  7703. ENUMX
  7704. BFD_RELOC_CKCORE_GOT_LO16
  7705. ENUMX
  7706. BFD_RELOC_CKCORE_PLT12
  7707. ENUMX
  7708. BFD_RELOC_CKCORE_PLT_HI16
  7709. ENUMX
  7710. BFD_RELOC_CKCORE_PLT_LO16
  7711. ENUMX
  7712. BFD_RELOC_CKCORE_ADDRGOT_HI16
  7713. ENUMX
  7714. BFD_RELOC_CKCORE_ADDRGOT_LO16
  7715. ENUMX
  7716. BFD_RELOC_CKCORE_ADDRPLT_HI16
  7717. ENUMX
  7718. BFD_RELOC_CKCORE_ADDRPLT_LO16
  7719. ENUMX
  7720. BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2
  7721. ENUMX
  7722. BFD_RELOC_CKCORE_TOFFSET_LO16
  7723. ENUMX
  7724. BFD_RELOC_CKCORE_DOFFSET_LO16
  7725. ENUMX
  7726. BFD_RELOC_CKCORE_PCREL_IMM18BY2
  7727. ENUMX
  7728. BFD_RELOC_CKCORE_DOFFSET_IMM18
  7729. ENUMX
  7730. BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
  7731. ENUMX
  7732. BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
  7733. ENUMX
  7734. BFD_RELOC_CKCORE_GOTOFF_IMM18
  7735. ENUMX
  7736. BFD_RELOC_CKCORE_GOT_IMM18BY4
  7737. ENUMX
  7738. BFD_RELOC_CKCORE_PLT_IMM18BY4
  7739. ENUMX
  7740. BFD_RELOC_CKCORE_PCREL_IMM7BY4
  7741. ENUMX
  7742. BFD_RELOC_CKCORE_TLS_LE32
  7743. ENUMX
  7744. BFD_RELOC_CKCORE_TLS_IE32
  7745. ENUMX
  7746. BFD_RELOC_CKCORE_TLS_GD32
  7747. ENUMX
  7748. BFD_RELOC_CKCORE_TLS_LDM32
  7749. ENUMX
  7750. BFD_RELOC_CKCORE_TLS_LDO32
  7751. ENUMX
  7752. BFD_RELOC_CKCORE_TLS_DTPMOD32
  7753. ENUMX
  7754. BFD_RELOC_CKCORE_TLS_DTPOFF32
  7755. ENUMX
  7756. BFD_RELOC_CKCORE_TLS_TPOFF32
  7757. ENUMX
  7758. BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
  7759. ENUMX
  7760. BFD_RELOC_CKCORE_NOJSRI
  7761. ENUMX
  7762. BFD_RELOC_CKCORE_CALLGRAPH
  7763. ENUMX
  7764. BFD_RELOC_CKCORE_IRELATIVE
  7765. ENUMX
  7766. BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4
  7767. ENUMX
  7768. BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4
  7769. ENUMDOC
  7770. C-SKY relocations.
  7771. ENUM
  7772. BFD_RELOC_S12Z_OPR
  7773. ENUMDOC
  7774. S12Z relocations.
  7775. ENUM
  7776. BFD_RELOC_LARCH_TLS_DTPMOD32
  7777. ENUMX
  7778. BFD_RELOC_LARCH_TLS_DTPREL32
  7779. ENUMX
  7780. BFD_RELOC_LARCH_TLS_DTPMOD64
  7781. ENUMX
  7782. BFD_RELOC_LARCH_TLS_DTPREL64
  7783. ENUMX
  7784. BFD_RELOC_LARCH_TLS_TPREL32
  7785. ENUMX
  7786. BFD_RELOC_LARCH_TLS_TPREL64
  7787. ENUMX
  7788. BFD_RELOC_LARCH_MARK_LA
  7789. ENUMX
  7790. BFD_RELOC_LARCH_MARK_PCREL
  7791. ENUMX
  7792. BFD_RELOC_LARCH_SOP_PUSH_PCREL
  7793. ENUMX
  7794. BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE
  7795. ENUMX
  7796. BFD_RELOC_LARCH_SOP_PUSH_DUP
  7797. ENUMX
  7798. BFD_RELOC_LARCH_SOP_PUSH_GPREL
  7799. ENUMX
  7800. BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL
  7801. ENUMX
  7802. BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT
  7803. ENUMX
  7804. BFD_RELOC_LARCH_SOP_PUSH_TLS_GD
  7805. ENUMX
  7806. BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL
  7807. ENUMX
  7808. BFD_RELOC_LARCH_SOP_ASSERT
  7809. ENUMX
  7810. BFD_RELOC_LARCH_SOP_NOT
  7811. ENUMX
  7812. BFD_RELOC_LARCH_SOP_SUB
  7813. ENUMX
  7814. BFD_RELOC_LARCH_SOP_SL
  7815. ENUMX
  7816. BFD_RELOC_LARCH_SOP_SR
  7817. ENUMX
  7818. BFD_RELOC_LARCH_SOP_ADD
  7819. ENUMX
  7820. BFD_RELOC_LARCH_SOP_AND
  7821. ENUMX
  7822. BFD_RELOC_LARCH_SOP_IF_ELSE
  7823. ENUMX
  7824. BFD_RELOC_LARCH_SOP_POP_32_S_10_5
  7825. ENUMX
  7826. BFD_RELOC_LARCH_SOP_POP_32_U_10_12
  7827. ENUMX
  7828. BFD_RELOC_LARCH_SOP_POP_32_S_10_12
  7829. ENUMX
  7830. BFD_RELOC_LARCH_SOP_POP_32_S_10_16
  7831. ENUMX
  7832. BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2
  7833. ENUMX
  7834. BFD_RELOC_LARCH_SOP_POP_32_S_5_20
  7835. ENUMX
  7836. BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2
  7837. ENUMX
  7838. BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2
  7839. ENUMX
  7840. BFD_RELOC_LARCH_SOP_POP_32_U
  7841. ENUMX
  7842. BFD_RELOC_LARCH_ADD8
  7843. ENUMX
  7844. BFD_RELOC_LARCH_ADD16
  7845. ENUMX
  7846. BFD_RELOC_LARCH_ADD24
  7847. ENUMX
  7848. BFD_RELOC_LARCH_ADD32
  7849. ENUMX
  7850. BFD_RELOC_LARCH_ADD64
  7851. ENUMX
  7852. BFD_RELOC_LARCH_SUB8
  7853. ENUMX
  7854. BFD_RELOC_LARCH_SUB16
  7855. ENUMX
  7856. BFD_RELOC_LARCH_SUB24
  7857. ENUMX
  7858. BFD_RELOC_LARCH_SUB32
  7859. ENUMX
  7860. BFD_RELOC_LARCH_SUB64
  7861. ENUMDOC
  7862. LARCH relocations.
  7863. ENDSENUM
  7864. BFD_RELOC_UNUSED
  7865. CODE_FRAGMENT
  7866. .
  7867. .typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
  7868. */
  7869. /*
  7870. FUNCTION
  7871. bfd_reloc_type_lookup
  7872. bfd_reloc_name_lookup
  7873. SYNOPSIS
  7874. reloc_howto_type *bfd_reloc_type_lookup
  7875. (bfd *abfd, bfd_reloc_code_real_type code);
  7876. reloc_howto_type *bfd_reloc_name_lookup
  7877. (bfd *abfd, const char *reloc_name);
  7878. DESCRIPTION
  7879. Return a pointer to a howto structure which, when
  7880. invoked, will perform the relocation @var{code} on data from the
  7881. architecture noted.
  7882. */
  7883. reloc_howto_type *
  7884. bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
  7885. {
  7886. return BFD_SEND (abfd, reloc_type_lookup, (abfd, code));
  7887. }
  7888. reloc_howto_type *
  7889. bfd_reloc_name_lookup (bfd *abfd, const char *reloc_name)
  7890. {
  7891. return BFD_SEND (abfd, reloc_name_lookup, (abfd, reloc_name));
  7892. }
  7893. static reloc_howto_type bfd_howto_32 =
  7894. HOWTO (0, 00, 2, 32, false, 0, complain_overflow_dont, 0, "VRT32", false, 0xffffffff, 0xffffffff, true);
  7895. /*
  7896. INTERNAL_FUNCTION
  7897. bfd_default_reloc_type_lookup
  7898. SYNOPSIS
  7899. reloc_howto_type *bfd_default_reloc_type_lookup
  7900. (bfd *abfd, bfd_reloc_code_real_type code);
  7901. DESCRIPTION
  7902. Provides a default relocation lookup routine for any architecture.
  7903. */
  7904. reloc_howto_type *
  7905. bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
  7906. {
  7907. /* Very limited support is provided for relocs in generic targets
  7908. such as elf32-little. FIXME: Should we always return NULL? */
  7909. if (code == BFD_RELOC_CTOR
  7910. && bfd_arch_bits_per_address (abfd) == 32)
  7911. return &bfd_howto_32;
  7912. return NULL;
  7913. }
  7914. /*
  7915. FUNCTION
  7916. bfd_get_reloc_code_name
  7917. SYNOPSIS
  7918. const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
  7919. DESCRIPTION
  7920. Provides a printable name for the supplied relocation code.
  7921. Useful mainly for printing error messages.
  7922. */
  7923. const char *
  7924. bfd_get_reloc_code_name (bfd_reloc_code_real_type code)
  7925. {
  7926. if (code > BFD_RELOC_UNUSED)
  7927. return 0;
  7928. return bfd_reloc_code_real_names[code];
  7929. }
  7930. /*
  7931. INTERNAL_FUNCTION
  7932. bfd_generic_relax_section
  7933. SYNOPSIS
  7934. bool bfd_generic_relax_section
  7935. (bfd *abfd,
  7936. asection *section,
  7937. struct bfd_link_info *,
  7938. bool *);
  7939. DESCRIPTION
  7940. Provides default handling for relaxing for back ends which
  7941. don't do relaxing.
  7942. */
  7943. bool
  7944. bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED,
  7945. asection *section ATTRIBUTE_UNUSED,
  7946. struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
  7947. bool *again)
  7948. {
  7949. if (bfd_link_relocatable (link_info))
  7950. (*link_info->callbacks->einfo)
  7951. (_("%P%F: --relax and -r may not be used together\n"));
  7952. *again = false;
  7953. return true;
  7954. }
  7955. /*
  7956. INTERNAL_FUNCTION
  7957. bfd_generic_gc_sections
  7958. SYNOPSIS
  7959. bool bfd_generic_gc_sections
  7960. (bfd *, struct bfd_link_info *);
  7961. DESCRIPTION
  7962. Provides default handling for relaxing for back ends which
  7963. don't do section gc -- i.e., does nothing.
  7964. */
  7965. bool
  7966. bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED,
  7967. struct bfd_link_info *info ATTRIBUTE_UNUSED)
  7968. {
  7969. return true;
  7970. }
  7971. /*
  7972. INTERNAL_FUNCTION
  7973. bfd_generic_lookup_section_flags
  7974. SYNOPSIS
  7975. bool bfd_generic_lookup_section_flags
  7976. (struct bfd_link_info *, struct flag_info *, asection *);
  7977. DESCRIPTION
  7978. Provides default handling for section flags lookup
  7979. -- i.e., does nothing.
  7980. Returns FALSE if the section should be omitted, otherwise TRUE.
  7981. */
  7982. bool
  7983. bfd_generic_lookup_section_flags (struct bfd_link_info *info ATTRIBUTE_UNUSED,
  7984. struct flag_info *flaginfo,
  7985. asection *section ATTRIBUTE_UNUSED)
  7986. {
  7987. if (flaginfo != NULL)
  7988. {
  7989. _bfd_error_handler (_("INPUT_SECTION_FLAGS are not supported"));
  7990. return false;
  7991. }
  7992. return true;
  7993. }
  7994. /*
  7995. INTERNAL_FUNCTION
  7996. bfd_generic_merge_sections
  7997. SYNOPSIS
  7998. bool bfd_generic_merge_sections
  7999. (bfd *, struct bfd_link_info *);
  8000. DESCRIPTION
  8001. Provides default handling for SEC_MERGE section merging for back ends
  8002. which don't have SEC_MERGE support -- i.e., does nothing.
  8003. */
  8004. bool
  8005. bfd_generic_merge_sections (bfd *abfd ATTRIBUTE_UNUSED,
  8006. struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
  8007. {
  8008. return true;
  8009. }
  8010. /*
  8011. INTERNAL_FUNCTION
  8012. bfd_generic_get_relocated_section_contents
  8013. SYNOPSIS
  8014. bfd_byte *bfd_generic_get_relocated_section_contents
  8015. (bfd *abfd,
  8016. struct bfd_link_info *link_info,
  8017. struct bfd_link_order *link_order,
  8018. bfd_byte *data,
  8019. bool relocatable,
  8020. asymbol **symbols);
  8021. DESCRIPTION
  8022. Provides default handling of relocation effort for back ends
  8023. which can't be bothered to do it efficiently.
  8024. */
  8025. bfd_byte *
  8026. bfd_generic_get_relocated_section_contents (bfd *abfd,
  8027. struct bfd_link_info *link_info,
  8028. struct bfd_link_order *link_order,
  8029. bfd_byte *data,
  8030. bool relocatable,
  8031. asymbol **symbols)
  8032. {
  8033. bfd *input_bfd = link_order->u.indirect.section->owner;
  8034. asection *input_section = link_order->u.indirect.section;
  8035. long reloc_size;
  8036. arelent **reloc_vector;
  8037. long reloc_count;
  8038. reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
  8039. if (reloc_size < 0)
  8040. return NULL;
  8041. /* Read in the section. */
  8042. if (!bfd_get_full_section_contents (input_bfd, input_section, &data))
  8043. return NULL;
  8044. if (data == NULL)
  8045. return NULL;
  8046. if (reloc_size == 0)
  8047. return data;
  8048. reloc_vector = (arelent **) bfd_malloc (reloc_size);
  8049. if (reloc_vector == NULL)
  8050. return NULL;
  8051. reloc_count = bfd_canonicalize_reloc (input_bfd,
  8052. input_section,
  8053. reloc_vector,
  8054. symbols);
  8055. if (reloc_count < 0)
  8056. goto error_return;
  8057. if (reloc_count > 0)
  8058. {
  8059. arelent **parent;
  8060. for (parent = reloc_vector; *parent != NULL; parent++)
  8061. {
  8062. char *error_message = NULL;
  8063. asymbol *symbol;
  8064. bfd_reloc_status_type r;
  8065. symbol = *(*parent)->sym_ptr_ptr;
  8066. /* PR ld/19628: A specially crafted input file
  8067. can result in a NULL symbol pointer here. */
  8068. if (symbol == NULL)
  8069. {
  8070. link_info->callbacks->einfo
  8071. /* xgettext:c-format */
  8072. (_("%X%P: %pB(%pA): error: relocation for offset %V has no value\n"),
  8073. abfd, input_section, (* parent)->address);
  8074. goto error_return;
  8075. }
  8076. /* Zap reloc field when the symbol is from a discarded
  8077. section, ignoring any addend. Do the same when called
  8078. from bfd_simple_get_relocated_section_contents for
  8079. undefined symbols in debug sections. This is to keep
  8080. debug info reasonably sane, in particular so that
  8081. DW_FORM_ref_addr to another file's .debug_info isn't
  8082. confused with an offset into the current file's
  8083. .debug_info. */
  8084. if ((symbol->section != NULL && discarded_section (symbol->section))
  8085. || (symbol->section == bfd_und_section_ptr
  8086. && (input_section->flags & SEC_DEBUGGING) != 0
  8087. && link_info->input_bfds == link_info->output_bfd))
  8088. {
  8089. bfd_vma off;
  8090. static reloc_howto_type none_howto
  8091. = HOWTO (0, 0, 0, 0, false, 0, complain_overflow_dont, NULL,
  8092. "unused", false, 0, 0, false);
  8093. off = ((*parent)->address
  8094. * bfd_octets_per_byte (input_bfd, input_section));
  8095. _bfd_clear_contents ((*parent)->howto, input_bfd,
  8096. input_section, data, off);
  8097. (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
  8098. (*parent)->addend = 0;
  8099. (*parent)->howto = &none_howto;
  8100. r = bfd_reloc_ok;
  8101. }
  8102. else
  8103. r = bfd_perform_relocation (input_bfd,
  8104. *parent,
  8105. data,
  8106. input_section,
  8107. relocatable ? abfd : NULL,
  8108. &error_message);
  8109. if (relocatable)
  8110. {
  8111. asection *os = input_section->output_section;
  8112. /* A partial link, so keep the relocs. */
  8113. os->orelocation[os->reloc_count] = *parent;
  8114. os->reloc_count++;
  8115. }
  8116. if (r != bfd_reloc_ok)
  8117. {
  8118. switch (r)
  8119. {
  8120. case bfd_reloc_undefined:
  8121. (*link_info->callbacks->undefined_symbol)
  8122. (link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
  8123. input_bfd, input_section, (*parent)->address, true);
  8124. break;
  8125. case bfd_reloc_dangerous:
  8126. BFD_ASSERT (error_message != NULL);
  8127. (*link_info->callbacks->reloc_dangerous)
  8128. (link_info, error_message,
  8129. input_bfd, input_section, (*parent)->address);
  8130. break;
  8131. case bfd_reloc_overflow:
  8132. (*link_info->callbacks->reloc_overflow)
  8133. (link_info, NULL,
  8134. bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
  8135. (*parent)->howto->name, (*parent)->addend,
  8136. input_bfd, input_section, (*parent)->address);
  8137. break;
  8138. case bfd_reloc_outofrange:
  8139. /* PR ld/13730:
  8140. This error can result when processing some partially
  8141. complete binaries. Do not abort, but issue an error
  8142. message instead. */
  8143. link_info->callbacks->einfo
  8144. /* xgettext:c-format */
  8145. (_("%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"),
  8146. abfd, input_section, * parent);
  8147. goto error_return;
  8148. case bfd_reloc_notsupported:
  8149. /* PR ld/17512
  8150. This error can result when processing a corrupt binary.
  8151. Do not abort. Issue an error message instead. */
  8152. link_info->callbacks->einfo
  8153. /* xgettext:c-format */
  8154. (_("%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"),
  8155. abfd, input_section, * parent);
  8156. goto error_return;
  8157. default:
  8158. /* PR 17512; file: 90c2a92e.
  8159. Report unexpected results, without aborting. */
  8160. link_info->callbacks->einfo
  8161. /* xgettext:c-format */
  8162. (_("%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"),
  8163. abfd, input_section, * parent, r);
  8164. break;
  8165. }
  8166. }
  8167. }
  8168. }
  8169. free (reloc_vector);
  8170. return data;
  8171. error_return:
  8172. free (reloc_vector);
  8173. return NULL;
  8174. }
  8175. /*
  8176. INTERNAL_FUNCTION
  8177. _bfd_generic_set_reloc
  8178. SYNOPSIS
  8179. void _bfd_generic_set_reloc
  8180. (bfd *abfd,
  8181. sec_ptr section,
  8182. arelent **relptr,
  8183. unsigned int count);
  8184. DESCRIPTION
  8185. Installs a new set of internal relocations in SECTION.
  8186. */
  8187. void
  8188. _bfd_generic_set_reloc (bfd *abfd ATTRIBUTE_UNUSED,
  8189. sec_ptr section,
  8190. arelent **relptr,
  8191. unsigned int count)
  8192. {
  8193. section->orelocation = relptr;
  8194. section->reloc_count = count;
  8195. }
  8196. /*
  8197. INTERNAL_FUNCTION
  8198. _bfd_unrecognized_reloc
  8199. SYNOPSIS
  8200. bool _bfd_unrecognized_reloc
  8201. (bfd * abfd,
  8202. sec_ptr section,
  8203. unsigned int r_type);
  8204. DESCRIPTION
  8205. Reports an unrecognized reloc.
  8206. Written as a function in order to reduce code duplication.
  8207. Returns FALSE so that it can be called from a return statement.
  8208. */
  8209. bool
  8210. _bfd_unrecognized_reloc (bfd * abfd, sec_ptr section, unsigned int r_type)
  8211. {
  8212. /* xgettext:c-format */
  8213. _bfd_error_handler (_("%pB: unrecognized relocation type %#x in section `%pA'"),
  8214. abfd, r_type, section);
  8215. /* PR 21803: Suggest the most likely cause of this error. */
  8216. _bfd_error_handler (_("is this version of the linker - %s - out of date ?"),
  8217. BFD_VERSION_STRING);
  8218. bfd_set_error (bfd_error_bad_value);
  8219. return false;
  8220. }
  8221. reloc_howto_type *
  8222. _bfd_norelocs_bfd_reloc_type_lookup
  8223. (bfd *abfd,
  8224. bfd_reloc_code_real_type code ATTRIBUTE_UNUSED)
  8225. {
  8226. return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd);
  8227. }
  8228. reloc_howto_type *
  8229. _bfd_norelocs_bfd_reloc_name_lookup (bfd *abfd,
  8230. const char *reloc_name ATTRIBUTE_UNUSED)
  8231. {
  8232. return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd);
  8233. }
  8234. long
  8235. _bfd_nodynamic_canonicalize_dynamic_reloc (bfd *abfd,
  8236. arelent **relp ATTRIBUTE_UNUSED,
  8237. asymbol **symp ATTRIBUTE_UNUSED)
  8238. {
  8239. return _bfd_long_bfd_n1_error (abfd);
  8240. }