Browse Source

shader_jit_x64: Fix strict memory aliasing issues.

bunnei 10 năm trước cách đây
mục cha
commit
135aec7bea
1 tập tin đã thay đổi với 3 bổ sung1 xóa
  1. 3 1
      src/video_core/shader/shader_jit_x64.cpp

+ 3 - 1
src/video_core/shader/shader_jit_x64.cpp

@@ -741,7 +741,9 @@ void JitCompiler::Compile_Block(unsigned end) {
 void JitCompiler::Compile_NextInstr(unsigned* offset) {
     offset_ptr = offset;
 
-    Instruction instr = *(Instruction*)&g_state.vs.program_code[(*offset_ptr)++];
+    Instruction instr;
+    std::memcpy(&instr, &g_state.vs.program_code[(*offset_ptr)++], sizeof(Instruction));
+
     OpCode::Id opcode = instr.opcode.Value();
     auto instr_func = instr_table[static_cast<unsigned>(opcode)];