b _SetPrimaryStackInitGlobals ; \\r
_SetPrimaryStackEnd:\r
\r
+// Initialize the Global Variable with '0'\r
+#define InitializePrimaryStack(GlobalSize, Tmp1) \\r
+ and Tmp1, GlobalSize, #7 ; \\r
+ rsbne Tmp1, Tmp1, #8 ; \\r
+ add GlobalSize, GlobalSize, Tmp1 ; \\r
+ ; \\r
+ mov Tmp1, sp ; \\r
+ sub sp, GlobalSize ; \\r
+ mov GlobalSize, #0x0 ; \\r
+_InitializePrimaryStackLoop: ; \\r
+ cmp Tmp1, sp ; \\r
+ bls _InitializePrimaryStackEnd ; \\r
+ str GlobalSize, [Tmp1], #-4 ; \\r
+ b _InitializePrimaryStackLoop ; \\r
+_InitializePrimaryStackEnd:\r
\r
#elif defined (__GNUC__)\r
\r
b _SetPrimaryStackInitGlobals ; \\r
_SetPrimaryStackEnd:\r
\r
+// Initialize the Global Variable with '0'\r
+#define InitializePrimaryStack(GlobalSize, Tmp1) \\r
+ and Tmp1, GlobalSize, #7 ; \\r
+ rsbne Tmp1, Tmp1, #8 ; \\r
+ add GlobalSize, GlobalSize, Tmp1 ; \\r
+ ; \\r
+ mov Tmp1, sp ; \\r
+ sub sp, GlobalSize ; \\r
+ mov GlobalSize, #0x0 ; \\r
+_InitializePrimaryStackLoop: ; \\r
+ cmp Tmp1, sp ; \\r
+ bls _InitializePrimaryStackEnd ; \\r
+ str GlobalSize, [Tmp1], #-4 ; \\r
+ b _InitializePrimaryStackLoop ; \\r
+_InitializePrimaryStackEnd:\r
+\r
#else\r
\r
//\r
\r
#define SetPrimaryStack(StackTop,GlobalSize,Tmp) SetPrimaryStack StackTop, GlobalSize, Tmp\r
\r
+// Initialize the Global Variable with '0'\r
+#define InitializePrimaryStack(GlobalSize, Tmp1) InitializePrimaryStack GlobalSize, Tmp1\r
+\r
#endif\r
\r
#endif\r