Author: alanmc
Date: 2007-03-25 12:12:05 -0500 (Sun, 25 Mar 2007)
New Revision: 74962
Modified:
trunk/mcs/class/System/System.Net/ChangeLog
trunk/mcs/class/System/System.Net/IPAddress.cs
Log:
Further optimisation for the Swap*** methods. SwapLong is now twice as fast as
the initial method.
Modified: trunk/mcs/class/System/System.Net/ChangeLog
===================================================================
--- trunk/mcs/class/System/System.Net/ChangeLog 2007-03-25 16:23:36 UTC (rev
74961)
+++ trunk/mcs/class/System/System.Net/ChangeLog 2007-03-25 17:12:05 UTC (rev
74962)
@@ -1,3 +1,7 @@
+2007-03-25 Alan McGovern <[EMAIL PROTECTED]>
+
+ * IPAddress.cs : Further optimisation for the Swap*** methods.
+
2007-03-24 Alan McGovern <[EMAIL PROTECTED]>
* IPAddress.cs : Optimised the SwapInt and SwapLong methods.
Modified: trunk/mcs/class/System/System.Net/IPAddress.cs
===================================================================
--- trunk/mcs/class/System/System.Net/IPAddress.cs 2007-03-25 16:23:36 UTC
(rev 74961)
+++ trunk/mcs/class/System/System.Net/IPAddress.cs 2007-03-25 17:12:05 UTC
(rev 74962)
@@ -58,28 +58,28 @@
private static short SwapShort (short number)
{
- return (short) ( ((number >> 8) & 0xFF) + ((number <<
8) & 0xFF00) );
+ return (short) ( ((number >> 8) & 0xFF) | ((number <<
8) & 0xFF00) );
}
private static int SwapInt (int number)
{
- return ((number >> 24) & 0xFF)
- + (((number >> 16) & 0xFF) << 8)
- + (((number >> 8) & 0xFF) << 16)
- + ((number & 0xFF) << 24);
+ return (((number >> 24) & 0xFF)
+ | ((number >> 08) & 0xFF00)
+ | ((number << 08) & 0xFF0000)
+ | ((number << 24)));
}
- private static long SwapLong(long number)
- {
- return (((number >> 56) & 0xFF)
- + (((number >> 48) & 0xFF) << 8)
- + (((number >> 40) & 0xFF) << 16)
- + (((number >> 32) & 0xFF) << 24)
- + (((number >> 24) & 0xFF) << 32)
- + (((number >> 16) & 0xFF) << 40)
- + (((number >> 8) & 0xFF) << 48)
- + ((number & 0xFF) << 56));
- }
+ private static long SwapLong(long number)
+ {
+ return (((number >> 56) & 0xFF)
+ | ((number >> 40) & 0xFF00)
+ | ((number >> 24) & 0xFF0000)
+ | ((number >> 08) & 0xFF000000)
+ | ((number << 08) & 0xFF00000000)
+ | ((number << 24) & 0xFF0000000000)
+ | ((number << 40) & 0xFF000000000000)
+ | ((number << 56)));
+ }
public static short HostToNetworkOrder(short host) {
if (!BitConverter.IsLittleEndian)
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches