--- a/usr/src/lib/libc/amd64/gen/byteorder.s Tue May 22 10:56:13 2007 -0700
+++ b/usr/src/lib/libc/amd64/gen/byteorder.s Tue May 22 11:10:09 2007 -0700
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -30,6 +29,15 @@
#include "SYS.h"
+ /*
+ * NOTE: htonl/ntohl are identical routines, as are htons/ntohs.
+ * As such, they could be implemented as a single routine, using
+ * multiple ALTENTRY/SET_SIZE definitions. We don't do this so
+ * that they will have unique addresses, allowing DTrace and
+ * other debuggers to tell them apart.
+ */
+
+
/*
* unsigned long htonl( hl )
* unsigned long ntohl( hl )
@@ -37,11 +45,15 @@
* reverses the byte order of 'uint32_t hl'
*/
ENTRY(htonl)
- ALTENTRY(ntohl)
movl %edi, %eax /* %eax = hl */
bswap %eax /* reverses the byte order of %eax */
ret /* return (%eax) */
SET_SIZE(htonl)
+
+ ENTRY(ntohl)
+ movl %edi, %eax /* %eax = hl */
+ bswap %eax /* reverses the byte order of %eax */
+ ret /* return (%eax) */
SET_SIZE(ntohl)
/*
@@ -51,10 +63,15 @@
* reverses the byte order in hs.
*/
ENTRY(htons)
- ALTENTRY(ntohs)
movl %edi, %eax /* %eax = hs */
bswap %eax /* reverses the byte order of %eax */
shrl $16, %eax /* moves high 16-bit to low 16-bit */
ret /* return (%eax) */
SET_SIZE(htons)
+
+ ENTRY(ntohs)
+ movl %edi, %eax /* %eax = hs */
+ bswap %eax /* reverses the byte order of %eax */
+ shrl $16, %eax /* moves high 16-bit to low 16-bit */
+ ret /* return (%eax) */
SET_SIZE(ntohs)