From e4c39c7c26288437e3aa9a373e83b8c544366001 Mon Sep 17 00:00:00 2001 From: wernsaar Date: Sat, 8 Jun 2013 10:43:08 +0200 Subject: [PATCH] changed stack touching --- kernel/x86_64/dgemm_kernel_8x2_bulldozer.S | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/kernel/x86_64/dgemm_kernel_8x2_bulldozer.S b/kernel/x86_64/dgemm_kernel_8x2_bulldozer.S index dc980cb..dc32172 100644 --- a/kernel/x86_64/dgemm_kernel_8x2_bulldozer.S +++ b/kernel/x86_64/dgemm_kernel_8x2_bulldozer.S @@ -161,6 +161,32 @@ #define BUFFER1 128(%rsp) #define BUFFER2 LB2_OFFSET+128(%rsp) +#if defined(OS_WINDOWS) +#if L_BUFFER_SIZE > 16384 +#define STACK_TOUCH \ + movl $0, 4096 * 4(%rsp);\ + movl $0, 4096 * 3(%rsp);\ + movl $0, 4096 * 2(%rsp);\ + movl $0, 4096 * 1(%rsp); +#elif L_BUFFER_SIZE > 12288 +#define STACK_TOUCH \ + movl $0, 4096 * 3(%rsp);\ + movl $0, 4096 * 2(%rsp);\ + movl $0, 4096 * 1(%rsp); +#elif L_BUFFER_SIZE > 8192 +#define STACK_TOUCH \ + movl $0, 4096 * 2(%rsp);\ + movl $0, 4096 * 1(%rsp); +#elif L_BUFFER_SIZE > 4096 +#define STACK_TOUCH \ + movl $0, 4096 * 1(%rsp); +#else +#define STACK_TOUCH +#endif +#else +#define STACK_TOUCH +#endif + #define A_PR1 384 @@ -899,7 +925,7 @@ subq $128 + L_BUFFER_SIZE, %rsp andq $-4096, %rsp # align stack - STACK_TOUCHING + STACK_TOUCH cmpq $0, OLD_M je .L999 -- 2.7.4