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: r50678
This commit is contained in:
Bob Wilson 2002-03-12 20:06:55 +00:00 committed by Bob Wilson
parent dd8b35c272
commit fa8bcfde1a
4 changed files with 66 additions and 2 deletions

View File

@ -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 Michael Matz <matz@suse.de>
* config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.

View File

@ -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

View File

@ -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

View File

@ -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