File:
[DVB] /
dietlibc /
alpha /
reml.S
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Thu Mar 8 14:58:41 2001 UTC (23 years, 3 months ago) by
olaf
Branches:
MAIN
CVS tags:
finnland_test_200301,
branch_rc14_fieldtest_finnland,
branch_rc13_fieldtest_finnland,
branch_rc12_fieldtest_finnland,
branch_rc10_fieldtest_finnland,
RELEASE_finnland_200301_1,
RC12_FIELDTEST_FINNLAND,
RC10_FIELDTEST_FINNLAND,
HEAD
added missing alpha functions for devision and remainder
/* taken from glibc 2.2 */
.set noreorder
.set noat
.ent __remlu
.globl __remlu
.align 3
__remlu :
lda $30 , -32($30)
.frame $30 , 32 , $23 , 0
.prologue 0
.Ludiv:
stq $1 , 0($30)
zapnot $25 , 15 , $1
stq $2 , 8($30)
zapnot $24 , 15 , $27
stq $0 , 16($30)
clr $2
stq $3 , 24($30)
ldiq $0 , 1
beq $1 , .Ldivbyzero
.align 3
1: cmpult $1 , $27 , $at
s8addq $1 , $31 , $1
s8addq $0 , $31 , $0
bne $at , 1b
3:
srl $0 , 1 , $0
cmpule $1 , $27 , $at
subq $27 , $1 , $3
srl $1 , 1 , $1
cmovne $at , $3 , $27
bne $0 , 3b
.Ldone: ldq $1 , 0($30)
ldq $2 , 8($30)
ldq $0 , 16($30)
ldq $3 , 24($30)
lda $30 , 32($30)
ret $31 , ($23), 1
.Ldivbyzero:
mov $16 , $3
ldiq $16 , -2
call_pal 170
mov $3 , $16
clr $27
br .Ldone
.end __remlu
.ent __reml
.globl __reml
.align 3
__reml :
lda $30 , - 32 ($30 )
.frame $30 , 32 , $23 , 0
.prologue 0
or $24 , $25 , $at
sextl $at , $at
bge $at , .Ludiv
stq $24 , 0($30 )
negl $24 , $at
stq $25 , 8($30 )
cmovge $at , $at , $24
stq $23 , 16($30 )
negl $25 , $at
stq $3 , 24($30 )
cmovge $at , $at , $25
bsr $23 , __remlu
ldq $24 , 0($30 )
ldq $25 , 8($30 )
mov $24 , $at
negl $27 , $3
sextl $at , $at
ldq $23 , 16($30 )
cmovlt $at , $3 , $27
ldq $3 , 24($30 )
lda $30 , 32 ($30 )
ret $31 , ($23 ), 1
.end __reml
LinuxTV legacy CVS <linuxtv.org/cvs>