ROSE 0.11.145.147
Amd64.h
1#ifndef ROSE_BinaryAnalysis_Architecture_Amd64_H
2#define ROSE_BinaryAnalysis_Architecture_Amd64_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <Rose/BinaryAnalysis/Architecture/X86.h>
6
7namespace Rose {
8namespace BinaryAnalysis {
9namespace Architecture {
10
42class Amd64: public X86 {
43public:
44 using Ptr = Amd64Ptr;
45
46protected:
47 Amd64(); // use `instance` instead
48public:
49 ~Amd64();
50
51public:
53 static Ptr instance();
54
55public:
59 bool matchesHeader(SgAsmGenericHeader*) const override;
61
62protected:
64};
65
66} // namespace
67} // namespace
68} // namespace
69
70#endif
71#endif
Information about alignments.
Definition Alignment.h:16
Architecture-specific information for x86-64, x86_64, x64, amd64, Intel 64.
Definition Amd64.h:42
RegisterDictionary::Ptr registerDictionary() const override
Property: Register dictionary.
static Ptr instance()
Allocating constructor.
const CallingConvention::Dictionary & callingConventions() const override
Property: Calling convention definitions.
Alignment instructionAlignment() const override
Alignment for encoded machine instructions.
bool matchesHeader(SgAsmGenericHeader *) const override
Tests whether this architecture matches a file header.
Sawyer::Container::Interval< size_t > bytesPerInstruction() const override
Valid sizes for encoded machine instructions.
Common base class for all x86 architectures.
Range of values delimited by endpoints.
Definition Interval.h:31
Base class for container file headers.
std::shared_ptr< Amd64 > Amd64Ptr
Reference counted pointer for Amd64.
std::vector< DefinitionPtr > Dictionary
An ordered collection of calling convention definitions.
The ROSE library.
const char * Architecture(int64_t)
Convert Rose::BinaryAnalysis::Disassembler::Mips::Decoder::Architecture enum constant to a string.