1#ifndef ROSE_BinaryAnalysis_Disassembler_Jvm_H
2#define ROSE_BinaryAnalysis_Disassembler_Jvm_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
6#include <Rose/BinaryAnalysis/Architecture/BasicTypes.h>
7#include <Rose/BinaryAnalysis/Disassembler/Base.h>
8#include <boost/serialization/access.hpp>
9#include <boost/serialization/base_object.hpp>
12namespace BinaryAnalysis {
13namespace Disassembler {
48 size_t appendTableswitch(
const MemoryMap::Ptr &map, rose_addr_t start,
50 size_t appendLookupswitch(
const MemoryMap::Ptr &map, rose_addr_t start,
57 rose_addr_t codeOffset_;
60 rose_addr_t codeOffset();
61 void codeOffset(rose_addr_t offset);
66#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
68 friend class boost::serialization::access;
71 void serialize(S &s,
const unsigned ) {
Virtual base class for instruction disassemblers.
Exception thrown by the disassemblers.
virtual SgAsmInstruction * makeUnknownInstruction(const Disassembler::Exception &) override
Makes an unknown instruction from an exception.
static Ptr instance(const Architecture::BaseConstPtr &)
Allocating constructor.
virtual Base::Ptr clone() const override
Creates a new copy of a disassembler.
virtual SgAsmInstruction * disassembleOne(const MemoryMap::Ptr &, rose_addr_t va, AddressSet *successors=nullptr) override
This is the lowest level disassembly function and is implemented in the architecture-specific subclas...
Reference-counting intrusive smart pointer.
Base class for machine instructions.
List of operands for an instruction.
std::shared_ptr< const Base > BaseConstPtr
Reference counted pointer for Architecture::Base.