summaryrefslogtreecommitdiff
path: root/Runtime/Utilities/OptimizationUtility.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Utilities/OptimizationUtility.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/Utilities/OptimizationUtility.h')
-rw-r--r--Runtime/Utilities/OptimizationUtility.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/Runtime/Utilities/OptimizationUtility.h b/Runtime/Utilities/OptimizationUtility.h
new file mode 100644
index 0000000..5b69177
--- /dev/null
+++ b/Runtime/Utilities/OptimizationUtility.h
@@ -0,0 +1,20 @@
+#ifndef OPTIMIZATION_UTILITY_H
+#define OPTIMIZATION_UTILITY_H 1
+
+
+// ALIGN_LOOP_OPTIMIZATION should be placed in heavy inner loops!
+// for (int i=0;i<10000;i++)
+// ALIGN_LOOP_OPTIMIZATION
+// ...
+
+// On the Wii global function alignment is 4 for debug builds to save exe size
+// as there are a lot of non-inlined functions.
+// In that case having align 16 generates warnings, so we blank the define.
+#if defined(__MWERKS__) && UNITY_RELEASE && !defined(_DEBUG)
+#define ALIGN_LOOP_OPTIMIZATION asm {align 16}
+#else
+///@TODO: optimize this for gcc too
+#define ALIGN_LOOP_OPTIMIZATION
+#endif
+
+#endif