summaryrefslogtreecommitdiffstats
path: root/courgette/disassembler_elf_32_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'courgette/disassembler_elf_32_x86.h')
-rw-r--r--courgette/disassembler_elf_32_x86.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/courgette/disassembler_elf_32_x86.h b/courgette/disassembler_elf_32_x86.h
index 28de7cf..5e7cdff 100644
--- a/courgette/disassembler_elf_32_x86.h
+++ b/courgette/disassembler_elf_32_x86.h
@@ -16,6 +16,17 @@ class AssemblyProgram;
class DisassemblerElf32X86 : public DisassemblerElf32 {
public:
+ class TypedRVAX86 : public TypedRVA {
+ public:
+ explicit TypedRVAX86(RVA rva) : TypedRVA(rva) {
+ }
+
+ virtual CheckBool ComputeRelativeTarget(const uint8* op_pointer) OVERRIDE {
+ set_relative_target(Read32LittleEndian(op_pointer) + 4);
+ return true;
+ }
+ };
+
explicit DisassemblerElf32X86(const void* start, size_t length);
virtual ExecutableType kind() { return EXE_ELF_32_X86; }