summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/ir_emitter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/frontend/ir/ir_emitter.h')
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.h b/src/shader_recompiler/frontend/ir/ir_emitter.h
index 72af5db37..8edb11154 100644
--- a/src/shader_recompiler/frontend/ir/ir_emitter.h
+++ b/src/shader_recompiler/frontend/ir/ir_emitter.h
@@ -29,6 +29,7 @@ public:
29 [[nodiscard]] U32 Imm32(s32 value) const; 29 [[nodiscard]] U32 Imm32(s32 value) const;
30 [[nodiscard]] F32 Imm32(f32 value) const; 30 [[nodiscard]] F32 Imm32(f32 value) const;
31 [[nodiscard]] U64 Imm64(u64 value) const; 31 [[nodiscard]] U64 Imm64(u64 value) const;
32 [[nodiscard]] U64 Imm64(s64 value) const;
32 [[nodiscard]] F64 Imm64(f64 value) const; 33 [[nodiscard]] F64 Imm64(f64 value) const;
33 34
34 void Branch(Block* label); 35 void Branch(Block* label);
@@ -170,7 +171,7 @@ public:
170 [[nodiscard]] U32U64 ISub(const U32U64& a, const U32U64& b); 171 [[nodiscard]] U32U64 ISub(const U32U64& a, const U32U64& b);
171 [[nodiscard]] U32 IMul(const U32& a, const U32& b); 172 [[nodiscard]] U32 IMul(const U32& a, const U32& b);
172 [[nodiscard]] U32U64 INeg(const U32U64& value); 173 [[nodiscard]] U32U64 INeg(const U32U64& value);
173 [[nodiscard]] U32 IAbs(const U32& value); 174 [[nodiscard]] U32U64 IAbs(const U32U64& value);
174 [[nodiscard]] U32U64 ShiftLeftLogical(const U32U64& base, const U32& shift); 175 [[nodiscard]] U32U64 ShiftLeftLogical(const U32U64& base, const U32& shift);
175 [[nodiscard]] U32U64 ShiftRightLogical(const U32U64& base, const U32& shift); 176 [[nodiscard]] U32U64 ShiftRightLogical(const U32U64& base, const U32& shift);
176 [[nodiscard]] U32U64 ShiftRightArithmetic(const U32U64& base, const U32& shift); 177 [[nodiscard]] U32U64 ShiftRightArithmetic(const U32U64& base, const U32& shift);
@@ -193,7 +194,7 @@ public:
193 [[nodiscard]] U32 UMax(const U32& a, const U32& b); 194 [[nodiscard]] U32 UMax(const U32& a, const U32& b);
194 195
195 [[nodiscard]] U1 ILessThan(const U32& lhs, const U32& rhs, bool is_signed); 196 [[nodiscard]] U1 ILessThan(const U32& lhs, const U32& rhs, bool is_signed);
196 [[nodiscard]] U1 IEqual(const U32& lhs, const U32& rhs); 197 [[nodiscard]] U1 IEqual(const U32U64& lhs, const U32U64& rhs);
197 [[nodiscard]] U1 ILessThanEqual(const U32& lhs, const U32& rhs, bool is_signed); 198 [[nodiscard]] U1 ILessThanEqual(const U32& lhs, const U32& rhs, bool is_signed);
198 [[nodiscard]] U1 IGreaterThan(const U32& lhs, const U32& rhs, bool is_signed); 199 [[nodiscard]] U1 IGreaterThan(const U32& lhs, const U32& rhs, bool is_signed);
199 [[nodiscard]] U1 INotEqual(const U32& lhs, const U32& rhs); 200 [[nodiscard]] U1 INotEqual(const U32& lhs, const U32& rhs);
@@ -207,9 +208,12 @@ public:
207 [[nodiscard]] U32U64 ConvertFToS(size_t bitsize, const F16F32F64& value); 208 [[nodiscard]] U32U64 ConvertFToS(size_t bitsize, const F16F32F64& value);
208 [[nodiscard]] U32U64 ConvertFToU(size_t bitsize, const F16F32F64& value); 209 [[nodiscard]] U32U64 ConvertFToU(size_t bitsize, const F16F32F64& value);
209 [[nodiscard]] U32U64 ConvertFToI(size_t bitsize, bool is_signed, const F16F32F64& value); 210 [[nodiscard]] U32U64 ConvertFToI(size_t bitsize, bool is_signed, const F16F32F64& value);
210 [[nodiscard]] F16F32F64 ConvertSToF(size_t bitsize, const U32U64& value); 211 [[nodiscard]] F16F32F64 ConvertSToF(size_t dest_bitsize, size_t src_bitsize,
211 [[nodiscard]] F16F32F64 ConvertUToF(size_t bitsize, const U32U64& value); 212 const Value& value);
212 [[nodiscard]] F16F32F64 ConvertIToF(size_t bitsize, bool is_signed, const U32U64& value); 213 [[nodiscard]] F16F32F64 ConvertUToF(size_t dest_bitsize, size_t src_bitsize,
214 const Value& value);
215 [[nodiscard]] F16F32F64 ConvertIToF(size_t dest_bitsize, size_t src_bitsize, bool is_signed,
216 const Value& value);
213 217
214 [[nodiscard]] U32U64 UConvert(size_t result_bitsize, const U32U64& value); 218 [[nodiscard]] U32U64 UConvert(size_t result_bitsize, const U32U64& value);
215 [[nodiscard]] F16F32F64 FPConvert(size_t result_bitsize, const F16F32F64& value); 219 [[nodiscard]] F16F32F64 FPConvert(size_t result_bitsize, const F16F32F64& value);