diff options
author | bwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-12 20:02:36 +0000 |
---|---|---|
committer | bwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-12 20:02:36 +0000 |
commit | 9c45dd903f5143808974a422bc4d1faedc099769 (patch) | |
tree | 0dd65f61fd44112d0578512c728d7272344caa81 | |
parent | 9f30f4f96b386c12f936841411d08874e17985ab (diff) | |
download | gcc-9c45dd903f5143808974a422bc4d1faedc099769.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50677 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-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 |
4 files changed, 66 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cccf79ffdbe..87e5ca1afcf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2002-03-12 Bob Wilson <bob.wilson@acm.org> + + * 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. + 2002-03-12 Tom Rix <trix@redhat.com> * collect2.c (resolve_lib_name): Move outside of diff --git a/gcc/config/xtensa/lib1funcs.asm b/gcc/config/xtensa/lib1funcs.asm index acfb35769bf..a40f11b5ff8 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 82679e65733..f607e01f2ea 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 277efb2a822..edeae978890 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 |