as trivial copy of ?asum with the fabs calls removedtags/v0.3.6^2
| @@ -0,0 +1,207 @@ | |||
| /*********************************************************************/ | |||
| /* Copyright 2009, 2010 The University of Texas at Austin. */ | |||
| /* All rights reserved. */ | |||
| /* */ | |||
| /* Redistribution and use in source and binary forms, with or */ | |||
| /* without modification, are permitted provided that the following */ | |||
| /* conditions are met: */ | |||
| /* */ | |||
| /* 1. Redistributions of source code must retain the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer. */ | |||
| /* */ | |||
| /* 2. Redistributions in binary form must reproduce the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer in the documentation and/or other materials */ | |||
| /* provided with the distribution. */ | |||
| /* */ | |||
| /* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */ | |||
| /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */ | |||
| /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */ | |||
| /* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */ | |||
| /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */ | |||
| /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */ | |||
| /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */ | |||
| /* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */ | |||
| /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */ | |||
| /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ | |||
| /* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ | |||
| /* POSSIBILITY OF SUCH DAMAGE. */ | |||
| /* */ | |||
| /* The views and conclusions contained in the software and */ | |||
| /* documentation are those of the authors and should not be */ | |||
| /* interpreted as representing official policies, either expressed */ | |||
| /* or implied, of The University of Texas at Austin. */ | |||
| /*********************************************************************/ | |||
| #define ASSEMBLER | |||
| #include "common.h" | |||
| #define STACK 8 | |||
| #define ARGS 0 | |||
| #define STACK_M 4 + STACK + ARGS(%esp) | |||
| #define STACK_X 8 + STACK + ARGS(%esp) | |||
| #define STACK_INCX 12 + STACK + ARGS(%esp) | |||
| #define M %edx | |||
| #define X %ecx | |||
| #define INCX %esi | |||
| #define I %eax | |||
| #include "l1param.h" | |||
| PROLOGUE | |||
| pushl %esi | |||
| pushl %ebx | |||
| PROFCODE | |||
| #if defined(F_INTERFACE_GFORT) || defined(F_INTERFACE_G95) | |||
| EMMS | |||
| #endif | |||
| movl STACK_M, M | |||
| movl STACK_X, X | |||
| movl STACK_INCX, INCX | |||
| #ifdef F_INTERFACE | |||
| movl (M), M | |||
| movl (INCX), INCX | |||
| #endif | |||
| fldz | |||
| testl M, M | |||
| jle .L999 | |||
| testl INCX, INCX | |||
| jle .L999 | |||
| sall $BASE_SHIFT, INCX | |||
| fldz | |||
| fldz | |||
| fldz | |||
| cmpl $SIZE, INCX | |||
| jne .L40 | |||
| movl M, I | |||
| sarl $3, I | |||
| jle .L20 | |||
| ALIGN_4 | |||
| .L10: | |||
| #ifdef PREFETCH | |||
| PREFETCH (PREFETCHSIZE + 0) - PREOFFSET(X) | |||
| #endif | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| FLD 2 * SIZE(X) | |||
| FLD 3 * SIZE(X) | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| FLD 4 * SIZE(X) | |||
| FLD 5 * SIZE(X) | |||
| FLD 6 * SIZE(X) | |||
| FLD 7 * SIZE(X) | |||
| addl $8 * SIZE, X | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| decl I | |||
| jg .L10 | |||
| ALIGN_4 | |||
| .L20: | |||
| movl M, I | |||
| andl $7, I | |||
| jle .L998 | |||
| ALIGN_4 | |||
| .L21: | |||
| FLD (X) | |||
| faddp %st,%st(1) | |||
| addl $1 * SIZE, X | |||
| decl I | |||
| jg .L21 | |||
| jmp .L998 | |||
| ALIGN_4 | |||
| .L40: | |||
| movl M, I | |||
| sarl $3, I | |||
| jle .L60 | |||
| ALIGN_4 | |||
| .L50: | |||
| FLD (X) | |||
| addl INCX, X | |||
| FLD (X) | |||
| addl INCX, X | |||
| FLD (X) | |||
| addl INCX, X | |||
| FLD (X) | |||
| addl INCX, X | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| FLD (X) | |||
| addl INCX, X | |||
| FLD (X) | |||
| addl INCX, X | |||
| FLD (X) | |||
| addl INCX, X | |||
| FLD (X) | |||
| addl INCX, X | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| decl I | |||
| jg .L50 | |||
| ALIGN_4 | |||
| .L60: | |||
| movl M, I | |||
| andl $7, I | |||
| jle .L998 | |||
| ALIGN_4 | |||
| .L61: | |||
| FLD (X) | |||
| addl INCX, X | |||
| faddp %st,%st(1) | |||
| decl I | |||
| jg .L61 | |||
| ALIGN_4 | |||
| .L998: | |||
| faddp %st,%st(2) | |||
| faddp %st,%st(1) | |||
| faddp %st,%st(1) | |||
| ALIGN_4 | |||
| .L999: | |||
| popl %ebx | |||
| popl %esi | |||
| ret | |||
| EPILOGUE | |||
| @@ -0,0 +1,208 @@ | |||
| /*********************************************************************/ | |||
| /* Copyright 2009, 2010 The University of Texas at Austin. */ | |||
| /* All rights reserved. */ | |||
| /* */ | |||
| /* Redistribution and use in source and binary forms, with or */ | |||
| /* without modification, are permitted provided that the following */ | |||
| /* conditions are met: */ | |||
| /* */ | |||
| /* 1. Redistributions of source code must retain the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer. */ | |||
| /* */ | |||
| /* 2. Redistributions in binary form must reproduce the above */ | |||
| /* copyright notice, this list of conditions and the following */ | |||
| /* disclaimer in the documentation and/or other materials */ | |||
| /* provided with the distribution. */ | |||
| /* */ | |||
| /* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */ | |||
| /* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */ | |||
| /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */ | |||
| /* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */ | |||
| /* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */ | |||
| /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */ | |||
| /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */ | |||
| /* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */ | |||
| /* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */ | |||
| /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */ | |||
| /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ | |||
| /* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ | |||
| /* POSSIBILITY OF SUCH DAMAGE. */ | |||
| /* */ | |||
| /* The views and conclusions contained in the software and */ | |||
| /* documentation are those of the authors and should not be */ | |||
| /* interpreted as representing official policies, either expressed */ | |||
| /* or implied, of The University of Texas at Austin. */ | |||
| /*********************************************************************/ | |||
| #define ASSEMBLER | |||
| #include "common.h" | |||
| #define STACK 8 | |||
| #define ARGS 0 | |||
| #define STACK_M 4 + STACK + ARGS(%esp) | |||
| #define STACK_X 8 + STACK + ARGS(%esp) | |||
| #define STACK_INCX 12 + STACK + ARGS(%esp) | |||
| #define M %edx | |||
| #define X %ecx | |||
| #define INCX %esi | |||
| #define I %eax | |||
| #include "l1param.h" | |||
| PROLOGUE | |||
| pushl %esi | |||
| pushl %ebx | |||
| PROFCODE | |||
| #if defined(F_INTERFACE_GFORT) || defined(F_INTERFACE_G95) | |||
| EMMS | |||
| #endif | |||
| movl STACK_M, M | |||
| movl STACK_X, X | |||
| movl STACK_INCX, INCX | |||
| #ifdef F_INTERFACE | |||
| movl (M), M | |||
| movl (INCX), INCX | |||
| #endif | |||
| fldz | |||
| testl M, M | |||
| jle .L999 | |||
| testl INCX, INCX | |||
| jle .L999 | |||
| sall $ZBASE_SHIFT, INCX | |||
| fldz | |||
| fldz | |||
| fldz | |||
| cmpl $SIZE * 2, INCX | |||
| jne .L40 | |||
| movl M, I | |||
| sarl $2, I | |||
| jle .L20 | |||
| ALIGN_4 | |||
| .L10: | |||
| #ifdef PREFETCH | |||
| PREFETCH (PREFETCHSIZE + 0) - PREOFFSET(X) | |||
| #endif | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| FLD 2 * SIZE(X) | |||
| FLD 3 * SIZE(X) | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| FLD 4 * SIZE(X) | |||
| FLD 5 * SIZE(X) | |||
| FLD 6 * SIZE(X) | |||
| FLD 7 * SIZE(X) | |||
| addl $8 * SIZE, X | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| decl I | |||
| jg .L10 | |||
| ALIGN_4 | |||
| .L20: | |||
| movl M, I | |||
| andl $3, I | |||
| jle .L998 | |||
| ALIGN_4 | |||
| .L21: | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| faddp %st,%st(3) | |||
| faddp %st,%st(1) | |||
| addl $2 * SIZE, X | |||
| decl I | |||
| jg .L21 | |||
| jmp .L998 | |||
| ALIGN_4 | |||
| .L40: | |||
| movl M, I | |||
| sarl $2, I | |||
| jle .L60 | |||
| ALIGN_4 | |||
| .L50: | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| addl INCX, X | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| addl INCX, X | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| addl INCX, X | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| addl INCX, X | |||
| faddp %st, %st(7) | |||
| faddp %st, %st(5) | |||
| faddp %st, %st(3) | |||
| faddp %st, %st(1) | |||
| decl I | |||
| jg .L50 | |||
| ALIGN_4 | |||
| .L60: | |||
| movl M, I | |||
| andl $3, I | |||
| jle .L998 | |||
| ALIGN_4 | |||
| .L61: | |||
| FLD 0 * SIZE(X) | |||
| FLD 1 * SIZE(X) | |||
| addl INCX, X | |||
| faddp %st,%st(3) | |||
| faddp %st,%st(1) | |||
| decl I | |||
| jg .L61 | |||
| ALIGN_4 | |||
| .L998: | |||
| faddp %st,%st(2) | |||
| faddp %st,%st(1) | |||
| faddp %st,%st(1) | |||
| ALIGN_4 | |||
| .L999: | |||
| popl %ebx | |||
| popl %esi | |||
| ret | |||
| EPILOGUE | |||