Skip to content

Commit 6f55b95

Browse files
chenx97MingcongBai
authored andcommitted
[mips] Fix Mips N64 detection and set -znotext as default
1 parent 32bd4c3 commit 6f55b95

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

lld/ELF/Driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1380,7 +1380,6 @@ static void readConfigs(opt::InputArgList &args) {
13801380
config->zStartStopGC =
13811381
getZFlag(args, "start-stop-gc", "nostart-stop-gc", true);
13821382
config->zStartStopVisibility = getZStartStopVisibility(args);
1383-
config->zText = getZFlag(args, "text", "notext", true);
13841383
config->zWxneeded = hasZOption(args, "wxneeded");
13851384
setUnresolvedSymbolPolicy(args);
13861385
config->power10Stubs = args.getLastArgValue(OPT_power10_stubs_eq) != "no";
@@ -1709,6 +1708,7 @@ static void setConfigs(opt::InputArgList &args) {
17091708
args.hasFlag(OPT_toc_optimize, OPT_no_toc_optimize, m == EM_PPC64);
17101709
config->pcRelOptimize =
17111710
args.hasFlag(OPT_pcrel_optimize, OPT_no_pcrel_optimize, m == EM_PPC64);
1711+
config->zText = getZFlag(args, "text", "notext", m != EM_MIPS);
17121712
}
17131713

17141714
static bool isFormatBinary(StringRef s) {

llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,15 +208,15 @@ void TargetLoweringObjectFileELF::Initialize(MCContext &Ctx,
208208
// that the eh_frame section can be read-only. DW.ref.personality will be
209209
// generated for relocation.
210210
PersonalityEncoding = dwarf::DW_EH_PE_indirect;
211-
// FIXME: The N64 ABI probably ought to use DW_EH_PE_sdata8 but we can't
212-
// identify N64 from just a triple.
213-
TTypeEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
214-
dwarf::DW_EH_PE_sdata4;
211+
static const auto Sdata = TgtM.getProgramPointerSize() < sizeof(uint64_t)
212+
? dwarf::DW_EH_PE_sdata4
213+
: dwarf::DW_EH_PE_sdata8;
214+
TTypeEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel | Sdata;
215215

216216
if (isPositionIndependent() &&
217217
(TgtM.Options.MCOptions.MipsPC64Relocation || TgtM.getTargetTriple().isMIPS32())) {
218-
PersonalityEncoding |= dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
219-
LSDAEncoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
218+
PersonalityEncoding |= dwarf::DW_EH_PE_pcrel | Sdata;
219+
LSDAEncoding = dwarf::DW_EH_PE_pcrel | Sdata;
220220
}
221221
break;
222222
case Triple::ppc64:

0 commit comments

Comments
 (0)