diff options
author | bunnei <bunneidev@gmail.com> | 2016-03-17 19:51:43 -0400 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2016-04-13 23:04:43 -0400 |
commit | 135aec7beab9e484183565eea9d3cab03fe0b879 (patch) | |
tree | 5f5a753d2a48bff8eade3517476451446e40c206 | |
parent | e5d417213ce67bc23ac644132828d125a59c2455 (diff) |
shader_jit_x64: Fix strict memory aliasing issues.
-rw-r--r-- | src/video_core/shader/shader_jit_x64.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/video_core/shader/shader_jit_x64.cpp b/src/video_core/shader/shader_jit_x64.cpp index dffe051ef..d74b58d84 100644 --- a/src/video_core/shader/shader_jit_x64.cpp +++ b/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)]; |