}
#endif
-
+ //printf("m=%d, n=%d, trans=%d, incx=%d, incy=%d, alpha=%f, beta=%f\n", m, n, trans, incx, incy, alpha, beta);
if ((m==0) || (n==0)) return;
lenx = n;
// do not restore all register
volatile int stack_alloc_size = 0;
if (trans == 0) {
+ //for gemv_n, try to allocate on stack
+ //for gemv_t, use malloc
+
stack_alloc_size = m + n;
if(stack_alloc_size < 128)
//dgemv_n.S require a 128 bytes buffer
if(stack_alloc_size > MAX_STACK_ALLOC / sizeof(FLOAT))
stack_alloc_size = 0;
- FLOAT stack_buffer[stack_alloc_size];
- buffer = stack_alloc_size ? stack_buffer : (FLOAT *)blas_memory_alloc_nolock(1);
-
- }else{
- //for gemv_t, only malloc
- buffer = (FLOAT *)blas_memory_alloc_nolock(1);
}
+
+ FLOAT stack_buffer[stack_alloc_size];
+ buffer = stack_alloc_size ? stack_buffer : (FLOAT *)blas_memory_alloc_nolock(1);
+ // printf("stack_alloc_size=%d\n", stack_alloc_size);
#else
//Original OpenBLAS/GotoBLAS codes.
buffer = (FLOAT *)blas_memory_alloc(1);