/*********************************************************************/
#include <stdio.h>
+#include <assert.h>
#include "common.h"
#include "l1param.h"
#ifdef FUNCTION_PROFILE
#ifdef ALIGNED_ACCESS
stack_alloc_size += 3;
#endif
- if(stack_alloc_size < 128)
+// if(stack_alloc_size < 128)
//dgemv_n.S require a 128 bytes buffer
- stack_alloc_size = 128;
+// increasing instead of capping 128
+// ABI STACK for windows 288 bytes
+ stack_alloc_size += 288 / sizeof(FLOAT) ;
if(stack_alloc_size > MAX_STACK_ALLOC / sizeof(FLOAT))
stack_alloc_size = 0;
+// stack overflow check
+ volatile double stack_check = 3.14159265358979323846;
FLOAT stack_buffer[stack_alloc_size];
buffer = stack_alloc_size ? stack_buffer : (FLOAT *)blas_memory_alloc(1);
// printf("stack_alloc_size=%d\n", stack_alloc_size);
}
#endif
+// stack overflow check
+assert(stack_check==3.14159265358979323846);
#ifdef MAX_STACK_ALLOC
if(!stack_alloc_size){