| Index: src/assembler.h
|
| diff --git a/src/assembler.h b/src/assembler.h
|
| index 37963c4c393794c07424c44832855ecd51b19f37..dc706683ea676cc8c21445ab753c5f700c03e2b0 100644
|
| --- a/src/assembler.h
|
| +++ b/src/assembler.h
|
| @@ -35,7 +35,6 @@ class Assembler;
|
| class AssemblerFixup;
|
| class AssemblerBuffer;
|
| class ConstantRelocatable;
|
| -class MemoryRegion;
|
|
|
| // Assembler fixups are positions in generated code that hold relocation
|
| // information that needs to be processed before finalizing the code
|
| @@ -45,7 +44,6 @@ class AssemblerFixup {
|
| AssemblerFixup &operator=(const AssemblerFixup &) = delete;
|
|
|
| public:
|
| - virtual void Process(const MemoryRegion ®ion, intptr_t position) = 0;
|
|
|
| // It would be ideal if the destructor method could be made private,
|
| // but the g++ compiler complains when this is subclassed.
|
| @@ -109,12 +107,6 @@ public:
|
| intptr_t Size() const { return cursor_ - contents_; }
|
| uintptr_t contents() const { return contents_; }
|
|
|
| - // Copy the assembled instructions into the specified memory block
|
| - // and apply all fixups.
|
| - // TODO(jvoung): This will be different. We'll be writing the text
|
| - // and reloc section to a file?
|
| - void FinalizeInstructions(const MemoryRegion ®ion);
|
| -
|
| // To emit an instruction to the assembler buffer, the EnsureCapacity helper
|
| // must be used to guarantee that the underlying data area is big enough to
|
| // hold the emitted instruction. Usage:
|
| @@ -189,9 +181,6 @@ private:
|
| return (limit_ - contents_) + kMinimumGap;
|
| }
|
|
|
| - // Process the fixup chain.
|
| - void ProcessFixups(const MemoryRegion ®ion);
|
| -
|
| // Compute the limit based on the data area and the capacity. See
|
| // description of kMinimumGap for the reasoning behind the value.
|
| static uintptr_t ComputeLimit(uintptr_t data, intptr_t capacity) {
|
| @@ -226,8 +215,20 @@ public:
|
| // Allocate data of type T using the per-Assembler allocator.
|
| template <typename T> T *Allocate() { return Allocator.Allocate<T>(); }
|
|
|
| + // Align the tail end of the function to the required target alignment.
|
| + virtual void alignFunction() = 0;
|
| +
|
| + virtual SizeT getBundleAlignLog2Bytes() const = 0;
|
| +
|
| + virtual llvm::ArrayRef<uint8_t> getNonExecBundlePadding() const = 0;
|
| +
|
| + // Mark the current text location as the start of a CFG node
|
| + // (represented by NodeNumber).
|
| virtual void BindCfgNodeLabel(SizeT NodeNumber) = 0;
|
|
|
| + // Return a view of all the bytes of code for the current function.
|
| + llvm::StringRef getBufferView() const;
|
| +
|
| void emitIASBytes(GlobalContext *Ctx) const;
|
|
|
| private:
|
|
|