summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/shader_bytecode.h
diff options
context:
space:
mode:
authorLaku <Laku@users.noreply.github.com>2018-08-22 09:02:18 +0200
committerLaku <Laku@users.noreply.github.com>2018-08-22 09:09:44 +0200
commit8e8326595f7ad5bf6b2d7ac1110504f97f7b3138 (patch)
treef966a703ff21cca2f7aeff583b683e685ec18d69 /src/video_core/engines/shader_bytecode.h
parentMerge pull request #1136 from tech4me/master (diff)
downloadyuzu-8e8326595f7ad5bf6b2d7ac1110504f97f7b3138.tar
yuzu-8e8326595f7ad5bf6b2d7ac1110504f97f7b3138.tar.gz
yuzu-8e8326595f7ad5bf6b2d7ac1110504f97f7b3138.tar.bz2
yuzu-8e8326595f7ad5bf6b2d7ac1110504f97f7b3138.tar.lz
yuzu-8e8326595f7ad5bf6b2d7ac1110504f97f7b3138.tar.xz
yuzu-8e8326595f7ad5bf6b2d7ac1110504f97f7b3138.tar.zst
yuzu-8e8326595f7ad5bf6b2d7ac1110504f97f7b3138.zip
Diffstat (limited to 'src/video_core/engines/shader_bytecode.h')
-rw-r--r--src/video_core/engines/shader_bytecode.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index 67194b0e3..a36df65f9 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -280,6 +280,19 @@ union Instruction {
BitField<56, 1, u64> invert_b;
} lop32i;
+ union {
+ BitField<28, 8, u64> imm_lut28;
+ BitField<48, 8, u64> imm_lut48;
+
+ u32 GetImmLut28() const {
+ return static_cast<u32>(imm_lut28);
+ }
+
+ u32 GetImmLut48() const {
+ return static_cast<u32>(imm_lut48);
+ }
+ } lop3;
+
u32 GetImm20_19() const {
u32 imm{static_cast<u32>(imm20_19)};
imm <<= 12;
@@ -650,6 +663,9 @@ public:
LOP_R,
LOP_IMM,
LOP32I,
+ LOP3_C,
+ LOP3_R,
+ LOP3_IMM,
MOV_C,
MOV_R,
MOV_IMM,
@@ -872,6 +888,9 @@ private:
INST("0101110001000---", Id::LOP_R, Type::ArithmeticInteger, "LOP_R"),
INST("0011100001000---", Id::LOP_IMM, Type::ArithmeticInteger, "LOP_IMM"),
INST("000001----------", Id::LOP32I, Type::ArithmeticIntegerImmediate, "LOP32I"),
+ INST("0000001---------", Id::LOP3_C, Type::ArithmeticInteger, "LOP3_C"),
+ INST("0101101111100---", Id::LOP3_R, Type::ArithmeticInteger, "LOP3_R"),
+ INST("0011110---------", Id::LOP3_IMM, Type::ArithmeticInteger, "LOP3_IMM"),
INST("0100110001001---", Id::SHL_C, Type::Shift, "SHL_C"),
INST("0101110001001---", Id::SHL_R, Type::Shift, "SHL_R"),
INST("0011100-01001---", Id::SHL_IMM, Type::Shift, "SHL_IMM"),