The mapping is, effectively, an exclusive or with 0x01. Replace.
Savings: 10 bytes of code/constant data, 1 machine instruction (including one memory access).
This commit is contained in:
parent
ff72f95eaa
commit
0bffee4893
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: flt_rounds.S,v 1.8 1999/10/25 23:48:10 thorpej Exp $ */
|
||||
/* $NetBSD: flt_rounds.S,v 1.9 2000/12/04 12:02:08 is Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 6, 1995
|
||||
|
@ -9,15 +9,17 @@
|
|||
|
||||
.text
|
||||
.even
|
||||
#if 0
|
||||
/* XXX This is, effectively, an exclusive-or with 1 operation. */
|
||||
_map:
|
||||
.byte 1 /* round to nearest */
|
||||
.byte 0 /* round to zero */
|
||||
.byte 3 /* round to negative infinity */
|
||||
.byte 2 /* round to positive infinity */
|
||||
#endif
|
||||
|
||||
ENTRY(__flt_rounds)
|
||||
fmovel %fpcr,%d0
|
||||
bfextu %d0{#26:#2},%d0
|
||||
lea _map,%a0
|
||||
moveb %a0@(%d0:l:1),%d0
|
||||
eorib #1,%d0
|
||||
rts
|
||||
|
|
Loading…
Reference in New Issue