mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
[WebAssembly] Update MCObjectWriter and associated interfaces after r315327
llvm-svn: 315335
This commit is contained in:
parent
703ceb23d9
commit
5a4fc044a6
@ -41,7 +41,8 @@ public:
|
|||||||
const MCValue &Target, MutableArrayRef<char> Data,
|
const MCValue &Target, MutableArrayRef<char> Data,
|
||||||
uint64_t Value, bool IsPCRel) const override;
|
uint64_t Value, bool IsPCRel) const override;
|
||||||
|
|
||||||
MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override;
|
std::unique_ptr<MCObjectWriter>
|
||||||
|
createObjectWriter(raw_pwrite_stream &OS) const override;
|
||||||
|
|
||||||
// No instruction requires relaxation
|
// No instruction requires relaxation
|
||||||
bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value,
|
bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value,
|
||||||
@ -82,7 +83,8 @@ public:
|
|||||||
const MCValue &Target, MutableArrayRef<char> Data,
|
const MCValue &Target, MutableArrayRef<char> Data,
|
||||||
uint64_t Value, bool IsPCRel) const override;
|
uint64_t Value, bool IsPCRel) const override;
|
||||||
|
|
||||||
MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override;
|
std::unique_ptr<MCObjectWriter>
|
||||||
|
createObjectWriter(raw_pwrite_stream &OS) const override;
|
||||||
|
|
||||||
// No instruction requires relaxation
|
// No instruction requires relaxation
|
||||||
bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value,
|
bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value,
|
||||||
@ -131,7 +133,7 @@ void WebAssemblyAsmBackendELF::applyFixup(const MCAssembler &Asm,
|
|||||||
Data[Offset + i] |= uint8_t((Value >> (i * 8)) & 0xff);
|
Data[Offset + i] |= uint8_t((Value >> (i * 8)) & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
MCObjectWriter *
|
std::unique_ptr<MCObjectWriter>
|
||||||
WebAssemblyAsmBackendELF::createObjectWriter(raw_pwrite_stream &OS) const {
|
WebAssemblyAsmBackendELF::createObjectWriter(raw_pwrite_stream &OS) const {
|
||||||
return createWebAssemblyELFObjectWriter(OS, Is64Bit, 0);
|
return createWebAssemblyELFObjectWriter(OS, Is64Bit, 0);
|
||||||
}
|
}
|
||||||
@ -191,7 +193,7 @@ void WebAssemblyAsmBackend::applyFixup(const MCAssembler &Asm,
|
|||||||
Data[Offset + i] |= uint8_t((Value >> (i * 8)) & 0xff);
|
Data[Offset + i] |= uint8_t((Value >> (i * 8)) & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
MCObjectWriter *
|
std::unique_ptr<MCObjectWriter>
|
||||||
WebAssemblyAsmBackend::createObjectWriter(raw_pwrite_stream &OS) const {
|
WebAssemblyAsmBackend::createObjectWriter(raw_pwrite_stream &OS) const {
|
||||||
return createWebAssemblyWasmObjectWriter(OS, Is64Bit);
|
return createWebAssemblyWasmObjectWriter(OS, Is64Bit);
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
|
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
|
||||||
#include "llvm/MC/MCELFObjectWriter.h"
|
#include "llvm/MC/MCELFObjectWriter.h"
|
||||||
#include "llvm/MC/MCFixup.h"
|
#include "llvm/MC/MCFixup.h"
|
||||||
|
#include "llvm/MC/MCObjectWriter.h"
|
||||||
#include "llvm/Support/ErrorHandling.h"
|
#include "llvm/Support/ErrorHandling.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
@ -58,9 +59,10 @@ unsigned WebAssemblyELFObjectWriter::getRelocType(MCContext &Ctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MCObjectWriter *llvm::createWebAssemblyELFObjectWriter(raw_pwrite_stream &OS,
|
std::unique_ptr<MCObjectWriter>
|
||||||
bool Is64Bit,
|
llvm::createWebAssemblyELFObjectWriter(raw_pwrite_stream &OS,
|
||||||
uint8_t OSABI) {
|
bool Is64Bit,
|
||||||
|
uint8_t OSABI) {
|
||||||
auto MOTW = llvm::make_unique<WebAssemblyELFObjectWriter>(Is64Bit, OSABI);
|
auto MOTW = llvm::make_unique<WebAssemblyELFObjectWriter>(Is64Bit, OSABI);
|
||||||
return createELFObjectWriter(std::move(MOTW), OS, /*IsLittleEndian=*/true);
|
return createELFObjectWriter(std::move(MOTW), OS, /*IsLittleEndian=*/true);
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "llvm/BinaryFormat/Wasm.h"
|
#include "llvm/BinaryFormat/Wasm.h"
|
||||||
#include "llvm/MC/MCInstrDesc.h"
|
#include "llvm/MC/MCInstrDesc.h"
|
||||||
#include "llvm/Support/DataTypes.h"
|
#include "llvm/Support/DataTypes.h"
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
|
||||||
@ -39,11 +40,13 @@ MCCodeEmitter *createWebAssemblyMCCodeEmitter(const MCInstrInfo &MCII);
|
|||||||
|
|
||||||
MCAsmBackend *createWebAssemblyAsmBackend(const Triple &TT);
|
MCAsmBackend *createWebAssemblyAsmBackend(const Triple &TT);
|
||||||
|
|
||||||
MCObjectWriter *createWebAssemblyELFObjectWriter(raw_pwrite_stream &OS,
|
std::unique_ptr<MCObjectWriter>
|
||||||
bool Is64Bit, uint8_t OSABI);
|
createWebAssemblyELFObjectWriter(raw_pwrite_stream &OS,
|
||||||
|
bool Is64Bit, uint8_t OSABI);
|
||||||
|
|
||||||
MCObjectWriter *createWebAssemblyWasmObjectWriter(raw_pwrite_stream &OS,
|
std::unique_ptr<MCObjectWriter>
|
||||||
bool Is64Bit);
|
createWebAssemblyWasmObjectWriter(raw_pwrite_stream &OS,
|
||||||
|
bool Is64Bit);
|
||||||
|
|
||||||
namespace WebAssembly {
|
namespace WebAssembly {
|
||||||
enum OperandType {
|
enum OperandType {
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "llvm/MC/MCAsmBackend.h"
|
#include "llvm/MC/MCAsmBackend.h"
|
||||||
#include "llvm/MC/MCFixup.h"
|
#include "llvm/MC/MCFixup.h"
|
||||||
#include "llvm/MC/MCFixupKindInfo.h"
|
#include "llvm/MC/MCFixupKindInfo.h"
|
||||||
|
#include "llvm/MC/MCObjectWriter.h"
|
||||||
#include "llvm/MC/MCSymbolWasm.h"
|
#include "llvm/MC/MCSymbolWasm.h"
|
||||||
#include "llvm/MC/MCWasmObjectWriter.h"
|
#include "llvm/MC/MCWasmObjectWriter.h"
|
||||||
#include "llvm/MC/MCValue.h"
|
#include "llvm/MC/MCValue.h"
|
||||||
@ -93,8 +94,9 @@ WebAssemblyWasmObjectWriter::getRelocType(const MCValue &Target,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MCObjectWriter *llvm::createWebAssemblyWasmObjectWriter(raw_pwrite_stream &OS,
|
std::unique_ptr<MCObjectWriter>
|
||||||
bool Is64Bit) {
|
llvm::createWebAssemblyWasmObjectWriter(raw_pwrite_stream &OS,
|
||||||
|
bool Is64Bit) {
|
||||||
auto MOTW = llvm::make_unique<WebAssemblyWasmObjectWriter>(Is64Bit);
|
auto MOTW = llvm::make_unique<WebAssemblyWasmObjectWriter>(Is64Bit);
|
||||||
return createWasmObjectWriter(std::move(MOTW), OS);
|
return createWasmObjectWriter(std::move(MOTW), OS);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user