LLVM
20.0.0git
lib
Target
AArch64
Disassembler
AArch64Disassembler.h
Go to the documentation of this file.
1
//===- AArch64Disassembler.h - Disassembler for AArch64 ---------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
//
10
//===----------------------------------------------------------------------===//
11
12
#ifndef LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H
13
#define LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H
14
15
#include "
llvm/MC/MCDisassembler/MCDisassembler.h
"
16
#include "
llvm/MC/MCInstrInfo.h
"
17
18
namespace
llvm
{
19
20
class
AArch64Disassembler
:
public
MCDisassembler
{
21
std::unique_ptr<const MCInstrInfo>
const
MCII;
22
23
public
:
24
AArch64Disassembler
(
const
MCSubtargetInfo
&
STI
,
MCContext
&Ctx,
25
MCInstrInfo
const
*MCII)
26
:
MCDisassembler
(
STI
, Ctx), MCII(MCII) {}
27
28
~AArch64Disassembler
()
override
=
default
;
29
30
MCDisassembler::DecodeStatus
31
getInstruction
(
MCInst
&Instr,
uint64_t
&
Size
,
ArrayRef<uint8_t>
Bytes,
32
uint64_t
Address
,
raw_ostream
&CStream)
const override
;
33
34
uint64_t
suggestBytesToSkip
(
ArrayRef<uint8_t>
Bytes,
35
uint64_t
Address
)
const override
;
36
};
37
38
}
// end namespace llvm
39
40
#endif
// LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H
Size
uint64_t Size
Definition:
ELFObjHandler.cpp:81
MCDisassembler.h
MCInstrInfo.h
llvm::AArch64Disassembler
Definition:
AArch64Disassembler.h:20
llvm::AArch64Disassembler::~AArch64Disassembler
~AArch64Disassembler() override=default
llvm::AArch64Disassembler::AArch64Disassembler
AArch64Disassembler(const MCSubtargetInfo &STI, MCContext &Ctx, MCInstrInfo const *MCII)
Definition:
AArch64Disassembler.h:24
llvm::AArch64Disassembler::getInstruction
MCDisassembler::DecodeStatus getInstruction(MCInst &Instr, uint64_t &Size, ArrayRef< uint8_t > Bytes, uint64_t Address, raw_ostream &CStream) const override
Returns the disassembly of a single instruction.
Definition:
AArch64Disassembler.cpp:224
llvm::AArch64Disassembler::suggestBytesToSkip
uint64_t suggestBytesToSkip(ArrayRef< uint8_t > Bytes, uint64_t Address) const override
Suggest a distance to skip in a buffer of data to find the next place to look for the start of an ins...
Definition:
AArch64Disassembler.cpp:289
llvm::ArrayRef
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition:
ArrayRef.h:41
llvm::MCContext
Context object for machine code objects.
Definition:
MCContext.h:83
llvm::MCDisassembler
Superclass for all disassemblers.
Definition:
MCDisassembler.h:84
llvm::MCDisassembler::STI
const MCSubtargetInfo & STI
Definition:
MCDisassembler.h:200
llvm::MCDisassembler::DecodeStatus
DecodeStatus
Ternary decode status.
Definition:
MCDisassembler.h:108
llvm::MCInst
Instances of this class represent a single low-level machine instruction.
Definition:
MCInst.h:184
llvm::MCInstrInfo
Interface to description of machine instruction set.
Definition:
MCInstrInfo.h:26
llvm::MCSubtargetInfo
Generic base class for all target subtargets.
Definition:
MCSubtargetInfo.h:76
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition:
raw_ostream.h:52
uint64_t
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::HighlightColor::Address
@ Address
Generated on Sun Dec 1 2024 22:45:56 for LLVM by
1.9.6