mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #1216 from ogniK5377/ffma-assert
Added FFMA asserts and missing fields
This commit is contained in:
		
						commit
						9c206fe94d
					
				@ -403,8 +403,11 @@ union Instruction {
 | 
				
			|||||||
    } flow;
 | 
					    } flow;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    union {
 | 
					    union {
 | 
				
			||||||
 | 
					        BitField<47, 1, u64> cc;
 | 
				
			||||||
        BitField<48, 1, u64> negate_b;
 | 
					        BitField<48, 1, u64> negate_b;
 | 
				
			||||||
        BitField<49, 1, u64> negate_c;
 | 
					        BitField<49, 1, u64> negate_c;
 | 
				
			||||||
 | 
					        BitField<51, 2, u64> tab5980_1;
 | 
				
			||||||
 | 
					        BitField<53, 2, u64> tab5980_0;
 | 
				
			||||||
    } ffma;
 | 
					    } ffma;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    union {
 | 
					    union {
 | 
				
			||||||
 | 
				
			|||||||
@ -1445,6 +1445,12 @@ private:
 | 
				
			|||||||
            std::string op_b = instr.ffma.negate_b ? "-" : "";
 | 
					            std::string op_b = instr.ffma.negate_b ? "-" : "";
 | 
				
			||||||
            std::string op_c = instr.ffma.negate_c ? "-" : "";
 | 
					            std::string op_c = instr.ffma.negate_c ? "-" : "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ASSERT_MSG(instr.ffma.cc == 0, "FFMA cc not implemented");
 | 
				
			||||||
 | 
					            ASSERT_MSG(instr.ffma.tab5980_0 == 1, "FFMA tab5980_0({}) not implemented",
 | 
				
			||||||
 | 
					                       instr.ffma.tab5980_0.Value()); // Seems to be 1 by default based on SMO
 | 
				
			||||||
 | 
					            ASSERT_MSG(instr.ffma.tab5980_1 == 0, "FFMA tab5980_1({}) not implemented",
 | 
				
			||||||
 | 
					                       instr.ffma.tab5980_1.Value());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            switch (opcode->GetId()) {
 | 
					            switch (opcode->GetId()) {
 | 
				
			||||||
            case OpCode::Id::FFMA_CR: {
 | 
					            case OpCode::Id::FFMA_CR: {
 | 
				
			||||||
                op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset,
 | 
					                op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user