[powerpc] libc_feholdsetround_noex_ppc_ctx: optimize FPSCR write

libc_feholdsetround_noex_ppc_ctx currently performs:
1. Read FPSCR, save to context.
2. Create new FPSCR value: clear enables and set new rounding mode.
3. Write new value to FPSCR.

Since other bits just pass through, there is no need to write them.

Instead, write just the changed values (enables and rounding mode),
which can be a bit more efficient.
This commit is contained in:
Paul A. Clarke 2019-09-19 11:31:31 -05:00
parent 81ecb0ee49
commit 36c17c7079
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2019-09-27 Paul A. Clarke <pc@us.ibm.com>
* sysdeps/powerpc/fpu/fenv_private.h
(libc_feholdsetround_noex_ppc_ctx): Call fesetenv_mode instead
of fesetenv_register.
2019-09-27 Paul A. Clarke <pc@us.ibm.com>
* sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status): Rename to

View File

@ -142,7 +142,7 @@ libc_feholdsetround_noex_ppc_ctx (struct rm_ctx *ctx, int r)
if (__glibc_unlikely (new.l != old.l))
{
__TEST_AND_ENTER_NON_STOP (old.l, 0ULL);
fesetenv_register (new.fenv);
fesetenv_mode (new.fenv);
ctx->updated_status = true;
}
else