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>
7 #include <Rose/BinaryAnalysis/BasicTypes.h>
10 namespace BinaryAnalysis {
23 class X86:
public Base {
28 : settings_(settings) {}
32 return Ptr(
new X86(settings));
35 Ptr copy()
const override {
36 return instance(settings());
39 const X86Settings& settings()
const override {
return settings_; }
40 X86Settings& settings()
override {
return settings_; }
43 void emitInstructionMnemonic(std::ostream&,
SgAsmInstruction*, State&)
const override;
44 void emitOperandBody(std::ostream&,
SgAsmExpression*, State&)
const override;
45 void emitTypeName(std::ostream&,
SgAsmType*, State&)
const override;
Base class for machine instructions.
Sawyer::SharedPointer< RegisterDictionary > RegisterDictionaryPtr
Reference counting pointer.
Main namespace for the ROSE library.
Settings that control unparsing.
Settings specific to the x86 unparser.
Represents one Intel x86 machine instruction.
Base class for expressions.
Base class for binary types.
Unparser for x86 instruction sets.