Coverage Report

Created: 2025-11-08 07:12

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/keystone/llvm/lib/MC/MCAsmBackend.cpp
Line
Count
Source
1
//===-- MCAsmBackend.cpp - Target MC Assembly Backend ----------------------==//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
10
#include "llvm/MC/MCAsmBackend.h"
11
#include "llvm/ADT/STLExtras.h"
12
#include "llvm/MC/MCFixupKindInfo.h"
13
using namespace llvm_ks;
14
15
128k
MCAsmBackend::MCAsmBackend() : HasDataInCodeSupport(false) {}
16
17
128k
MCAsmBackend::~MCAsmBackend() {}
18
19
6.79k
Optional<MCFixupKind> MCAsmBackend::getFixupKind(StringRef Name) const {
20
6.79k
  return None;
21
6.79k
}
22
23
594k
const MCFixupKindInfo &MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
24
594k
  static const MCFixupKindInfo Builtins[] = {
25
594k
      {"FK_Data_1", 0, 8, 0},
26
594k
      {"FK_Data_2", 0, 16, 0},
27
594k
      {"FK_Data_4", 0, 32, 0},
28
594k
      {"FK_Data_8", 0, 64, 0},
29
594k
      {"FK_PCRel_1", 0, 8, MCFixupKindInfo::FKF_IsPCRel},
30
594k
      {"FK_PCRel_2", 0, 16, MCFixupKindInfo::FKF_IsPCRel},
31
594k
      {"FK_PCRel_4", 0, 32, MCFixupKindInfo::FKF_IsPCRel},
32
594k
      {"FK_PCRel_8", 0, 64, MCFixupKindInfo::FKF_IsPCRel},
33
594k
      {"FK_GPRel_1", 0, 8, 0},
34
594k
      {"FK_GPRel_2", 0, 16, 0},
35
594k
      {"FK_GPRel_4", 0, 32, 0},
36
594k
      {"FK_GPRel_8", 0, 64, 0},
37
594k
      {"FK_SecRel_1", 0, 8, 0},
38
594k
      {"FK_SecRel_2", 0, 16, 0},
39
594k
      {"FK_SecRel_4", 0, 32, 0},
40
594k
      {"FK_SecRel_8", 0, 64, 0}};
41
42
594k
  assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind");
43
594k
  return Builtins[Kind];
44
594k
}
45
46
bool MCAsmBackend::fixupNeedsRelaxationAdvanced(
47
    const MCFixup &Fixup, bool Resolved, uint64_t Value,
48
19.8k
    const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const {
49
19.8k
  if (!Resolved)
50
542
    return true;
51
19.3k
  unsigned KsError;
52
19.3k
  return fixupNeedsRelaxation(Fixup, Value, DF, Layout, KsError);
53
19.8k
}