[PATCH] D41658: [RISCV] Encode RISCV specific ELF e_flags to RISCV Binary by RISCVTargetStreamer

Ana Pazos via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 12 13:00:48 PST 2018


apazos added inline comments.


================
Comment at: lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp:73
+createRISCVObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI) {
+  return new RISCVTargetELFStreamer(S, STI);
+}
----------------
Should'nt we check for ELF format, that is the only one supported now, but may change later? 

const Triple &TT = STI.getTargetTriple();
  if (TT.isOSBinFormatELF())
    return new RISCVTargetELFStreamer(S);
  return nullptr;


================
Comment at: lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp:85
     TargetRegistry::RegisterMCSubtargetInfo(*T, createRISCVMCSubtargetInfo);
+    TargetRegistry::RegisterObjectTargetStreamer(
+        *T, createRISCVObjectTargetStreamer);
----------------
Reading MCStreamer.h I understand when we define a target streamer we need to define two streamers, ELF and Asm. Is it how you interpreted?

/// Target specific streamer interface. This is used so that targets can
/// implement support for target specific assembly directives.
///
/// If target foo wants to use this, it should implement 3 classes:
/// * FooTargetStreamer : public MCTargetStreamer
/// * FooTargetAsmStreamer : public FooTargetStreamer
/// * FooTargetELFStreamer : public FooTargetStreamer



================
Comment at: lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp:41
+MCELFStreamer &RISCVTargetELFStreamer::getStreamer() {
+  return static_cast<MCELFStreamer &>(Streamer);
+}
----------------
Shouldn't it be return static_cast<RISCVELFStreamer &>(Streamer);


Repository:
  rL LLVM

https://reviews.llvm.org/D41658





More information about the llvm-commits mailing list