mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-11 11:50:06 +00:00
alpha: Fix __remqu corrupting $f3 register
There was missing restore of $f3 before the return from the function via the $y_is_neg path. This caused the math/big testcase from Go-1.11 testsuite (that includes lots of corner cases that exercise remqu) FAIL. [BZ #24130] * sysdeps/alpha/remqu.S (__remqu): Add missing restore of $f3 register on $y_is_neg path.
This commit is contained in:
parent
a0bb5abd09
commit
8d0168264a
@ -1,3 +1,9 @@
|
||||
2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
|
||||
|
||||
[BZ #24130]
|
||||
* sysdeps/alpha/remqu.S (__remqu): Add missing restore
|
||||
of $f3 register on $y_is_neg path.
|
||||
|
||||
2019-01-24 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
|
||||
* hurd/hurdsig.c (_hurd_thread_sigstate): Set SS_DISABLE in
|
||||
|
@ -246,12 +246,16 @@ $y_is_neg:
|
||||
quotient must be either 0 or 1, so the remainder must be X
|
||||
or X-Y, so just compute it directly. */
|
||||
cmpule Y, X, AT
|
||||
excb
|
||||
mt_fpcr $f3
|
||||
subq X, Y, RV
|
||||
ldt $f0, 0(sp)
|
||||
ldt $f3, 48(sp)
|
||||
cmoveq AT, X, RV
|
||||
|
||||
lda sp, FRAME(sp)
|
||||
cfi_restore ($f0)
|
||||
cfi_restore ($f3)
|
||||
cfi_def_cfa_offset (0)
|
||||
ret $31, (RA), 1
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user