From cf67927f76099e9c1a922a5ba3514636e8d4caab Mon Sep 17 00:00:00 2001
From: notaz <notasas@gmail.com>
Date: Tue, 17 Dec 2024 21:34:32 +0200
Subject: [PATCH] vita: yet another try to fix crashes

libretro/pcsx_rearmed#856
---
 Makefile.libretro                     | 2 +-
 libpcsxcore/new_dynarec/new_dynarec.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile.libretro b/Makefile.libretro
index c8f99f93..7ef285d5 100644
--- a/Makefile.libretro
+++ b/Makefile.libretro
@@ -332,7 +332,7 @@ else ifeq ($(platform), vita)
 	CFLAGS += -fsingle-precision-constant -mword-relocations -fno-unwind-tables
 	CFLAGS += -fno-asynchronous-unwind-tables -ftree-vectorize
 	#CFLAGS += -funroll-loops # ~280K bloat
-	#CFLAGS += -fno-optimize-sibling-calls # debug?
+	CFLAGS += -fno-optimize-sibling-calls # broken arm->thumb tailcalls?
 	CFLAGS += -I$(VITASDK)/include -Ifrontend/vita
 	CFLAGS += -DNO_DYLIB
 	CFLAGS_LAST += -O3
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index f1f5e609..10315b53 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -9010,7 +9010,7 @@ static struct block_info *new_block_info(u_int start, u_int len,
   return block;
 }
 
-static int new_recompile_block(u_int addr)
+static int noinline new_recompile_block(u_int addr)
 {
   u_int pagelimit = 0;
   u_int state_rflags = 0;
-- 
2.39.5