summaryrefslogtreecommitdiffstats
path: root/courgette/disassembler_elf_32.h
diff options
context:
space:
mode:
Diffstat (limited to 'courgette/disassembler_elf_32.h')
-rw-r--r--courgette/disassembler_elf_32.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/courgette/disassembler_elf_32.h b/courgette/disassembler_elf_32.h
index b3f6e59..dc44ec5 100644
--- a/courgette/disassembler_elf_32.h
+++ b/courgette/disassembler_elf_32.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h"
#include "base/memory/scoped_vector.h"
+#include "courgette/assembly_program.h"
#include "courgette/disassembler.h"
#include "courgette/memory_allocator.h"
#include "courgette/types_elf.h"
@@ -54,8 +55,15 @@ class DisassemblerElf32 : public Disassembler {
offset_ = offset;
}
+ // Computes the relative jump's offset from the op in p.
virtual CheckBool ComputeRelativeTarget(const uint8* op_pointer) = 0;
+ // Emits the courgette instruction corresponding to the RVA type.
+ virtual CheckBool EmitInstruction(AssemblyProgram* program,
+ RVA target_rva) = 0;
+
+ virtual uint16 op_size() const = 0;
+
static bool IsLessThan(TypedRVA *a, TypedRVA *b) {
return a->rva() < b->rva();
}