From ea669190aa5084a699590d2f2fed92e848a9fd53 Mon Sep 17 00:00:00 2001 From: StapleButter Date: Thu, 30 May 2019 18:05:52 +0200 Subject: [PATCH] fix crash when using -O3. gcc will try to optimize the memfill with MMX opcodes, but those seem to crash if the memory isn't aligned to a 8-byte boundary. --- CMakeLists.txt | 2 +- src/GPU2D.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7daf1a57..38d47071 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ else() endif() if(ENABLE_LTO) - add_compile_options(-O2 -flto) + add_compile_options(-O3 -flto) endif() add_compile_options(-fno-pic) diff --git a/src/GPU2D.h b/src/GPU2D.h index 21b43f1f..57436c73 100644 --- a/src/GPU2D.h +++ b/src/GPU2D.h @@ -71,11 +71,11 @@ private: bool Accelerated; - u32 BGOBJLine[256*3]; + u32 BGOBJLine[256*3] __attribute__((aligned (8))); u32* _3DLine; - u8 WindowMask[256]; - u32 OBJLine[256]; + u8 WindowMask[256] __attribute__((aligned (8))); + u32 OBJLine[256] __attribute__((aligned (8))); u16 DispFIFO[16]; u32 DispFIFOReadPtr;