From 56dc6ecb70e6fc76d32d6a7194acb273b76bfe0e Mon Sep 17 00:00:00 2001 From: David Guillen Fandos Date: Mon, 8 Mar 2021 18:44:03 +0100 Subject: Remove libco 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. --- Makefile | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index e846b3a..fa6ae4f 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,6 @@ FRONTEND_SUPPORTS_RGB565=1 FORCE_32BIT_ARCH=0 HAVE_MMAP=0 HAVE_MMAP_WIN32=0 -USE_LIBCO=1 UNAME=$(shell uname -a) @@ -391,7 +390,6 @@ else ifeq ($(platform), gcw0) SHARED := -shared -nostdlib -Wl,--version-script=link.T fpic := -fPIC CFLAGS += -fomit-frame-pointer -ffast-math -march=mips32 -mtune=mips32r2 -mhard-float - USE_LIBCO = 0 # Windows else @@ -430,12 +428,6 @@ OBJECTS := $(SOURCES_C:.c=.o) $(SOURCES_ASM:.S=.o) DEFINES := -DHAVE_STRINGS_H -DHAVE_STDINT_H -DHAVE_INTTYPES_H -D__LIBRETRO__ -DINLINE=inline -Wall -ifeq ($(USE_LIBCO), 1) -DEFINES += -DUSE_LIBCO -else -LDFLAGS += -lpthread -endif - ifeq ($(HAVE_DYNAREC), 1) DEFINES += -DHAVE_DYNAREC endif @@ -491,9 +483,6 @@ endif cpu_threaded.o: cpu_threaded.c $(CC) $(CFLAGS) -Wno-unused-variable -Wno-unused-label $(OPTIMIZE_SAFE) $(INCDIRS) -c -o $@ $< -libco/libco.o: libco/libco.c - $(CC) $(INCFLAGS) $(CFLAGS) $(OPTIMIZE) -c -o $@ $< - %.o: %.S $(CC) $(ASFLAGS) $(CFLAGS) $(OPTIMIZE) -c -o $@ $< -- cgit v1.2.3