diff options
Diffstat (limited to 'courgette/disassembler_elf_32.h')
-rw-r--r-- | courgette/disassembler_elf_32.h | 8 |
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(); } |