mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
RISCVAddressDirective.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <cstdint>
6
#include <format>
7
#include <string>
8
#include <utility>
9
10
#include "
mini-llvm/mc/Directive.h
"
11
#include "
mini-llvm/mc/Symbol.h
"
12
#include "
mini-llvm/targets/riscv/mc/RISCVAddress.h
"
13
14
namespace
mini_llvm::mc
{
15
16
class
RISCVAddressDirective
final :
public
Directive
{
17
public
:
18
explicit
RISCVAddressDirective
(
RISCVAddress
addr
)
19
: addr_(std::move(
addr
)) {}
20
21
explicit
RISCVAddressDirective
(
Symbol
baseSymbol)
22
: addr_(std::move(baseSymbol)) {}
23
24
RISCVAddressDirective
(
Symbol
baseSymbol, int64_t offset)
25
: addr_(std::move(baseSymbol), offset) {}
26
27
const
RISCVAddress
&
addr
() const & {
28
return
addr_;
29
}
30
31
RISCVAddress
&&
addr
() && {
32
return
std::move(addr_);
33
}
34
35
void
setAddr
(
RISCVAddress
addr
) {
36
addr_ = std::move(
addr
);
37
}
38
39
std::string
format
()
const override
{
40
return
std::format(
".dword {}"
,
addr
());
41
}
42
43
private
:
44
RISCVAddress
addr_;
45
};
46
47
}
// namespace mini_llvm::mc
Directive.h
RISCVAddress.h
mini_llvm::mc::Directive
Definition
Directive.h:10
mini_llvm::mc::RISCVAddressDirective::RISCVAddressDirective
RISCVAddressDirective(RISCVAddress addr)
Definition
RISCVAddressDirective.h:18
mini_llvm::mc::RISCVAddressDirective::RISCVAddressDirective
RISCVAddressDirective(Symbol baseSymbol)
Definition
RISCVAddressDirective.h:21
mini_llvm::mc::RISCVAddressDirective::addr
const RISCVAddress & addr() const &
Definition
RISCVAddressDirective.h:27
mini_llvm::mc::RISCVAddressDirective::setAddr
void setAddr(RISCVAddress addr)
Definition
RISCVAddressDirective.h:35
mini_llvm::mc::RISCVAddressDirective::format
std::string format() const override
Definition
RISCVAddressDirective.h:39
mini_llvm::mc::RISCVAddressDirective::addr
RISCVAddress && addr() &&
Definition
RISCVAddressDirective.h:31
mini_llvm::mc::RISCVAddressDirective::RISCVAddressDirective
RISCVAddressDirective(Symbol baseSymbol, int64_t offset)
Definition
RISCVAddressDirective.h:24
mini_llvm::mc::RISCVAddress
Definition
RISCVAddress.h:18
mini_llvm::mc::Symbol
Definition
Symbol.h:16
Symbol.h
mini_llvm::mc
Definition
Directive.h:8
include
mini-llvm
targets
riscv
mc
RISCVAddressDirective.h
Generated by
1.17.0