summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines
diff options
context:
space:
mode:
authortech4me <guiwanglong@gmail.com>2018-08-24 18:15:43 +0200
committertech4me <guiwanglong@gmail.com>2018-08-29 19:44:41 +0200
commita6dd577d0265179d766c93e375ad5f1e36b8db60 (patch)
tree9e4b2b6ffd70b285e8c3985862efd1636ddcd3d9 /src/video_core/engines
parentMerge pull request #1193 from lioncash/priv (diff)
downloadyuzu-a6dd577d0265179d766c93e375ad5f1e36b8db60.tar
yuzu-a6dd577d0265179d766c93e375ad5f1e36b8db60.tar.gz
yuzu-a6dd577d0265179d766c93e375ad5f1e36b8db60.tar.bz2
yuzu-a6dd577d0265179d766c93e375ad5f1e36b8db60.tar.lz
yuzu-a6dd577d0265179d766c93e375ad5f1e36b8db60.tar.xz
yuzu-a6dd577d0265179d766c93e375ad5f1e36b8db60.tar.zst
yuzu-a6dd577d0265179d766c93e375ad5f1e36b8db60.zip
Diffstat (limited to 'src/video_core/engines')
-rw-r--r--src/video_core/engines/shader_bytecode.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index 625ecdfcd..96b745db8 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -213,6 +213,18 @@ enum class XmadMode : u64 {
CBcc = 4,
};
+enum class IAdd3Mode : u64 {
+ None = 0,
+ RightShift = 1,
+ LeftShift = 2,
+};
+
+enum class IAdd3Height : u64 {
+ None = 0,
+ LowerHalfWord = 1,
+ UpperHalfWord = 2,
+};
+
enum class FlowCondition : u64 {
Always = 0xF,
Fcsm_Tr = 0x1C, // TODO(bunnei): What is this used for?
@@ -339,6 +351,16 @@ union Instruction {
} imnmx;
union {
+ BitField<31, 2, IAdd3Height> height_c;
+ BitField<33, 2, IAdd3Height> height_b;
+ BitField<35, 2, IAdd3Height> height_a;
+ BitField<37, 2, IAdd3Mode> mode;
+ BitField<49, 1, u64> neg_c;
+ BitField<50, 1, u64> neg_b;
+ BitField<51, 1, u64> neg_a;
+ } iadd3;
+
+ union {
BitField<54, 1, u64> saturate;
BitField<56, 1, u64> negate_a;
} iadd32i;
@@ -636,7 +658,7 @@ public:
IADD_C,
IADD_R,
IADD_IMM,
- IADD3_C,
+ IADD3_C, // Add 3 Integers
IADD3_R,
IADD3_IMM,
IADD32I,