mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
RegisterOperand.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/Register.h
"
9
#include "
mini-llvm/mir/RegisterClass.h
"
10
11
namespace
mini_llvm::mir
{
12
13
class
RegisterOperand
{
14
public
:
15
RegisterOperand
(
RegisterClass
Class
, std::shared_ptr<Register> reg)
16
: class_(
Class
), reg_(std::move(reg)) {}
17
18
RegisterClass
Class
()
const
{
19
return
class_;
20
}
21
22
Register
&
operator*
()
const
{
23
return
*reg_;
24
}
25
26
Register
*
operator->
()
const
{
27
return
&*reg_;
28
}
29
30
void
set
(std::shared_ptr<Register> reg) {
31
reg_ = std::move(reg);
32
}
33
34
private
:
35
RegisterClass
class_;
36
std::shared_ptr<Register> reg_;
37
};
38
39
}
// namespace mini_llvm::mir
RegisterClass.h
Register.h
mini_llvm::mir::RegisterOperand::operator->
Register * operator->() const
Definition
RegisterOperand.h:26
mini_llvm::mir::RegisterOperand::RegisterOperand
RegisterOperand(RegisterClass Class, std::shared_ptr< Register > reg)
Definition
RegisterOperand.h:15
mini_llvm::mir::RegisterOperand::set
void set(std::shared_ptr< Register > reg)
Definition
RegisterOperand.h:30
mini_llvm::mir::RegisterOperand::operator*
Register & operator*() const
Definition
RegisterOperand.h:22
mini_llvm::mir::RegisterOperand::Class
RegisterClass Class() const
Definition
RegisterOperand.h:18
mini_llvm::mir::Register
Definition
Register.h:14
mini_llvm::mir
Definition
BasicBlock.h:22
mini_llvm::mir::RegisterClass
RegisterClass
Definition
RegisterClass.h:7
include
mini-llvm
mir
RegisterOperand.h
Generated by
1.17.0