crti.asm (_init, _fini): Increase frame size to 64.
* config/xtensa/crti.asm (_init, _fini): Increase frame size to 64. * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, __umodsi3, __modsi3): Increase frame size to 32. From-SVN: r69719
This commit is contained in:
parent
5f5bfdd010
commit
0715415659
3 changed files with 25 additions and 14 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2003-07-23 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
|
* config/xtensa/crti.asm (_init, _fini): Increase frame size to 64.
|
||||||
|
* config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3,
|
||||||
|
__umodsi3, __modsi3): Increase frame size to 32.
|
||||||
|
|
||||||
2003-07-23 Geoffrey Keating <geoffk@apple.com>
|
2003-07-23 Geoffrey Keating <geoffk@apple.com>
|
||||||
|
|
||||||
* config/rs6000/host-darwin.c: ANSIfy, update comment for sigaltstack
|
* config/rs6000/host-darwin.c: ANSIfy, update comment for sigaltstack
|
||||||
|
|
|
@ -34,11 +34,11 @@
|
||||||
.type _init,@function
|
.type _init,@function
|
||||||
.align 4
|
.align 4
|
||||||
_init:
|
_init:
|
||||||
entry sp, 40
|
entry sp, 64
|
||||||
|
|
||||||
.section .fini
|
.section .fini
|
||||||
.globl _fini
|
.globl _fini
|
||||||
.type _fini,@function
|
.type _fini,@function
|
||||||
.align 4
|
.align 4
|
||||||
_fini:
|
_fini:
|
||||||
entry sp, 40
|
entry sp, 64
|
||||||
|
|
|
@ -30,6 +30,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
|
||||||
#include "xtensa-config.h"
|
#include "xtensa-config.h"
|
||||||
|
|
||||||
|
# Note: These functions use a minimum stack frame size of 32. This is
|
||||||
|
# necessary for Xtensa configurations that only support a fixed register
|
||||||
|
# window size of 8, where even leaf functions (such as these) need to
|
||||||
|
# allocate space for a 4-word "extra save area".
|
||||||
|
|
||||||
# Define macros for the ABS and ADDX* instructions to handle cases
|
# Define macros for the ABS and ADDX* instructions to handle cases
|
||||||
# where they are not included in the Xtensa processor configuration.
|
# where they are not included in the Xtensa processor configuration.
|
||||||
|
|
||||||
|
@ -75,7 +80,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||||
.global __mulsi3
|
.global __mulsi3
|
||||||
.type __mulsi3,@function
|
.type __mulsi3,@function
|
||||||
__mulsi3:
|
__mulsi3:
|
||||||
entry sp, 16
|
entry sp, 32
|
||||||
|
|
||||||
#if XCHAL_HAVE_MUL16
|
#if XCHAL_HAVE_MUL16
|
||||||
or a4, a2, a3
|
or a4, a2, a3
|
||||||
|
@ -237,7 +242,7 @@ __nsau_data:
|
||||||
.global __udivsi3
|
.global __udivsi3
|
||||||
.type __udivsi3,@function
|
.type __udivsi3,@function
|
||||||
__udivsi3:
|
__udivsi3:
|
||||||
entry sp, 16
|
entry sp, 32
|
||||||
bltui a3, 2, .Lle_one # check if the divisor <= 1
|
bltui a3, 2, .Lle_one # check if the divisor <= 1
|
||||||
|
|
||||||
mov a6, a2 # keep dividend in a6
|
mov a6, a2 # keep dividend in a6
|
||||||
|
@ -296,7 +301,7 @@ __udivsi3:
|
||||||
.global __divsi3
|
.global __divsi3
|
||||||
.type __divsi3,@function
|
.type __divsi3,@function
|
||||||
__divsi3:
|
__divsi3:
|
||||||
entry sp, 16
|
entry sp, 32
|
||||||
xor a7, a2, a3 # sign = dividend ^ divisor
|
xor a7, a2, a3 # sign = dividend ^ divisor
|
||||||
do_abs a6, a2, a4 # udividend = abs(dividend)
|
do_abs a6, a2, a4 # udividend = abs(dividend)
|
||||||
do_abs a3, a3, a4 # udivisor = abs(divisor)
|
do_abs a3, a3, a4 # udivisor = abs(divisor)
|
||||||
|
@ -361,7 +366,7 @@ __divsi3:
|
||||||
.global __umodsi3
|
.global __umodsi3
|
||||||
.type __umodsi3,@function
|
.type __umodsi3,@function
|
||||||
__umodsi3:
|
__umodsi3:
|
||||||
entry sp, 16
|
entry sp, 32
|
||||||
bltui a3, 2, .Lle_one # check if the divisor is <= 1
|
bltui a3, 2, .Lle_one # check if the divisor is <= 1
|
||||||
|
|
||||||
do_nsau a5, a2, a6, a7 # dividend_shift = nsau(dividend)
|
do_nsau a5, a2, a6, a7 # dividend_shift = nsau(dividend)
|
||||||
|
@ -413,7 +418,7 @@ __umodsi3:
|
||||||
.global __modsi3
|
.global __modsi3
|
||||||
.type __modsi3,@function
|
.type __modsi3,@function
|
||||||
__modsi3:
|
__modsi3:
|
||||||
entry sp, 16
|
entry sp, 32
|
||||||
mov a7, a2 # save original (signed) dividend
|
mov a7, a2 # save original (signed) dividend
|
||||||
do_abs a2, a2, a4 # udividend = abs(dividend)
|
do_abs a2, a2, a4 # udividend = abs(dividend)
|
||||||
do_abs a3, a3, a4 # udivisor = abs(divisor)
|
do_abs a3, a3, a4 # udivisor = abs(divisor)
|
||||||
|
|
Loading…
Add table
Reference in a new issue