summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2001-10-10 10:34:08 +0000
committerdfr <dfr@FreeBSD.org>2001-10-10 10:34:08 +0000
commit4338eb2498882d4c71fc92d803dec401aa9f9455 (patch)
tree932409bf053d1bc84931793b902aaa74eceee2f1 /lib/libc
parent339786b751e72bf6e95c6197ea326258b7400971 (diff)
downloadFreeBSD-src-4338eb2498882d4c71fc92d803dec401aa9f9455.zip
FreeBSD-src-4338eb2498882d4c71fc92d803dec401aa9f9455.tar.gz
Shorter versions of the byte swapping code.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/ia64/net/byte_swap_2.S9
-rw-r--r--lib/libc/ia64/net/byte_swap_4.S13
2 files changed, 7 insertions, 15 deletions
diff --git a/lib/libc/ia64/net/byte_swap_2.S b/lib/libc/ia64/net/byte_swap_2.S
index 26073af..fbee3c8 100644
--- a/lib/libc/ia64/net/byte_swap_2.S
+++ b/lib/libc/ia64/net/byte_swap_2.S
@@ -39,10 +39,9 @@
*
* Argument is an unsigned 2-byte integer (u_int16_t).
*/
-ENTRY(NAME, 1) /* in0 = 0x0123 */
- extr.u r2=in0,8,8 /* r2 = 0x 01 */
- dep r3=in0,r0,8,8 /* r3 = 0x23 */
- ;;
- or ret0=r2,r3 /* ret0 = 0x2301 */
+ENTRY(NAME, 1)
+ mux1 r16=in0,@rev
+ ;;
+ extr.u r8=r16,48,16
br.ret.sptk.few rp
END(NAME)
diff --git a/lib/libc/ia64/net/byte_swap_4.S b/lib/libc/ia64/net/byte_swap_4.S
index 4f4068d..d183644 100644
--- a/lib/libc/ia64/net/byte_swap_4.S
+++ b/lib/libc/ia64/net/byte_swap_4.S
@@ -39,16 +39,9 @@
*
* Argument is an unsigned 4-byte integer (u_int32_t).
*/
-ENTRY(NAME, 1) /* in0 = 0x01234567 */
- extr.u r16=in0,0,8 /* r16 = 0x 67 */
- extr.u r17=in0,8,8 /* r17 = 0x 45 */
- extr.u r18=in0,16,8 /* r18 = 0x 23 */
- extr.u ret0=in0,24,8 /* ret0 = 0x 01 */
+ENTRY(NAME, 1)
+ mux1 r16=in0,@rev
;;
- dep ret0=r16,ret0,24,8 /* ret0 = 0x67 01 */
- ;;
- dep ret0=r17,ret0,16,8 /* ret0 = 0x6745 01 */
- ;;
- dep ret0=r18,ret0,8,8 /* ret0 = 0x67452301 */
+ extr.u r8=r16,32,32
br.ret.sptk.few rp
END(NAME)
OpenPOWER on IntegriCloud