diff options
Diffstat (limited to 'src/shader_recompiler/frontend/ir/ir_emitter.h')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/ir_emitter.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.h b/src/shader_recompiler/frontend/ir/ir_emitter.h index 6e29bf0e2..cb2a7710a 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.h +++ b/src/shader_recompiler/frontend/ir/ir_emitter.h | |||
| @@ -91,6 +91,7 @@ public: | |||
| 91 | [[nodiscard]] U1 GetSignFromOp(const Value& op); | 91 | [[nodiscard]] U1 GetSignFromOp(const Value& op); |
| 92 | [[nodiscard]] U1 GetCarryFromOp(const Value& op); | 92 | [[nodiscard]] U1 GetCarryFromOp(const Value& op); |
| 93 | [[nodiscard]] U1 GetOverflowFromOp(const Value& op); | 93 | [[nodiscard]] U1 GetOverflowFromOp(const Value& op); |
| 94 | [[nodiscard]] U1 GetSparseFromOp(const Value& op); | ||
| 94 | 95 | ||
| 95 | [[nodiscard]] Value CompositeConstruct(const Value& e1, const Value& e2); | 96 | [[nodiscard]] Value CompositeConstruct(const Value& e1, const Value& e2); |
| 96 | [[nodiscard]] Value CompositeConstruct(const Value& e1, const Value& e2, const Value& e3); | 97 | [[nodiscard]] Value CompositeConstruct(const Value& e1, const Value& e2, const Value& e3); |
| @@ -159,7 +160,7 @@ public: | |||
| 159 | [[nodiscard]] U32 BitFieldInsert(const U32& base, const U32& insert, const U32& offset, | 160 | [[nodiscard]] U32 BitFieldInsert(const U32& base, const U32& insert, const U32& offset, |
| 160 | const U32& count); | 161 | const U32& count); |
| 161 | [[nodiscard]] U32 BitFieldExtract(const U32& base, const U32& offset, const U32& count, | 162 | [[nodiscard]] U32 BitFieldExtract(const U32& base, const U32& offset, const U32& count, |
| 162 | bool is_signed); | 163 | bool is_signed = false); |
| 163 | [[nodiscard]] U32 BitReverse(const U32& value); | 164 | [[nodiscard]] U32 BitReverse(const U32& value); |
| 164 | [[nodiscard]] U32 BitCount(const U32& value); | 165 | [[nodiscard]] U32 BitCount(const U32& value); |
| 165 | [[nodiscard]] U32 BitwiseNot(const U32& value); | 166 | [[nodiscard]] U32 BitwiseNot(const U32& value); |
| @@ -186,10 +187,28 @@ public: | |||
| 186 | [[nodiscard]] U32U64 ConvertFToS(size_t bitsize, const F16F32F64& value); | 187 | [[nodiscard]] U32U64 ConvertFToS(size_t bitsize, const F16F32F64& value); |
| 187 | [[nodiscard]] U32U64 ConvertFToU(size_t bitsize, const F16F32F64& value); | 188 | [[nodiscard]] U32U64 ConvertFToU(size_t bitsize, const F16F32F64& value); |
| 188 | [[nodiscard]] U32U64 ConvertFToI(size_t bitsize, bool is_signed, const F16F32F64& value); | 189 | [[nodiscard]] U32U64 ConvertFToI(size_t bitsize, bool is_signed, const F16F32F64& value); |
| 190 | [[nodiscard]] F16F32F64 ConvertSToF(size_t bitsize, const U32U64& value); | ||
| 191 | [[nodiscard]] F16F32F64 ConvertUToF(size_t bitsize, const U32U64& value); | ||
| 192 | [[nodiscard]] F16F32F64 ConvertIToF(size_t bitsize, bool is_signed, const U32U64& value); | ||
| 189 | 193 | ||
| 190 | [[nodiscard]] U32U64 UConvert(size_t result_bitsize, const U32U64& value); | 194 | [[nodiscard]] U32U64 UConvert(size_t result_bitsize, const U32U64& value); |
| 191 | [[nodiscard]] F16F32F64 FPConvert(size_t result_bitsize, const F16F32F64& value); | 195 | [[nodiscard]] F16F32F64 FPConvert(size_t result_bitsize, const F16F32F64& value); |
| 192 | 196 | ||
| 197 | [[nodiscard]] Value ImageSampleImplicitLod(const Value& handle, const Value& coords, | ||
| 198 | const F32& bias, const Value& offset, | ||
| 199 | const F32& lod_clamp, TextureInstInfo info); | ||
| 200 | [[nodiscard]] Value ImageSampleExplicitLod(const Value& handle, const Value& coords, | ||
| 201 | const F32& lod, const Value& offset, | ||
| 202 | const F32& lod_clamp, TextureInstInfo info); | ||
| 203 | [[nodiscard]] F32 ImageSampleDrefImplicitLod(const Value& handle, const Value& coords, | ||
| 204 | const F32& dref, const F32& bias, | ||
| 205 | const Value& offset, const F32& lod_clamp, | ||
| 206 | TextureInstInfo info); | ||
| 207 | [[nodiscard]] F32 ImageSampleDrefExplicitLod(const Value& handle, const Value& coords, | ||
| 208 | const F32& dref, const F32& lod, | ||
| 209 | const Value& offset, const F32& lod_clamp, | ||
| 210 | TextureInstInfo info); | ||
| 211 | |||
| 193 | private: | 212 | private: |
| 194 | IR::Block::iterator insertion_point; | 213 | IR::Block::iterator insertion_point; |
| 195 | 214 | ||