mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
ImmediateOperand.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <memory>
6
#include <utility>
7
8
#include "
mini-llvm/mir/Immediate.h
"
9
10
namespace
mini_llvm::mir
{
11
12
class
ImmediateOperand
{
13
public
:
14
explicit
ImmediateOperand
(std::unique_ptr<Immediate> imm) : imm_(std::move(imm)) {}
15
16
const
Immediate
&
operator*
()
const
{
17
return
*imm_;
18
}
19
20
const
Immediate
*
operator->
()
const
{
21
return
&*imm_;
22
}
23
24
void
set
(std::unique_ptr<Immediate> imm) {
25
imm_ = std::move(imm);
26
}
27
28
private
:
29
std::unique_ptr<Immediate> imm_;
30
};
31
32
}
// namespace mini_llvm::mir
Immediate.h
mini_llvm::mir::ImmediateOperand::set
void set(std::unique_ptr< Immediate > imm)
Definition
ImmediateOperand.h:24
mini_llvm::mir::ImmediateOperand::operator*
const Immediate & operator*() const
Definition
ImmediateOperand.h:16
mini_llvm::mir::ImmediateOperand::ImmediateOperand
ImmediateOperand(std::unique_ptr< Immediate > imm)
Definition
ImmediateOperand.h:14
mini_llvm::mir::ImmediateOperand::operator->
const Immediate * operator->() const
Definition
ImmediateOperand.h:20
mini_llvm::mir::Immediate
Definition
Immediate.h:15
mini_llvm::mir
Definition
BasicBlock.h:22
include
mini-llvm
mir
ImmediateOperand.h
Generated by
1.17.0