Disable mult/div and memset optimizations when debugging Lightrec
authorPaul Cercueil <paul@crapouillou.net>
Fri, 17 Jan 2025 00:49:07 +0000 (01:49 +0100)
committernotaz <notasas@gmail.com>
Mon, 20 Jan 2025 20:08:27 +0000 (22:08 +0200)
These optimizations cause Lightrec's interpreter and dynarec to have
different behaviours.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Makefile
include/lightrec/lightrec-config.h
jni/Android.mk

index ec07225..e119c55 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -133,7 +133,8 @@ LIGHTREC_CODE_INV ?= 0
 CFLAGS += -DLIGHTREC_CUSTOM_MAP=$(LIGHTREC_CUSTOM_MAP) \
          -DLIGHTREC_CODE_INV=$(LIGHTREC_CODE_INV) \
          -DLIGHTREC_ENABLE_THREADED_COMPILER=$(LIGHTREC_THREADED_COMPILER) \
-         -DLIGHTREC_ENABLE_DISASSEMBLER=$(or $(LIGHTREC_DEBUG),0)
+         -DLIGHTREC_ENABLE_DISASSEMBLER=$(or $(LIGHTREC_DEBUG),0) \
+         -DLIGHTREC_NO_DEBUG=$(if $(LIGHTREC_DEBUG),0,1)
 ifeq ($(LIGHTREC_CUSTOM_MAP),1)
 LDLIBS += -lrt
 OBJS += $(LIGHTREC_CUSTOM_MAP_OBJ)
index 8453fe4..534472e 100644 (file)
 #define HAS_DEFAULT_ELM 1
 
 #define OPT_REMOVE_DIV_BY_ZERO_SEQ 1
-#define OPT_REPLACE_MEMSET 1
+#define OPT_REPLACE_MEMSET LIGHTREC_NO_DEBUG
 #define OPT_DETECT_IMPOSSIBLE_BRANCHES 1
 #define OPT_HANDLE_LOAD_DELAYS 1
 #define OPT_TRANSFORM_OPS 1
 #define OPT_LOCAL_BRANCHES 1
 #define OPT_SWITCH_DELAY_SLOTS 1
 #define OPT_FLAG_IO 1
-#define OPT_FLAG_MULT_DIV 1
+#define OPT_FLAG_MULT_DIV LIGHTREC_NO_DEBUG
 #define OPT_EARLY_UNLOAD 1
 #define OPT_PRELOAD_PC 1
 
index 0fe5cb9..222e870 100644 (file)
@@ -134,7 +134,6 @@ HAVE_ARI64=0
 HAVE_LIGHTREC=0
 LIGHTREC_CUSTOM_MAP=0
 LIGHTREC_THREADED_COMPILER=0
-LIGHTREC_DEBUG=0
 HAVE_GPU_NEON=0
 ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
   HAVE_ARI64=1
@@ -156,6 +155,7 @@ endif
   COREFLAGS   += -DLIGHTREC_CUSTOM_MAP=$(LIGHTREC_CUSTOM_MAP)
   COREFLAGS   += -DLIGHTREC_ENABLE_THREADED_COMPILER=$(LIGHTREC_THREADED_COMPILER)
   COREFLAGS   += -DLIGHTREC_ENABLE_DISASSEMBLER=$(or $(LIGHTREC_DEBUG),0)
+  COREFLAGS   += -DLIGHTREC_NO_DEBUG=$(if $(LIGHTREC_DEBUG),0,1)
 
 ifeq ($(HAVE_ARI64),1)
   SOURCES_C   += $(DYNAREC_DIR)/new_dynarec.c \