From e11e67df285706ef887f74c81b4deba60e910599 Mon Sep 17 00:00:00 2001 From: DH Date: Thu, 8 Oct 2015 01:30:03 +0300 Subject: [PATCH] Try to avoid internal gcc error --- rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp index 97cf94f5ba..7fff720d12 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp @@ -504,13 +504,23 @@ s32 cellGcmSetPrepareFlip(PPUThread& ppu, vm::ptr ctxt, u32 return res; } } +#ifdef __GNUC__ + //gcc internal compiler error, try to avoid it for now + *ctxt->current++ = (GCM_FLIP_COMMAND << 2) | (1 << 18); + *ctxt->current++ = id; + if (ctxt.addr() == gcm_info.context_addr) + { + vm::get_ref(gcm_info.control_addr).put += 2 * sizeof(u32); + } +#else u32 command_size = rsx::make_command(ctxt->current, GCM_FLIP_COMMAND, id); if (ctxt.addr() == gcm_info.context_addr) { vm::get_ref(gcm_info.control_addr).put += command_size * sizeof(u32); } +#endif return id; }