summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-12 20:02:36 +0000
committerbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-12 20:02:36 +0000
commit9c45dd903f5143808974a422bc4d1faedc099769 (patch)
tree0dd65f61fd44112d0578512c728d7272344caa81
parent9f30f4f96b386c12f936841411d08874e17985ab (diff)
downloadgcc-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/ChangeLog12
-rw-r--r--gcc/config/xtensa/lib1funcs.asm39
-rw-r--r--gcc/config/xtensa/lib2funcs.S9
-rw-r--r--gcc/config/xtensa/xtensa-config.h8
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