LLVM
16.0.0git
lib
ExecutionEngine
JITLink
aarch64.cpp
Go to the documentation of this file.
1
//===---- aarch64.cpp - Generic JITLink aarch64 edge kinds, utilities -----===//
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
// Generic utilities for graphs representing aarch64 objects.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#include "
llvm/ExecutionEngine/JITLink/aarch64.h
"
14
15
#define DEBUG_TYPE "jitlink"
16
17
namespace
llvm
{
18
namespace
jitlink {
19
namespace
aarch64 {
20
21
const
uint8_t
NullGOTEntryContent
[8] = {0x00, 0x00, 0x00, 0x00,
22
0x00, 0x00, 0x00, 0x00};
23
24
const
uint8_t
StubContent
[8] = {
25
0x10, 0x00, 0x00, 0x58,
// LDR x16, <literal>
26
0x00, 0x02, 0x1f, 0xd6
// BR x16
27
};
28
29
const
char
*
getEdgeKindName
(
Edge::Kind
R) {
30
switch
(R) {
31
case
Branch26
:
32
return
"Branch26"
;
33
case
Pointer64
:
34
return
"Pointer64"
;
35
case
Pointer64Anon
:
36
return
"Pointer64Anon"
;
37
case
Page21
:
38
return
"Page21"
;
39
case
PageOffset12
:
40
return
"PageOffset12"
;
41
case
MoveWide16
:
42
return
"MoveWide16"
;
43
case
GOTPage21
:
44
return
"GOTPage21"
;
45
case
GOTPageOffset12
:
46
return
"GOTPageOffset12"
;
47
case
TLVPage21
:
48
return
"TLVPage21"
;
49
case
TLVPageOffset12
:
50
return
"TLVPageOffset12"
;
51
case
TLSDescPage21
:
52
return
"TLSDescPage21"
;
53
case
TLSDescPageOffset12
:
54
return
"TLSDescPageOffset12"
;
55
case
Delta32ToGOT
:
56
return
"Delta32ToGOT"
;
57
case
PairedAddend
:
58
return
"PairedAddend"
;
59
case
LDRLiteral19
:
60
return
"LDRLiteral19"
;
61
case
Delta32
:
62
return
"Delta32"
;
63
case
Delta64
:
64
return
"Delta64"
;
65
case
NegDelta32
:
66
return
"NegDelta32"
;
67
case
NegDelta64
:
68
return
"NegDelta64"
;
69
default
:
70
return
getGenericEdgeKindName
(
static_cast<
Edge::Kind
>
(R));
71
}
72
}
73
74
}
// namespace aarch64
75
}
// namespace jitlink
76
}
// namespace llvm
llvm::jitlink::aarch64::Page21
@ Page21
Definition:
aarch64.h:29
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::jitlink::aarch64::getEdgeKindName
const char * getEdgeKindName(Edge::Kind K)
Returns a string name for the given aarch64 edge.
Definition:
aarch64.cpp:29
llvm::jitlink::aarch64::TLVPage21
@ TLVPage21
Definition:
aarch64.h:34
aarch64.h
llvm::jitlink::aarch64::LDRLiteral19
@ LDRLiteral19
Definition:
aarch64.h:40
llvm::jitlink::aarch64::GOTPage21
@ GOTPage21
Definition:
aarch64.h:32
llvm::jitlink::aarch64::TLSDescPageOffset12
@ TLSDescPageOffset12
Definition:
aarch64.h:37
llvm::jitlink::aarch64::MoveWide16
@ MoveWide16
Definition:
aarch64.h:31
llvm::jitlink::aarch64::Delta64
@ Delta64
Definition:
aarch64.h:42
llvm::jitlink::getGenericEdgeKindName
const char * getGenericEdgeKindName(Edge::Kind K)
Returns the string name of the given generic edge kind, or "unknown" otherwise.
Definition:
JITLink.cpp:58
llvm::jitlink::aarch64::Branch26
@ Branch26
Definition:
aarch64.h:25
llvm::jitlink::aarch64::Delta32ToGOT
@ Delta32ToGOT
Definition:
aarch64.h:38
llvm::jitlink::aarch64::Pointer64
@ Pointer64
Definition:
aarch64.h:27
llvm::jitlink::aarch64::TLSDescPage21
@ TLSDescPage21
Definition:
aarch64.h:36
llvm::jitlink::aarch64::PairedAddend
@ PairedAddend
Definition:
aarch64.h:39
llvm::jitlink::aarch64::StubContent
const uint8_t StubContent[8]
AArch64 PLT stub content.
Definition:
aarch64.cpp:24
llvm::jitlink::aarch64::Delta32
@ Delta32
Definition:
aarch64.h:41
llvm::jitlink::aarch64::NegDelta64
@ NegDelta64
Definition:
aarch64.h:44
llvm::jitlink::aarch64::GOTPageOffset12
@ GOTPageOffset12
Definition:
aarch64.h:33
llvm::jitlink::aarch64::Pointer64Anon
@ Pointer64Anon
Definition:
aarch64.h:28
llvm::jitlink::aarch64::NullGOTEntryContent
const uint8_t NullGOTEntryContent[PointerSize]
AArch64 null pointer content.
Definition:
aarch64.cpp:21
llvm::jitlink::aarch64::TLVPageOffset12
@ TLVPageOffset12
Definition:
aarch64.h:35
llvm::jitlink::aarch64::PageOffset12
@ PageOffset12
Definition:
aarch64.h:30
llvm::jitlink::aarch64::NegDelta32
@ NegDelta32
Definition:
aarch64.h:43
llvm::jitlink::Edge::Kind
uint8_t Kind
Definition:
JITLink.h:61
Generated on Fri Aug 19 2022 02:05:05 for LLVM by
1.8.17