From 02aa70559ae6152ef63b23793208f71c9cbb2d82 Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Thu, 30 Sep 2021 23:04:43 +0100 Subject: [PATCH] Further make flag tweaks Performance go wheeee --- Makefile | 2 ++ src/engine/math_util.c | 26 +++++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 013a24ed..fb3a25c4 100644 --- a/Makefile +++ b/Makefile @@ -577,6 +577,8 @@ $(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wn $(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0 $(BUILD_DIR)/src/usb/debug.o: CFLAGS += -Wno-unused-parameter -Wno-maybe-uninitialized $(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables +$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := -Ofast -fno-unroll-loops -fno-peel-loops --param case-values-threshold=20 +$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := -Ofast -fno-unroll-loops -fno-peel-loops --param case-values-threshold=20 ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION) diff --git a/src/engine/math_util.c b/src/engine/math_util.c index 4670ffcc..818a5184 100644 --- a/src/engine/math_util.c +++ b/src/engine/math_util.c @@ -57,13 +57,19 @@ f32 max_3f(f32 a0, f32 a1, f32 a2) { if (a1 > a0) a0 = a1; if (a2 > a0) a0 = a2; /// Copy vector 'src' to 'dest' void vec3f_copy(Vec3f dest, Vec3f src) { - ((u64 *) dest)[0] = ((u64 *) src)[0]; - ((u32 *) dest)[2] = ((u32 *) src)[2]; + register s32 x = ((u32 *) src)[0]; + register s32 y = ((u32 *) src)[1]; + register s32 z = ((u32 *) src)[2]; + ((u32 *) dest)[0] = x; + ((u32 *) dest)[1] = y; + ((u32 *) dest)[2] = z; } /// Set vector 'dest' to (x, y, z) -void vec3f_set(Vec3f dest, f32 x, f32 y, f32 z) { - vec3_set(dest, x, y, z); +inline void vec3f_set(Vec3f dest, f32 x, f32 y, f32 z) { + dest[0] = x; + dest[1] = y; + dest[2] = z; } /// Add vector 'a' to 'dest' @@ -82,7 +88,17 @@ void vec3f_add(Vec3f dest, Vec3f a) { /// Make 'dest' the sum of vectors a and b. void vec3f_sum(Vec3f dest, Vec3f a, Vec3f b) { - vec3_sum(dest, a, b); + register f32 *temp = dest; + register s32 j; + register f32 x,y; + for (j = 0; j < 3; j++) { + x = *a; + a++; + y = *b; + b++; + *temp = x+y; + temp++; + } } /// Copy vector src to dest