Author: nextgens
Date: 2006-02-13 22:13:11 +0000 (Mon, 13 Feb 2006)
New Revision: 8039

Modified:
   trunk/freenet/src/net/i2p/util/NativeBigInteger.java
Log:
It allows people using x86_64 processors on a 32 bit system to use a native 
optimized BigInteger library

Modified: trunk/freenet/src/net/i2p/util/NativeBigInteger.java
===================================================================
--- trunk/freenet/src/net/i2p/util/NativeBigInteger.java        2006-02-13 
20:09:02 UTC (rev 8038)
+++ trunk/freenet/src/net/i2p/util/NativeBigInteger.java        2006-02-13 
22:13:11 UTC (rev 8039)
@@ -105,15 +105,16 @@

     private final static String JBIGI_OPTIMIZATION_K6          = "k6";
     private final static String JBIGI_OPTIMIZATION_K6_2        = "k62";
-    private final static String JBIGI_OPTIMIZATION_K6_3                = "k63";
+    private final static String JBIGI_OPTIMIZATION_K6_3                        
= "k63";
     private final static String JBIGI_OPTIMIZATION_ATHLON      = "athlon";
     private final static String JBIGI_OPTIMIZATION_X86_64      = "x86_64";
+    private final static String JBIGI_OPTIMIZATION_X86_64_32    = "x86_64_32";
     private final static String JBIGI_OPTIMIZATION_PENTIUM     = "pentium";
     private final static String JBIGI_OPTIMIZATION_PENTIUMMMX  = "pentiummmx";
     private final static String JBIGI_OPTIMIZATION_PENTIUM2    = "pentium2";
     private final static String JBIGI_OPTIMIZATION_PENTIUM3    = "pentium3";
     private final static String JBIGI_OPTIMIZATION_PENTIUM4    = "pentium4";
-    private final static String JBIGI_OPTIMIZATION_PPC                 = "osx";
+    private final static String JBIGI_OPTIMIZATION_PPC                         
= "osx";

     private final static String sCPUType; //The CPU Type to optimize for (one 
of the above strings)

@@ -130,11 +131,16 @@
     private static String resolveCPUType() {
                try {
                        
if(System.getProperty("os.arch").toLowerCase().matches("(i?[x0-9]86_64|amd64)")){
-                               System.out.println("Detected x86_64!");
-                               return JBIGI_OPTIMIZATION_X86_64;
+                               
if(System.getProperty("sun.arch.data.model")=="64"){
+                                       System.out.println("Detected x86_64 
running on a 64 bit jvm!");
+                                       return JBIGI_OPTIMIZATION_X86_64;
+                               }else{
+                                       System.out.println("Detected x86_64! 
using compatibility mode");
+                                       return JBIGI_OPTIMIZATION_X86_64_32;    
+                               }
                        }else   
if(System.getProperty("os.arch").toLowerCase().matches("(ppc)")){
-                               System.out.println("Detected PowerPC!");
-                               return JBIGI_OPTIMIZATION_PPC;
+                                       System.out.println("Detected PowerPC!");
+                                       return JBIGI_OPTIMIZATION_PPC;
                        }else{
                                CPUInfo c = CPUID.getInfo();
                                if (c instanceof AMDCPUInfo) {


Reply via email to