@@ -581,7 +581,7 @@ bool Writer::createThunks(OutputSection *os, int margin) {
581581
582582// Create a code map for CHPE metadata.
583583void Writer::createECCodeMap () {
584- if (!ctx.symtabEC )
584+ if (!ctx.symtab . isEC () )
585585 return ;
586586
587587 // Clear the map in case we were're recomputing the map after adding
@@ -617,8 +617,7 @@ void Writer::createECCodeMap() {
617617
618618 closeRange ();
619619
620- Symbol *tableCountSym =
621- ctx.symtabEC ->findUnderscore (" __hybrid_code_map_count" );
620+ Symbol *tableCountSym = ctx.symtab .findUnderscore (" __hybrid_code_map_count" );
622621 cast<DefinedAbsolute>(tableCountSym)->setVA (codeMap.size ());
623622}
624623
@@ -2234,11 +2233,10 @@ void Writer::maybeAddRVATable(SymbolRVASet tableSymbols, StringRef tableSym,
22342233
22352234// Create CHPE metadata chunks.
22362235void Writer::createECChunks () {
2237- SymbolTable *symtab = ctx.symtabEC ;
2238- if (!symtab)
2236+ if (!ctx.symtab .isEC ())
22392237 return ;
22402238
2241- for (Symbol *s : symtab-> expSymbols ) {
2239+ for (Symbol *s : ctx. symtab . expSymbols ) {
22422240 auto sym = dyn_cast<Defined>(s);
22432241 if (!sym || !sym->getChunk ())
22442242 continue ;
@@ -2257,9 +2255,9 @@ void Writer::createECChunks() {
22572255 // we should use the #foo$hp_target symbol as the redirection target.
22582256 // First, try to look up the $hp_target symbol. If it can't be found,
22592257 // assume it's a regular function and look for #foo instead.
2260- Symbol *targetSym = symtab-> find ((targetName + " $hp_target" ).str ());
2258+ Symbol *targetSym = ctx. symtab . find ((targetName + " $hp_target" ).str ());
22612259 if (!targetSym)
2262- targetSym = symtab-> find (targetName);
2260+ targetSym = ctx. symtab . find (targetName);
22632261 Defined *t = dyn_cast_or_null<Defined>(targetSym);
22642262 if (t && isArm64EC (t->getChunk ()->getMachine ()))
22652263 exportThunks.push_back ({chunk, t});
@@ -2268,20 +2266,20 @@ void Writer::createECChunks() {
22682266
22692267 auto codeMapChunk = make<ECCodeMapChunk>(codeMap);
22702268 rdataSec->addChunk (codeMapChunk);
2271- Symbol *codeMapSym = symtab-> findUnderscore (" __hybrid_code_map" );
2269+ Symbol *codeMapSym = ctx. symtab . findUnderscore (" __hybrid_code_map" );
22722270 replaceSymbol<DefinedSynthetic>(codeMapSym, codeMapSym->getName (),
22732271 codeMapChunk);
22742272
22752273 CHPECodeRangesChunk *ranges = make<CHPECodeRangesChunk>(exportThunks);
22762274 rdataSec->addChunk (ranges);
22772275 Symbol *rangesSym =
2278- symtab-> findUnderscore (" __x64_code_ranges_to_entry_points" );
2276+ ctx. symtab . findUnderscore (" __x64_code_ranges_to_entry_points" );
22792277 replaceSymbol<DefinedSynthetic>(rangesSym, rangesSym->getName (), ranges);
22802278
22812279 CHPERedirectionChunk *entryPoints = make<CHPERedirectionChunk>(exportThunks);
22822280 a64xrmSec->addChunk (entryPoints);
22832281 Symbol *entryPointsSym =
2284- symtab-> findUnderscore (" __arm64x_redirection_metadata" );
2282+ ctx. symtab . findUnderscore (" __arm64x_redirection_metadata" );
22852283 replaceSymbol<DefinedSynthetic>(entryPointsSym, entryPointsSym->getName (),
22862284 entryPoints);
22872285}
@@ -2385,8 +2383,7 @@ void Writer::setSectionPermissions() {
23852383
23862384// Set symbols used by ARM64EC metadata.
23872385void Writer::setECSymbols () {
2388- SymbolTable *symtab = ctx.symtabEC ;
2389- if (!symtab)
2386+ if (!ctx.symtab .isEC ())
23902387 return ;
23912388
23922389 llvm::stable_sort (exportThunks, [](const std::pair<Chunk *, Defined *> &a,
@@ -2395,45 +2392,45 @@ void Writer::setECSymbols() {
23952392 });
23962393
23972394 ChunkRange &chpePdata = ctx.hybridSymtab ? hybridPdata : pdata;
2398- Symbol *rfeTableSym = symtab-> findUnderscore (" __arm64x_extra_rfe_table" );
2395+ Symbol *rfeTableSym = ctx. symtab . findUnderscore (" __arm64x_extra_rfe_table" );
23992396 replaceSymbol<DefinedSynthetic>(rfeTableSym, " __arm64x_extra_rfe_table" ,
24002397 chpePdata.first );
24012398
24022399 if (chpePdata.first ) {
24032400 Symbol *rfeSizeSym =
2404- symtab-> findUnderscore (" __arm64x_extra_rfe_table_size" );
2401+ ctx. symtab . findUnderscore (" __arm64x_extra_rfe_table_size" );
24052402 cast<DefinedAbsolute>(rfeSizeSym)
24062403 ->setVA (chpePdata.last ->getRVA () + chpePdata.last ->getSize () -
24072404 chpePdata.first ->getRVA ());
24082405 }
24092406
24102407 Symbol *rangesCountSym =
2411- symtab-> findUnderscore (" __x64_code_ranges_to_entry_points_count" );
2408+ ctx. symtab . findUnderscore (" __x64_code_ranges_to_entry_points_count" );
24122409 cast<DefinedAbsolute>(rangesCountSym)->setVA (exportThunks.size ());
24132410
24142411 Symbol *entryPointCountSym =
2415- symtab-> findUnderscore (" __arm64x_redirection_metadata_count" );
2412+ ctx. symtab . findUnderscore (" __arm64x_redirection_metadata_count" );
24162413 cast<DefinedAbsolute>(entryPointCountSym)->setVA (exportThunks.size ());
24172414
2418- Symbol *iatSym = symtab-> findUnderscore (" __hybrid_auxiliary_iat" );
2415+ Symbol *iatSym = ctx. symtab . findUnderscore (" __hybrid_auxiliary_iat" );
24192416 replaceSymbol<DefinedSynthetic>(iatSym, " __hybrid_auxiliary_iat" ,
24202417 idata.auxIat .empty () ? nullptr
24212418 : idata.auxIat .front ());
24222419
2423- Symbol *iatCopySym = symtab-> findUnderscore (" __hybrid_auxiliary_iat_copy" );
2420+ Symbol *iatCopySym = ctx. symtab . findUnderscore (" __hybrid_auxiliary_iat_copy" );
24242421 replaceSymbol<DefinedSynthetic>(
24252422 iatCopySym, " __hybrid_auxiliary_iat_copy" ,
24262423 idata.auxIatCopy .empty () ? nullptr : idata.auxIatCopy .front ());
24272424
24282425 Symbol *delayIatSym =
2429- symtab-> findUnderscore (" __hybrid_auxiliary_delayload_iat" );
2426+ ctx. symtab . findUnderscore (" __hybrid_auxiliary_delayload_iat" );
24302427 replaceSymbol<DefinedSynthetic>(
24312428 delayIatSym, " __hybrid_auxiliary_delayload_iat" ,
24322429 delayIdata.getAuxIat ().empty () ? nullptr
24332430 : delayIdata.getAuxIat ().front ());
24342431
24352432 Symbol *delayIatCopySym =
2436- symtab-> findUnderscore (" __hybrid_auxiliary_delayload_iat_copy" );
2433+ ctx. symtab . findUnderscore (" __hybrid_auxiliary_delayload_iat_copy" );
24372434 replaceSymbol<DefinedSynthetic>(
24382435 delayIatCopySym, " __hybrid_auxiliary_delayload_iat_copy" ,
24392436 delayIdata.getAuxIatCopy ().empty () ? nullptr
@@ -2448,16 +2445,16 @@ void Writer::setECSymbols() {
24482445 if (auto thunkChunk =
24492446 dyn_cast<ECExportThunkChunk>(altEntrySym->getChunk ()))
24502447 altEntrySym = thunkChunk->target ;
2451- symtab-> findUnderscore (" __arm64x_native_entrypoint" )
2448+ ctx. symtab . findUnderscore (" __arm64x_native_entrypoint" )
24522449 ->replaceKeepingName (altEntrySym, sizeof (SymbolUnion));
24532450 }
24542451
2455- if (symtab-> edataStart )
2452+ if (ctx. symtab . edataStart )
24562453 ctx.dynamicRelocs ->set (
24572454 dataDirOffset64 + EXPORT_TABLE * sizeof (data_directory) +
24582455 offsetof (data_directory, Size),
2459- symtab-> edataEnd ->getRVA () - symtab-> edataStart ->getRVA () +
2460- symtab-> edataEnd ->getSize ());
2456+ ctx. symtab . edataEnd ->getRVA () - ctx. symtab . edataStart ->getRVA () +
2457+ ctx. symtab . edataEnd ->getSize ());
24612458 if (hybridPdata.first ) {
24622459 ctx.dynamicRelocs ->set (
24632460 dataDirOffset64 + EXCEPTION_TABLE * sizeof (data_directory) +
0 commit comments