diff -Nurpd nbench-byte-2.2.3-orig/Makefile nbench-byte-2.2.3-p3/Makefile
--- nbench-byte-2.2.3-orig/Makefile	2004-12-30 03:23:30.000000000 +0100
+++ nbench-byte-2.2.3-p3/Makefile	2011-06-30 18:17:10.042658656 +0200
@@ -22,7 +22,7 @@ default: nbench
 CC = gcc
 
 # generic options for gcc
-CFLAGS = -s -static -Wall -O3
+CFLAGS = -s -static -Wall -march=native -O3
 
 # if your gcc lets you do it, then try this one
 #CFLAGS = -s -static -Wall -O3 -fomit-frame-pointer -funroll-loops
Binary files nbench-byte-2.2.3-orig/nbench and nbench-byte-2.2.3-p3/nbench differ
diff -Nurpd nbench-byte-2.2.3-orig/nbench0.c nbench-byte-2.2.3-p3/nbench0.c
--- nbench-byte-2.2.3-orig/nbench0.c	2004-12-30 01:50:01.000000000 +0100
+++ nbench-byte-2.2.3-p3/nbench0.c	2011-06-30 19:04:29.422658818 +0200
@@ -72,6 +72,9 @@ double bstdev;          /* Benchmark std
 double lx_memindex;     /* Linux memory index (mainly integer operations)*/
 double lx_intindex;     /* Linux integer index */
 double lx_fpindex;      /* Linux floating-point index */
+double p3_memindex;     /* Pentium 3 memory index */
+double p3_intindex;     /* Pentium 3 integer index */
+double p3_fpindex;      /* Pentium 3 floating-point index */
 double intindex;        /* Integer index */
 double fpindex;         /* Floating-point index */
 ulong bnumrun;          /* # of runs */
@@ -118,6 +121,9 @@ write_to_file=0;
 lx_memindex=(double)1.0;        /* set for geometric mean computations */
 lx_intindex=(double)1.0;
 lx_fpindex=(double)1.0;
+p3_memindex=(double)1.0;
+p3_intindex=(double)1.0;
+p3_fpindex=(double)1.0;
 intindex=(double)1.0;
 fpindex=(double)1.0;
 mem_array_ents=0;               /* Nothing in mem array */
@@ -225,16 +231,16 @@ if(global_allstats)
         sprintf(buffer,"**%s\n",compilerversion);
         output_string(buffer);
 #endif
-                output_string("=============================================================================\n");
+                output_string("===============================================================================\n");
 }
 
 /*
 ** Execute the tests.
 */
 #ifdef LINUX
-output_string("\nTEST                : Iterations/sec.  : Old Index   : New Index\n");
-output_string("                    :                  : Pentium 90* : AMD K6/233*\n");
-output_string("--------------------:------------------:-------------:------------\n");
+output_string("\nTEST                : Iterations/sec.  : Old Index   : New Index   : Norm Index\n");
+output_string("                    :                  : Pentium 90* : AMD K6/233* : P3 1GHz*\n");
+output_string("--------------------:------------------:-------------:-------------:-------------\n");
 #endif
 
 for(i=0;i<NUMTESTS;i++)
@@ -251,8 +257,8 @@ for(i=0;i<NUMTESTS;i++)
 		  output_string("                    :");
 		}
 #ifdef LINUX
-                sprintf(buffer," %15.5g  :  %9.2f  :  %9.2f\n",
-                        bmean,bmean/bindex[i],bmean/lx_bindex[i]);
+                sprintf(buffer," %15.5g  :  %9.2f  :  %9.2f  :  %9.2f\n",
+                        bmean,bmean/bindex[i],bmean/lx_bindex[i],bmean/p3_bindex[i]);
 #else
 		sprintf(buffer,"  Iterations/sec.: %13.2f  Index: %6.2f\n",
                         bmean,bmean/bindex[i]);
@@ -266,16 +272,24 @@ for(i=0;i<NUMTESTS;i++)
 		  fpindex=fpindex*(bmean/bindex[i]);
 		  /* Linux FP index */
 		  lx_fpindex=lx_fpindex*(bmean/lx_bindex[i]);
+		  /* Pentium 3 FP index */
+		  p3_fpindex=p3_fpindex*(bmean/p3_bindex[i]);
 		}
 		else{
 		  /* Integer index */
 		  intindex=intindex*(bmean/bindex[i]);
-		  if((i==0)||(i==3)||(i==6)||(i==7))
+		  if((i==0)||(i==3)||(i==6)||(i==7)){
 		    /* Linux integer index */
 		    lx_intindex=lx_intindex*(bmean/lx_bindex[i]);
-		  else
+		    /* Pentium 3 integer index */
+		    p3_intindex=p3_intindex*(bmean/p3_bindex[i]);
+                  }
+		  else{
 		    /* Linux memory index */
 		    lx_memindex=lx_memindex*(bmean/lx_bindex[i]);
+		    /* Pentium 3 memory index */
+		    p3_memindex=p3_memindex*(bmean/p3_bindex[i]);
+                  }
 		}
 
                 if(global_allstats)
@@ -303,7 +317,7 @@ for(i=0;i<NUMTESTS;i++)
 */
 if(global_custrun==0)
 {
-        output_string("==========================ORIGINAL BYTEMARK RESULTS==========================\n");
+        output_string("============================ORIGINAL BYTEMARK RESULTS============================\n");
         sprintf(buffer,"INTEGER INDEX       : %.3f\n",
                        pow(intindex,(double).142857));
         output_string(buffer);
@@ -312,9 +326,10 @@ if(global_custrun==0)
         output_string(buffer);
         output_string("Baseline (MSDOS*)   : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0\n");
 #ifdef LINUX
-        output_string("==============================LINUX DATA BELOW===============================\n");
+        output_string("================================LINUX DATA BELOW=================================\n");
 	hardware(write_to_file, global_ofile);
 #include "sysinfoc.c"
+        output_string("===================================NEW INDEX=====================================\n");
         sprintf(buffer,"MEMORY INDEX        : %.3f\n",
                        pow(lx_memindex,(double).3333333333));
         output_string(buffer);
@@ -325,6 +340,18 @@ if(global_custrun==0)
                         pow(lx_fpindex,(double).3333333333));
         output_string(buffer);
         output_string("Baseline (LINUX)    : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38\n");
+        output_string("===================================NORM INDEX====================================\n");
+        sprintf(buffer,"MEMORY INDEX        : %.3f\n",
+                       pow(p3_memindex,(double).3333333333));
+        output_string(buffer);
+        sprintf(buffer,"INTEGER INDEX       : %.3f\n",
+                       pow(p3_intindex,(double).25));
+        output_string(buffer);
+        sprintf(buffer,"FLOATING-POINT INDEX: %.3f\n",
+                        pow(p3_fpindex,(double).3333333333));
+        output_string(buffer);
+        output_string("Baseline (LINUX)    : Pentium 3 (coppermine)* 1Ghz, 256 KB full speed L2-cache, gcc 4.4.5, eglibc 2.11.2\n");
+        output_string("=================================================================================\n");
 #endif
 output_string("* Trademarks are property of their respective holder.\n");
 }
diff -Nurpd nbench-byte-2.2.3-orig/nbench0.h nbench-byte-2.2.3-p3/nbench0.h
--- nbench-byte-2.2.3-orig/nbench0.h	2003-02-18 18:01:21.000000000 +0100
+++ nbench-byte-2.2.3-p3/nbench0.h	2011-06-30 18:32:07.062658916 +0200
@@ -147,6 +147,23 @@ double lx_bindex[] = {
       1.4799,	    /* Neural Net */
       26.732};      /* LU Decomposition */
 
+/*
+** Indices -- Baseline is an Intel Pentium 3 (Coppermine) (256kn full speed cache), 384MB pc133 SDRAM
+** Linux kernel 2.6.32, eglibc-2.11.2, gcc version 4.4.5 (Debian 4.4.5-8)
+** Jun/30/11
+*/
+double p3_bindex[] = {
+      421.44,       /* Numeric sort */
+      42.909,       /* String sort */
+   164560000,       /* Bitfield */
+        51.2,       /* FP Emulation */
+      9639.8,       /* Fourier */
+      8.1157,       /* Assignment */
+      1185.3,       /* IDEA */
+      673.53,       /* Huffman */
+      12.248,       /* Neural Net */
+      430.33};      /* LU Decomposition */
+
 /* Parameter names */
 char *paramnames[]= {
         "GLOBALMINTICKS",

