1//===------ riscv.cpp - Generic JITLink riscv 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 riscv objects.
10//
11//===----------------------------------------------------------------------===//
12
13#include "llvm/ExecutionEngine/JITLink/riscv.h"
14
15#define DEBUG_TYPE "jitlink"
16
17namespace llvm {
18namespace jitlink {
19namespace riscv {
20
21const char *getEdgeKindName(Edge::Kind K) {
22 switch (K) {
23 case R_RISCV_32:
24 return "R_RISCV_32";
25 case R_RISCV_64:
26 return "R_RISCV_64";
27 case R_RISCV_BRANCH:
28 return "R_RISCV_BRANCH";
29 case R_RISCV_JAL:
30 return "R_RISCV_JAL";
31 case R_RISCV_CALL:
32 return "R_RISCV_CALL";
33 case R_RISCV_CALL_PLT:
34 return "R_RISCV_CALL_PLT";
35 case R_RISCV_GOT_HI20:
36 return "R_RISCV_GOT_HI20";
37 case R_RISCV_PCREL_HI20:
38 return "R_RISCV_PCREL_HI20";
39 case R_RISCV_PCREL_LO12_I:
40 return "R_RISCV_PCREL_LO12_I";
41 case R_RISCV_PCREL_LO12_S:
42 return "R_RISCV_PCREL_LO12_S";
43 case R_RISCV_HI20:
44 return "R_RISCV_HI20";
45 case R_RISCV_LO12_I:
46 return "R_RISCV_LO12_I";
47 case R_RISCV_LO12_S:
48 return "R_RISCV_LO12_S";
49 case R_RISCV_ADD8:
50 return "R_RISCV_ADD8";
51 case R_RISCV_ADD16:
52 return "R_RISCV_ADD16";
53 case R_RISCV_ADD32:
54 return "R_RISCV_ADD32";
55 case R_RISCV_ADD64:
56 return "R_RISCV_ADD64";
57 case R_RISCV_SUB8:
58 return "R_RISCV_SUB8";
59 case R_RISCV_SUB16:
60 return "R_RISCV_SUB16";
61 case R_RISCV_SUB32:
62 return "R_RISCV_SUB32";
63 case R_RISCV_SUB64:
64 return "R_RISCV_SUB64";
65 case R_RISCV_RVC_BRANCH:
66 return "R_RISCV_RVC_BRANCH";
67 case R_RISCV_RVC_JUMP:
68 return "R_RISCV_RVC_JUMP";
69 case R_RISCV_SUB6:
70 return "R_RISCV_SUB6";
71 case R_RISCV_SET6:
72 return "R_RISCV_SET6";
73 case R_RISCV_SET8:
74 return "R_RISCV_SET8";
75 case R_RISCV_SET16:
76 return "R_RISCV_SET16";
77 case R_RISCV_SET32:
78 return "R_RISCV_SET32";
79 case R_RISCV_32_PCREL:
80 return "R_RISCV_32_PCREL";
81 case CallRelaxable:
82 return "CallRelaxable";
83 case AlignRelaxable:
84 return "AlignRelaxable";
85 case NegDelta32:
86 return "NegDelta32";
87 }
88 return getGenericEdgeKindName(K);
89}
90} // namespace riscv
91} // namespace jitlink
92} // namespace llvm
93