mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 21:10:07 +00:00
* sysdeps/alpha/remqu.S: Detect power-of-two special case.
2004-03-30 Richard Henderson <rth@redhat.com> * sysdeps/alpha/remqu.S: Detect power-of-two special case.
This commit is contained in:
parent
3fa21fd813
commit
b6f10974a7
@ -1,3 +1,7 @@
|
|||||||
|
2004-03-30 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/alpha/remqu.S: Detect power-of-two special case.
|
||||||
|
|
||||||
2004-03-30 Ulrich Drepper <drepper@redhat.com>
|
2004-03-30 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/generic/libc-start.c (LIBC_START_MAIN)
|
* sysdeps/generic/libc-start.c (LIBC_START_MAIN)
|
||||||
|
@ -54,24 +54,25 @@ __remqu:
|
|||||||
going to use the results. */
|
going to use the results. */
|
||||||
stq X, 16(sp)
|
stq X, 16(sp)
|
||||||
stq Y, 24(sp)
|
stq Y, 24(sp)
|
||||||
beq Y, DIVBYZERO
|
subq Y, 1, AT
|
||||||
|
|
||||||
stt $f0, 0(sp)
|
stt $f0, 0(sp)
|
||||||
|
and Y, AT, AT
|
||||||
stt $f1, 8(sp)
|
stt $f1, 8(sp)
|
||||||
|
beq AT, $powerof2
|
||||||
cfi_rel_offset ($f0, 0)
|
cfi_rel_offset ($f0, 0)
|
||||||
cfi_rel_offset ($f1, 8)
|
cfi_rel_offset ($f1, 8)
|
||||||
|
|
||||||
ldt $f0, 16(sp)
|
ldt $f0, 16(sp)
|
||||||
ldt $f1, 24(sp)
|
ldt $f1, 24(sp)
|
||||||
|
|
||||||
cvtqt $f0, $f0
|
cvtqt $f0, $f0
|
||||||
cvtqt $f1, $f1
|
cvtqt $f1, $f1
|
||||||
|
|
||||||
blt X, $x_is_neg
|
blt X, $x_is_neg
|
||||||
divt/c $f0, $f1, $f0
|
divt/c $f0, $f1, $f0
|
||||||
|
|
||||||
/* Check to see if Y was mis-converted as signed value. */
|
/* Check to see if Y was mis-converted as signed value. */
|
||||||
ldt $f1, 8(sp)
|
ldt $f1, 8(sp)
|
||||||
unop
|
|
||||||
nop
|
|
||||||
blt Y, $y_is_neg
|
blt Y, $y_is_neg
|
||||||
|
|
||||||
/* Check to see if X fit in the double as an exact value. */
|
/* Check to see if X fit in the double as an exact value. */
|
||||||
@ -245,6 +246,16 @@ $y_is_neg:
|
|||||||
cfi_def_cfa_offset (0)
|
cfi_def_cfa_offset (0)
|
||||||
ret $31, (RA), 1
|
ret $31, (RA), 1
|
||||||
|
|
||||||
|
.align 4
|
||||||
|
cfi_def_cfa_offset (FRAME)
|
||||||
|
$powerof2:
|
||||||
|
subq Y, 1, AT
|
||||||
|
beq Y, DIVBYZERO
|
||||||
|
and X, AT, RV
|
||||||
|
lda sp, FRAME(sp)
|
||||||
|
cfi_def_cfa_offset (0)
|
||||||
|
ret $31, (RA), 1
|
||||||
|
|
||||||
cfi_endproc
|
cfi_endproc
|
||||||
.size __remqu, .-__remqu
|
.size __remqu, .-__remqu
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user