ROSE 0.11.145.192
Unparser/X86.h
1#ifndef ROSE_BinaryAnalysis_Unparser_X86_H
2#define ROSE_BinaryAnalysis_Unparser_X86_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <Rose/BinaryAnalysis/Unparser/Base.h>
6
7namespace Rose {
8namespace BinaryAnalysis {
9namespace Unparser {
10
12struct X86Settings: public Settings {};
13
15class X86: public Base {
16 X86Settings settings_;
17
18protected:
19 explicit X86(const Architecture::BaseConstPtr&, const X86Settings&);
20
21public:
22 ~X86();
23
24public:
25 static Ptr instance(const Architecture::BaseConstPtr&, const X86Settings& = X86Settings());
26
27 Ptr copy() const override;
28
29 const X86Settings& settings() const override { return settings_; }
30 X86Settings& settings() override { return settings_; }
31
32protected:
33 void emitInstructionMnemonic(std::ostream&, SgAsmInstruction*, State&) const override;
34 void emitTypeName(std::ostream&, SgAsmType*, State&) const override;
35 std::vector<std::string> emitMemoryReferenceExpression(std::ostream&, SgAsmMemoryReferenceExpression*, State&) const override;
36 std::vector<std::string> emitIndirectRegisterExpression(std::ostream&, SgAsmIndirectRegisterExpression*, State&) const override;
37};
38
39} // namespace
40} // namespace
41} // namespace
42
43#endif
44#endif
Abstract base class for unparsers.
Unparser for x86 instruction sets.
X86Settings & settings() override
Property: Settings associated with this unparser.
void emitTypeName(std::ostream &, SgAsmType *, State &) const override
Mid-level unparser function.
std::vector< std::string > emitMemoryReferenceExpression(std::ostream &, SgAsmMemoryReferenceExpression *, State &) const override
Mid-level unparser function.
std::vector< std::string > emitIndirectRegisterExpression(std::ostream &, SgAsmIndirectRegisterExpression *, State &) const override
Mid-level unparser function.
void emitInstructionMnemonic(std::ostream &, SgAsmInstruction *, State &) const override
Mid-level unparser function.
const X86Settings & settings() const override
Property: Settings associated with this unparser.
Registers accessed indirectly.
Base class for machine instructions.
Reference to memory locations.
Base class for binary types.
std::shared_ptr< const Base > BaseConstPtr
Reference counted pointer for Architecture::Base.
The ROSE library.
Settings that control unparsing.
Settings specific to the x86 unparser.