diff options
author | Bob Wilson <bob.wilson@acm.org> | 2002-03-12 20:02:36 +0000 |
---|---|---|
committer | Bob Wilson <bwilson@gcc.gnu.org> | 2002-03-12 20:02:36 +0000 |
commit | e2fb85daa1bd54e7f64f99831000b0219118d8c3 (patch) | |
tree | 0dd65f61fd44112d0578512c728d7272344caa81 /gcc/config/xtensa | |
parent | 5a471df6f90bc64da849851237864184394f77ae (diff) | |
download | gcc-e2fb85daa1bd54e7f64f99831000b0219118d8c3.zip gcc-e2fb85daa1bd54e7f64f99831000b0219118d8c3.tar.gz gcc-e2fb85daa1bd54e7f64f99831000b0219118d8c3.tar.bz2 |
xtensa-config.h: Define XCHAL_HAVE_LOOPS.
* config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
* config/xtensa/lib1funcs.asm: Fix copyright to include
special case for libgcc files.
(__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
(__divsi3): Likewise.
(__umodsi3): Likewise.
(__modsi3): Likewise.
* config/xtensa/lib2funcs.S: Fix copyright to include
special case for libgcc files.
From-SVN: r50677
Diffstat (limited to 'gcc/config/xtensa')
-rw-r--r-- | gcc/config/xtensa/lib1funcs.asm | 39 | ||||
-rw-r--r-- | gcc/config/xtensa/lib2funcs.S | 9 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa-config.h | 8 |
3 files changed, 54 insertions, 2 deletions
diff --git a/gcc/config/xtensa/lib1funcs.asm b/gcc/config/xtensa/lib1funcs.asm index acfb357..a40f11b 100644 --- a/gcc/config/xtensa/lib1funcs.asm +++ b/gcc/config/xtensa/lib1funcs.asm @@ -1,5 +1,5 @@ /* Assembly functions for the Xtensa version of libgcc1. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001,2002 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. @@ -9,6 +9,15 @@ the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) + GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License @@ -211,13 +220,20 @@ __udivsi3: movi a2, 0 # quotient = 0 # test-subtract-and-shift loop; one quotient bit on each iteration +#if XCHAL_HAVE_LOOPS loopnez a4, .Lloopend +#endif /* XCHAL_HAVE_LOOPS */ +.Lloop: bltu a6, a3, .Lzerobit sub a6, a6, a3 addi a2, a2, 1 .Lzerobit: slli a2, a2, 1 srli a3, a3, 1 +#if !XCHAL_HAVE_LOOPS + addi a4, a4, -1 + bnez a4, .Lloop +#endif /* !XCHAL_HAVE_LOOPS */ .Lloopend: bltu a6, a3, .Lreturn @@ -270,13 +286,20 @@ __divsi3: movi a2, 0 # quotient = 0 # test-subtract-and-shift loop; one quotient bit on each iteration +#if XCHAL_HAVE_LOOPS loopnez a4, .Lloopend +#endif /* XCHAL_HAVE_LOOPS */ +.Lloop: bltu a6, a3, .Lzerobit sub a6, a6, a3 addi a2, a2, 1 .Lzerobit: slli a2, a2, 1 srli a3, a3, 1 +#if !XCHAL_HAVE_LOOPS + addi a4, a4, -1 + bnez a4, .Lloop +#endif /* !XCHAL_HAVE_LOOPS */ .Lloopend: bltu a6, a3, .Lreturn @@ -331,11 +354,18 @@ __umodsi3: sll a3, a3 # divisor <<= count # test-subtract-and-shift loop +#if XCHAL_HAVE_LOOPS loopnez a4, .Lloopend +#endif /* XCHAL_HAVE_LOOPS */ +.Lloop: bltu a2, a3, .Lzerobit sub a2, a2, a3 .Lzerobit: srli a3, a3, 1 +#if !XCHAL_HAVE_LOOPS + addi a4, a4, -1 + bnez a4, .Lloop +#endif /* !XCHAL_HAVE_LOOPS */ .Lloopend: bltu a2, a3, .Lreturn @@ -384,11 +414,18 @@ __modsi3: sll a3, a3 # udivisor <<= count # test-subtract-and-shift loop +#if XCHAL_HAVE_LOOPS loopnez a4, .Lloopend +#endif /* XCHAL_HAVE_LOOPS */ +.Lloop: bltu a2, a3, .Lzerobit sub a2, a2, a3 .Lzerobit: srli a3, a3, 1 +#if !XCHAL_HAVE_LOOPS + addi a4, a4, -1 + bnez a4, .Lloop +#endif /* !XCHAL_HAVE_LOOPS */ .Lloopend: bltu a2, a3, .Lreturn diff --git a/gcc/config/xtensa/lib2funcs.S b/gcc/config/xtensa/lib2funcs.S index 82679e6..f607e01 100644 --- a/gcc/config/xtensa/lib2funcs.S +++ b/gcc/config/xtensa/lib2funcs.S @@ -9,6 +9,15 @@ the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) + GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License diff --git a/gcc/config/xtensa/xtensa-config.h b/gcc/config/xtensa/xtensa-config.h index 277efb2..edeae97 100644 --- a/gcc/config/xtensa/xtensa-config.h +++ b/gcc/config/xtensa/xtensa-config.h @@ -1,7 +1,12 @@ /* Xtensa configuration settings. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001,2002 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. +** NOTE: This file was automatically generated by the Xtensa Processor +** Generator. Changes made here will be lost when this file is +** updated or replaced with the settings for a different Xtensa +** processor configuration. DO NOT EDIT! + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) @@ -29,6 +34,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define XCHAL_HAVE_NSA 1 #define XCHAL_HAVE_MINMAX 0 #define XCHAL_HAVE_SEXT 0 +#define XCHAL_HAVE_LOOPS 1 #define XCHAL_HAVE_BOOLEANS 0 #define XCHAL_HAVE_FP 0 #define XCHAL_HAVE_FP_DIV 0 |