mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #551 from bunnei/shr
gl_shader_decompiler: Implement SHR instruction.
This commit is contained in:
		
						commit
						e2176dc7ce
					
				| @ -260,6 +260,10 @@ union Instruction { | ||||
|         } | ||||
|     } alu; | ||||
| 
 | ||||
|     union { | ||||
|         BitField<48, 1, u64> is_signed; | ||||
|     } shift; | ||||
| 
 | ||||
|     union { | ||||
|         BitField<39, 5, u64> shift_amount; | ||||
|         BitField<48, 1, u64> negate_b; | ||||
|  | ||||
| @ -979,6 +979,19 @@ private: | ||||
|             } | ||||
| 
 | ||||
|             switch (opcode->GetId()) { | ||||
|             case OpCode::Id::SHR_C: | ||||
|             case OpCode::Id::SHR_R: | ||||
|             case OpCode::Id::SHR_IMM: { | ||||
|                 if (!instr.shift.is_signed) { | ||||
|                     // Logical shift right
 | ||||
|                     op_a = "uint(" + op_a + ')'; | ||||
|                 } | ||||
| 
 | ||||
|                 // Cast to int is superfluous for arithmetic shift, it's only for a logical shift
 | ||||
|                 regs.SetRegisterToInteger(instr.gpr0, true, 0, "int(" + op_a + " >> " + op_b + ')', | ||||
|                                           1, 1); | ||||
|                 break; | ||||
|             } | ||||
|             case OpCode::Id::SHL_C: | ||||
|             case OpCode::Id::SHL_R: | ||||
|             case OpCode::Id::SHL_IMM: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei