libTriton version 1.0 build 1588
Loading...
Searching...
No Matches
armOperandProperties.hpp
Go to the documentation of this file.
1
2/*
3** Copyright (C) - Triton
4**
5** This program is under the terms of the Apache License 2.0.
6*/
7
8#ifndef TRITON_ARMOPERANDPROPERTIES
9#define TRITON_ARMOPERANDPROPERTIES
10
11#include <string>
12
13#include <triton/archEnums.hpp>
14#include <triton/dllexport.hpp>
16
17
18
20namespace triton {
27 namespace arch {
35 namespace arm {
46 protected:
49
52
55
58
61
64
67
70
71 public:
73 TRITON_EXPORT ArmOperandProperties();
74
76 TRITON_EXPORT ArmOperandProperties(const ArmOperandProperties& other);
77
79 TRITON_EXPORT triton::arch::arm::shift_e getShiftType(void) const;
80
82 TRITON_EXPORT triton::uint32 getShiftImmediate(void) const;
83
85 TRITON_EXPORT triton::arch::register_e getShiftRegister(void) const;
86
88 TRITON_EXPORT triton::arch::arm::extend_e getExtendType(void) const;
89
91 TRITON_EXPORT triton::arch::arm::vas_e getVASType(void) const;
92
94 TRITON_EXPORT triton::sint32 getVectorIndex(void) const;
95
97 TRITON_EXPORT std::string getVASName(void) const;
98
100 TRITON_EXPORT triton::uint32 getVASSize(void) const;
101
103 TRITON_EXPORT triton::uint32 getExtendSize(void) const;
104
106 TRITON_EXPORT bool isSubtracted(void) const;
107
109 TRITON_EXPORT void setShiftType(triton::arch::arm::shift_e type);
110
112 TRITON_EXPORT void setShiftValue(triton::uint32 imm);
113
115 TRITON_EXPORT void setShiftValue(triton::arch::register_e reg);
116
118 TRITON_EXPORT void setExtendType(triton::arch::arm::extend_e type);
119
121 TRITON_EXPORT void setVASType(triton::arch::arm::vas_e type);
122
124 TRITON_EXPORT void setExtendedSize(triton::uint32 dstSize);
125
127 TRITON_EXPORT void setVectorIndex(triton::sint32 index);
128
130 TRITON_EXPORT void setSubtracted(bool value);
131
133 TRITON_EXPORT ArmOperandProperties& operator=(const ArmOperandProperties& other);
134 };
135
137 };
139 };
141};
142
143#endif /* TRITON_ARMOPERANDPROPERTIES */
This class is used to represent specific properties of an Arm operand.
triton::arch::register_e shiftValueRegister
The shift value register.
triton::arch::arm::shift_e shiftType
The shift type.
TRITON_EXPORT void setVectorIndex(triton::sint32 index)
Sets the vector index.
TRITON_EXPORT ArmOperandProperties & operator=(const ArmOperandProperties &other)
Copy an ArmOperandProperties.
TRITON_EXPORT triton::arch::arm::shift_e getShiftType(void) const
Returns the type of the shift.
TRITON_EXPORT triton::arch::register_e getShiftRegister(void) const
Returns the value of the shift register.
TRITON_EXPORT void setVASType(triton::arch::arm::vas_e type)
Sets the type of vector arrangement specifier.
triton::arch::arm::vas_e vasType
Vector arrangement specifier.
TRITON_EXPORT triton::arch::arm::extend_e getExtendType(void) const
Returns the type of the extend.
TRITON_EXPORT void setShiftType(triton::arch::arm::shift_e type)
Sets the type of the shift.
TRITON_EXPORT void setExtendedSize(triton::uint32 dstSize)
Sets the extended size (in bits) after extension.
TRITON_EXPORT std::string getVASName(void) const
Returns the vector arrangement specifier string name.
TRITON_EXPORT triton::uint32 getExtendSize(void) const
Returns the size (in bits) of the extend.
TRITON_EXPORT void setSubtracted(bool value)
Sets subtracted flag.
TRITON_EXPORT ArmOperandProperties()
Constructor.
TRITON_EXPORT void setExtendType(triton::arch::arm::extend_e type)
Sets the type of the extend.
bool subtracted
The subtracted flag. Used in memory access operands and determines whether this operand has to be add...
triton::uint32 shiftValueImmediate
The shift value immediate.
TRITON_EXPORT triton::sint32 getVectorIndex(void) const
Returns the vector index (-1 if irrelevant).
TRITON_EXPORT triton::uint32 getShiftImmediate(void) const
Returns the value of the shift immediate.
TRITON_EXPORT triton::arch::arm::vas_e getVASType(void) const
Returns the vector arrangement specifier.
TRITON_EXPORT bool isSubtracted(void) const
Returns true if the operand has to be subtracted when computing a memory access.
triton::uint32 extendSize
The extend size (in bits).
triton::sint32 vectorIndex
Vector index (-1 if irrelevant).
TRITON_EXPORT triton::uint32 getVASSize(void) const
Returns the vector arrangement specifier size (64 or 128 bits).
TRITON_EXPORT void setShiftValue(triton::uint32 imm)
Sets the value of the shift immediate.
triton::arch::arm::extend_e extendType
The extend type.
register_e
Types of register.
Definition: archEnums.hpp:64
shift_e
Types of shift.
Definition: archEnums.hpp:124
vas_e
Vector arrangement specifier.
Definition: archEnums.hpp:175
extend_e
Types of extend.
Definition: archEnums.hpp:140
std::int32_t sint32
signed 32-bits
Definition: tritonTypes.hpp:79
std::uint32_t uint32
unisgned 32-bits
Definition: tritonTypes.hpp:39
The Triton namespace.