Optimized compiler settings for libgme. ARM now uses -O1 except for the 2413 emulator. The speed on PP5022 increases by 0-5% (NSF, YM2413-VGM), 5-10% (GBS, VGM) and 10-15% (SGC, KSS, AY).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30331 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/codecs/codecs.make b/apps/codecs/codecs.make
index 1644ff0..5706075 100644
--- a/apps/codecs/codecs.make
+++ b/apps/codecs/codecs.make
@@ -50,6 +50,7 @@
include $(APPSDIR)/codecs/libgme/libsgc.make
include $(APPSDIR)/codecs/libgme/libvgm.make
include $(APPSDIR)/codecs/libgme/libkss.make
+include $(APPSDIR)/codecs/libgme/libemu2413.make
# compile flags for codecs
CODECFLAGS = $(CFLAGS) -fstrict-aliasing -I$(APPSDIR)/codecs \
@@ -80,6 +81,7 @@
$(TREMORLIB) : CODECFLAGS += -O2
$(TTALIB) : CODECFLAGS += -O2
$(VGMLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(EMU2413LIB) : CODECFLAGS += -fno-strict-aliasing -O3
$(WAVPACKLIB) : CODECFLAGS += -O1
$(WMALIB) : CODECFLAGS += -O2
$(WMAPROLIB) : CODECFLAGS += -O1
@@ -89,13 +91,14 @@
ifeq ($(CPU),arm)
# redo per arm generation
$(ALACLIB) : CODECFLAGS += -O2
- $(AYLIB) : CODECFLAGS += -fno-strict-aliasing -O3
- $(GBSLIB) : CODECFLAGS += -fno-strict-aliasing -O3
- $(HESLIB) : CODECFLAGS += -fno-strict-aliasing -O3
- $(KSSLIB) : CODECFLAGS += -fno-strict-aliasing -O3
- $(NSFLIB) : CODECFLAGS += -fno-strict-aliasing -O3
- $(SGCLIB) : CODECFLAGS += -fno-strict-aliasing -O3
- $(VGMLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(AYLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+ $(GBSLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+ $(HESLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+ $(KSSLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+ $(NSFLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+ $(SGCLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+ $(VGMLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+ $(EMU2413LIB) : CODECFLAGS += -fno-strict-aliasing -O3
$(WAVPACKLIB) : CODECFLAGS += -O3
else ifeq ($(CPU),coldfire)
$(A52LIB) : CODECFLAGS += -O2
@@ -161,10 +164,10 @@
$(CODECDIR)/ay.codec : $(CODECDIR)/libay.a
$(CODECDIR)/gbs.codec : $(CODECDIR)/libgbs.a
$(CODECDIR)/hes.codec : $(CODECDIR)/libhes.a
-$(CODECDIR)/nsf.codec : $(CODECDIR)/libnsf.a
-$(CODECDIR)/sgc.codec : $(CODECDIR)/libsgc.a
-$(CODECDIR)/vgm.codec : $(CODECDIR)/libvgm.a
-$(CODECDIR)/kss.codec : $(CODECDIR)/libkss.a
+$(CODECDIR)/nsf.codec : $(CODECDIR)/libnsf.a $(CODECDIR)/libemu2413.a
+$(CODECDIR)/sgc.codec : $(CODECDIR)/libsgc.a $(CODECDIR)/libemu2413.a
+$(CODECDIR)/vgm.codec : $(CODECDIR)/libvgm.a $(CODECDIR)/libemu2413.a
+$(CODECDIR)/kss.codec : $(CODECDIR)/libkss.a $(CODECDIR)/libemu2413.a
$(CODECS): $(CODECLIB) # this must be last in codec dependency list
diff --git a/apps/codecs/libgme/EMU2413SOURCES b/apps/codecs/libgme/EMU2413SOURCES
new file mode 100644
index 0000000..901c49e
--- /dev/null
+++ b/apps/codecs/libgme/EMU2413SOURCES
@@ -0,0 +1,4 @@
+sms_apu.c
+sms_fm_apu.c
+emu2413.c
+ym2413_emu.c
diff --git a/apps/codecs/libgme/KSSSOURCES b/apps/codecs/libgme/KSSSOURCES
index 8e9c660..2607c73 100644
--- a/apps/codecs/libgme/KSSSOURCES
+++ b/apps/codecs/libgme/KSSSOURCES
@@ -3,11 +3,9 @@
kss_emu.c
kss_scc_apu.c
opl_apu.c
-sms_apu.c
z80_cpu.c
blip_buffer.c
multi_buffer.c
rom_data.c
-emu2413.c
emu8950.c
emuadpcm.c
diff --git a/apps/codecs/libgme/NSFSOURCES b/apps/codecs/libgme/NSFSOURCES
index d96e1d3..54b4f82 100644
--- a/apps/codecs/libgme/NSFSOURCES
+++ b/apps/codecs/libgme/NSFSOURCES
@@ -12,4 +12,3 @@
blip_buffer.c
multi_buffer.c
rom_data.c
-emu2413.c
diff --git a/apps/codecs/libgme/SGCSOURCES b/apps/codecs/libgme/SGCSOURCES
index 72b06ef..d91c0e1 100644
--- a/apps/codecs/libgme/SGCSOURCES
+++ b/apps/codecs/libgme/SGCSOURCES
@@ -1,10 +1,6 @@
sgc_cpu.c
sgc_emu.c
-sms_apu.c
-sms_fm_apu.c
-ym2413_emu.c
z80_cpu.c
blip_buffer.c
multi_buffer.c
rom_data.c
-emu2413.c
diff --git a/apps/codecs/libgme/VGMSOURCES b/apps/codecs/libgme/VGMSOURCES
index ed32bac..637f87e 100644
--- a/apps/codecs/libgme/VGMSOURCES
+++ b/apps/codecs/libgme/VGMSOURCES
@@ -1,10 +1,7 @@
blip_buffer.c
multi_buffer.c
resampler.c
-sms_apu.c
vgm_emu.c
-emu2413.c
-ym2413_emu.c
ym2612_emu.c
inflate/bbfuncs.c
inflate/inflate.c
diff --git a/apps/codecs/libgme/libemu2413.make b/apps/codecs/libgme/libemu2413.make
new file mode 100644
index 0000000..2f489ce
--- /dev/null
+++ b/apps/codecs/libgme/libemu2413.make
@@ -0,0 +1,10 @@
+
+# libemu2413
+EMU2413LIB := $(CODECDIR)/libemu2413.a
+EMU2413LIB_SRC := $(call preprocess, $(APPSDIR)/codecs/libgme/EMU2413SOURCES)
+EMU2413LIB_OBJ := $(call c2obj, $(EMU2413LIB_SRC))
+OTHER_SRC += $(EMU2413LIB_SRC)
+
+$(EMU2413LIB): $(EMU2413LIB_OBJ)
+ $(SILENT)$(shell rm -f $@)
+ $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null