This removes libco and all the usages of it (+pthreads). Rewired all dynarecs and interpreter to return after every frame so that libretro can process events. This required to make dynarec re-entrant. Dynarecs were updated to check for new frame on every update (IRQ, cycle exhaustion, I/O write, etc). The performance impact of doing so should be minimal (and definitely outweight the libco gains). While at it, fixed small issues to get a bit more perf: arm dynarec was not idling correctly, mips was using stack when not needed, etc. Tested on PSP (mips), OGA (armv7), Linux (x86 and interpreter). Not tested on Android though.
49 lines
997 B
Text
49 lines
997 B
Text
INCFLAGS := -I$(CORE_DIR)/libretro -I$(CORE_DIR)/src
|
|
|
|
SOURCES_ASM :=
|
|
|
|
ifeq ($(HAVE_GRIFFIN), 1)
|
|
SOURCES_C := $(CORE_DIR)/gpsp_griffin.c
|
|
else
|
|
SOURCES_C := $(CORE_DIR)/main.c \
|
|
$(CORE_DIR)/cpu.c \
|
|
$(CORE_DIR)/gba_memory.c \
|
|
$(CORE_DIR)/video.c \
|
|
$(CORE_DIR)/input.c \
|
|
$(CORE_DIR)/sound.c \
|
|
$(CORE_DIR)/cheats.c \
|
|
$(CORE_DIR)/libretro.c \
|
|
$(CORE_DIR)/gba_cc_lut.c
|
|
|
|
ifeq ($(HAVE_DYNAREC), 1)
|
|
SOURCES_C += $(CORE_DIR)/cpu_threaded.c
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(HAVE_DYNAREC), 1)
|
|
|
|
ifeq ($(CPU_ARCH), x86_32)
|
|
SOURCES_ASM += $(CORE_DIR)/x86/x86_stub.S
|
|
endif
|
|
ifeq ($(CPU_ARCH), arm)
|
|
SOURCES_ASM += $(CORE_DIR)/arm/arm_stub.S
|
|
endif
|
|
ifeq ($(CPU_ARCH), mips)
|
|
SOURCES_ASM += $(CORE_DIR)/psp/mips_stub.S
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(CPU_ARCH), arm)
|
|
|
|
ifeq ($(CPU_ARCH_ARM_BLENDING_OPTS),1)
|
|
CFLAGS += -DARM_ARCH_BLENDING_OPTS
|
|
SOURCES_ASM += $(CORE_DIR)/arm/video_blend.S
|
|
endif
|
|
|
|
endif
|
|
|
|
ifeq ($(HAVE_MMAP_WIN32),1)
|
|
SOURCES_C += $(CORE_DIR)/memmap_win32.c
|
|
endif
|
|
|
|
INCFLAGS := -I$(CORE_DIR)
|