2f5fe16e6d
D132262 tried to simplify `IsMetadataOrEHFrameSection` originally introduced in D127549 but caused a regression as `.quad` directives in ``` .section .note,"a",@note; note: .quad extern-note # extern is undefined .section .rodata,"a",@progbits; rodata: .quad extern-rodata # extern is undefined .section .nonalloc,"",@progbits; nw: .quad extern-nw ``` are incorrectly rejected: these differences may be link-time constants and are allowed in GNU assembler and LLVM MC's non-RISC-V ports. Relax the conditions to allow these cases. For A-B, A may be defined later, but this requiresFixups call has to eagerly make a decision. For now, emit ADD/SUB unless A is `.L*`. This euristic handles many temporary label differences for .debug_* and .apple_types sections. Ideally we should delay the decision of PC-relative vs ADD/SUB until A is defined. Reviewed By: compnerd Differential Revision: https://reviews.llvm.org/D145474 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
RISCVAsmBackend.cpp | ||
RISCVAsmBackend.h | ||
RISCVBaseInfo.cpp | ||
RISCVBaseInfo.h | ||
RISCVELFObjectWriter.cpp | ||
RISCVELFStreamer.cpp | ||
RISCVELFStreamer.h | ||
RISCVFixupKinds.h | ||
RISCVInstPrinter.cpp | ||
RISCVInstPrinter.h | ||
RISCVMatInt.cpp | ||
RISCVMatInt.h | ||
RISCVMCAsmInfo.cpp | ||
RISCVMCAsmInfo.h | ||
RISCVMCCodeEmitter.cpp | ||
RISCVMCExpr.cpp | ||
RISCVMCExpr.h | ||
RISCVMCObjectFileInfo.cpp | ||
RISCVMCObjectFileInfo.h | ||
RISCVMCTargetDesc.cpp | ||
RISCVMCTargetDesc.h | ||
RISCVTargetStreamer.cpp | ||
RISCVTargetStreamer.h |