PROLEAD
A Probing-Based Leakage Detection Tool for Hardware and Software
Loading...
Searching...
No Matches
Projects
PROLEAD
inc
Software
mulator
instruction.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Software/mulator/types.h
"
4
#include "
Software/mulator/mnemonics.h
"
5
#include "
Software/mulator/conditions.h
"
6
#include "
Software/mulator/registers.h
"
7
#include "
Software/mulator/architectures.h
"
8
#include "
Software/mulator/shift_types.h
"
9
10
namespace
mulator
11
{
12
13
struct
Instruction
14
{
15
Instruction
();
16
~Instruction
() =
default
;
17
18
u32
address
;
19
u8
size
;
20
u32
encoding
;
21
22
Mnemonic
name
;
23
24
Condition
condition
;
25
26
ShiftType
shift_type
;
27
u32
shift_amount
;
28
29
struct
30
{
31
bool
S
;
32
bool
wback
;
33
bool
index
;
34
bool
add
;
35
bool
unaligned_allowed
;
36
}
flags
;
37
38
enum class
OperandType
39
{
40
NONE
,
41
I
,
// immediate
42
R
,
// register
43
RI
,
// register, immediate
44
RR
,
// register, register
45
RRI
,
// register, register, immediate
46
RRR
,
// register, register, register
47
RRII
,
// register, register, immediate, immediate
48
RRRI
,
// register, register, register, immediate
49
RRRR
// register, register, register, register
50
}
operand_type
;
51
52
Register
Rd
;
53
Register
Rn
;
54
Register
Rm
;
55
Register
Ra
;
56
u32
imm
;
57
u32
imm2
;
58
59
//armv7e-m specific
60
Register
RdLo
;
61
Register
RdHi
;
62
63
bool
uses_immediate
()
const
;
64
bool
uses_only_registers
()
const
;
65
u32
get_register_count
()
const
;
66
u32
get_immediate_count
()
const
;
67
};
68
}
architectures.h
conditions.h
mnemonics.h
mulator
Definition:
architectures.h:7
mulator::Condition
Condition
Definition:
conditions.h:10
mulator::Register
Register
Definition:
registers.h:11
mulator::ShiftType
ShiftType
Definition:
shift_types.h:9
mulator::u32
uint32_t u32
Definition:
types.h:12
mulator::Mnemonic
Mnemonic
Definition:
mnemonics.h:10
mulator::u8
uint8_t u8
Definition:
types.h:10
registers.h
shift_types.h
mulator::Instruction
Definition:
instruction.h:14
mulator::Instruction::wback
bool wback
Definition:
instruction.h:32
mulator::Instruction::S
bool S
Definition:
instruction.h:31
mulator::Instruction::unaligned_allowed
bool unaligned_allowed
Definition:
instruction.h:35
mulator::Instruction::flags
struct mulator::Instruction::@1 flags
mulator::Instruction::size
u8 size
Definition:
instruction.h:19
mulator::Instruction::uses_immediate
bool uses_immediate() const
mulator::Instruction::imm2
u32 imm2
Definition:
instruction.h:57
mulator::Instruction::condition
Condition condition
Definition:
instruction.h:24
mulator::Instruction::index
bool index
Definition:
instruction.h:33
mulator::Instruction::get_register_count
u32 get_register_count() const
mulator::Instruction::Instruction
Instruction()
mulator::Instruction::Ra
Register Ra
Definition:
instruction.h:55
mulator::Instruction::address
u32 address
Definition:
instruction.h:18
mulator::Instruction::add
bool add
Definition:
instruction.h:34
mulator::Instruction::shift_amount
u32 shift_amount
Definition:
instruction.h:27
mulator::Instruction::Rd
Register Rd
Definition:
instruction.h:52
mulator::Instruction::~Instruction
~Instruction()=default
mulator::Instruction::get_immediate_count
u32 get_immediate_count() const
mulator::Instruction::Rn
Register Rn
Definition:
instruction.h:53
mulator::Instruction::uses_only_registers
bool uses_only_registers() const
mulator::Instruction::name
Mnemonic name
Definition:
instruction.h:22
mulator::Instruction::RdHi
Register RdHi
Definition:
instruction.h:61
mulator::Instruction::shift_type
ShiftType shift_type
Definition:
instruction.h:26
mulator::Instruction::OperandType
OperandType
Definition:
instruction.h:39
mulator::Instruction::OperandType::RI
@ RI
mulator::Instruction::OperandType::RRII
@ RRII
mulator::Instruction::OperandType::RRRI
@ RRRI
mulator::Instruction::OperandType::RRRR
@ RRRR
mulator::Instruction::OperandType::NONE
@ NONE
mulator::Instruction::OperandType::RRI
@ RRI
mulator::Instruction::OperandType::RR
@ RR
mulator::Instruction::OperandType::I
@ I
mulator::Instruction::OperandType::RRR
@ RRR
mulator::Instruction::OperandType::R
@ R
mulator::Instruction::imm
u32 imm
Definition:
instruction.h:56
mulator::Instruction::RdLo
Register RdLo
Definition:
instruction.h:60
mulator::Instruction::Rm
Register Rm
Definition:
instruction.h:54
mulator::Instruction::operand_type
enum mulator::Instruction::OperandType operand_type
mulator::Instruction::encoding
u32 encoding
Definition:
instruction.h:20
types.h
Generated by
1.9.6