LLVM  8.0.1
MCWasmObjectWriter.h
Go to the documentation of this file.
1 //===-- llvm/MC/MCWasmObjectWriter.h - Wasm Object Writer -------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_MC_MCWASMOBJECTWRITER_H
11 #define LLVM_MC_MCWASMOBJECTWRITER_H
12 
13 #include "llvm/MC/MCObjectWriter.h"
14 #include <memory>
15 
16 namespace llvm {
17 
18 class MCFixup;
19 class MCValue;
20 class raw_pwrite_stream;
21 
23  const unsigned Is64Bit : 1;
24 
25 protected:
26  explicit MCWasmObjectTargetWriter(bool Is64Bit_);
27 
28 public:
29  virtual ~MCWasmObjectTargetWriter();
30 
31  virtual Triple::ObjectFormatType getFormat() const { return Triple::Wasm; }
32  static bool classof(const MCObjectTargetWriter *W) {
33  return W->getFormat() == Triple::Wasm;
34  }
35 
36  virtual unsigned getRelocType(const MCValue &Target,
37  const MCFixup &Fixup) const = 0;
38 
39  /// \name Accessors
40  /// @{
41  bool is64Bit() const { return Is64Bit; }
42  /// @}
43 };
44 
45 /// Construct a new Wasm writer instance.
46 ///
47 /// \param MOTW - The target specific Wasm writer subclass.
48 /// \param OS - The stream to write to.
49 /// \returns The constructed object writer.
50 std::unique_ptr<MCObjectWriter>
51 createWasmObjectWriter(std::unique_ptr<MCWasmObjectTargetWriter> MOTW,
52  raw_pwrite_stream &OS);
53 
54 } // namespace llvm
55 
56 #endif
This class represents lattice values for constants.
Definition: AllocatorList.h:24
This represents an "assembler immediate".
Definition: MCValue.h:40
virtual unsigned getRelocType(const MCValue &Target, const MCFixup &Fixup) const =0
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Definition: MCFixup.h:74
virtual Triple::ObjectFormatType getFormat() const =0
virtual Triple::ObjectFormatType getFormat() const
static bool classof(const MCObjectTargetWriter *W)
std::unique_ptr< MCObjectWriter > createWasmObjectWriter(std::unique_ptr< MCWasmObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
Construct a new Wasm writer instance.
PowerPC TLS Dynamic Call Fixup
Target - Wrapper for Target specific information.
Base class for classes that define behaviour that is specific to both the target and the object forma...
An abstract base class for streams implementations that also support a pwrite operation.
Definition: raw_ostream.h:341
ObjectFormatType
Definition: Triple.h:216