updates.
authorPekka Riikonen <priikone@silcnet.org>
Fri, 15 Dec 2006 15:24:50 +0000 (15:24 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Fri, 15 Dec 2006 15:24:50 +0000 (15:24 +0000)
CHANGES
configure.ad

diff --git a/CHANGES b/CHANGES
index f4a72343a2567f37a1d9587cd62252084c4ee675..2258bd7ca83cfd6640df7a95182254e1295a3d40 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+Wed Dec 13 18:05:50 EET 2006  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_likely and silc_unlikely macros for GCC branch
+         prediction optimizations.  Affected file lib/silcutil/silctypes.h.
+
+       * Added assembler AES optimization.  Cleaned up the SILC Cipher
+         implementation API.  Affected files are in lib/silccrypt/.
+
 Tue Dec 12 18:56:14 EET 2006  Pekka Riikonen <priikone@silcnet.org>
 
        * Changed back the SILC_FSM_THREAD_WAIT operation to not
index 4082d2fd64dc6bb6b4ac7178ed12108f4a91de62..3322035e66c2056fe41178aaa7e8d1d8b62f8a83 100644 (file)
@@ -45,24 +45,40 @@ case "$target" in
 esac
 
 # Get CPU
+cpu_i386=false
+cpu_ix86=false
+cpu_x86_64=false
+cpu_ppc=false
+cpu_ia64=false
 case "$host_cpu" in
   i386)
     AC_DEFINE([SILC_I386], [], [SILC_I386])
     AC_DEFINE([SILC_I486], [], [SILC_I486])
+    cpu_i386=true
+    cpu_ix86=true
     ;;
   i?86)
     AC_DEFINE([SILC_I486], [], [SILC_I486])
+    cpu_ix86=true
     ;;
   x86_64)
     AC_DEFINE([SILC_X86_64], [], [SILC_X86_64])
+    cpu_x86_64=true
     ;;
   powerpc*)
     AC_DEFINE([SILC_POWERPC], [], [SILC_POWERPC])
+    cpu_ppc=true
     ;;
   ia64)
     AC_DEFINE([SILC_IA64], [], [SILC_IA64])
+    cpu_ia64=true
     ;;
 esac
+AM_CONDITIONAL(SILC_I386, test x$cpu_i386 = xtrue)
+AM_CONDITIONAL(SILC_I486, test x$cpu_ix86 = xtrue)
+AM_CONDITIONAL(SILC_X86_64, test x$cpu_x86_64 = xtrue)
+AM_CONDITIONAL(SILC_POWERPC, test x$cpu_ppc = xtrue)
+AM_CONDITIONAL(SILC_IA64, test x$cpu_ia64 = xtrue)
 
 # Control compiler optimizations
 CFLAGS=`echo $CFLAGS | sed 's/-O[ 0123456789s]*//g'`
@@ -120,6 +136,30 @@ AC_SUBST(SILC_SIZEOF_CHAR, $ac_cv_sizeof_char)
 AC_CHECK_SIZEOF(void *, 0)
 AC_SUBST(SILC_SIZEOF_VOID_P, $ac_cv_sizeof_void_p)
 
+# Function to check if compiler flag works
+# Usage: SILC_ADD_CFLAGS(FLAGS, [ACTION-IF-FAILED])
+AC_DEFUN([SILC_ADD_CFLAGS],
+[ tmp_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $1"
+  AC_MSG_CHECKING(whether $CC accepts $1 flag)
+  AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
+                                      CFLAGS="$tmp_CFLAGS"
+                                      $2])
+  unset tmp_CFLAGS
+])
+
+# Function to check if compiler flag works, destination specifiable
+# Usage: SILC_ADD_CC_FLAGS(VAR, FLAGS, [ACTION-IF-FAILED])
+AC_DEFUN([SILC_ADD_CC_FLAGS],
+[ tmp_CFLAGS="$1_CFLAGS"
+  $1_CFLAGS="${$1_CFLAGS} $2"
+  AC_MSG_CHECKING(whether $CC accepts $2 flag)
+  AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
+                                      $1_CFLAGS="$tmp_CFLAGS"
+                                      $3])
+  unset tmp_CFLAGS
+])
+
 # Function and library checking
 #
 AC_CHECK_FUNC(gethostbyname, [],
@@ -290,12 +330,33 @@ AC_ARG_ENABLE(asm,
   [  --disable-asm           do not use assembler optimizations],
   [
     AC_MSG_RESULT(no)
+    AC_DEFINE([SILC_NO_ASM], [], [SILC_NO_ASM])
     want_asm=false
   ],
   [
     AC_MSG_RESULT(yes)
     want_asm=true
   ])
+AM_CONDITIONAL(SILC_NO_ASM, test x$want_asm = xfalse)
+
+# Check for assembler
+#
+SILC_ASSEMBLER=""
+have_assembler=false
+if test x$want_asm = xtrue; then
+  AC_PATH_PROG([NASM], [nasm], [no])
+  if test "x$NASM" != xyes; then
+    SILC_ASSEMBLER="nasm -O2 -felf"
+    have_assembler=true
+  fi
+
+  AC_PATH_PROG([YASM], [yasm], [no])
+  if test "x$YASM" != xyes; then
+    SILC_ASSEMBLER="yasm -Xgnu -felf"
+    have_assembler=true
+  fi
+fi
+AC_SUBST(SILC_ASSEMBLER)
 
 ##
 ## va_copy checks
@@ -404,30 +465,6 @@ fi
 ## Compiler and compiler flag checks
 ##
 
-# Function to check if compiler flag works
-# Usage: SILC_ADD_CFLAGS(FLAGS, [ACTION-IF-FAILED])
-AC_DEFUN([SILC_ADD_CFLAGS],
-[ tmp_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $1"
-  AC_MSG_CHECKING(whether $CC accepts $1 flag)
-  AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
-                                      CFLAGS="$tmp_CFLAGS"
-                                      $2])
-  unset tmp_CFLAGS
-])
-
-# Function to check if compiler flag works, destination specifiable
-# Usage: SILC_ADD_CC_FLAGS(VAR, FLAGS, [ACTION-IF-FAILED])
-AC_DEFUN([SILC_ADD_CC_FLAGS],
-[ tmp_CFLAGS="$1_CFLAGS"
-  $1_CFLAGS="${$1_CFLAGS} $2"
-  AC_MSG_CHECKING(whether $CC accepts $2 flag)
-  AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
-                                      $1_CFLAGS="$tmp_CFLAGS"
-                                      $3])
-  unset tmp_CFLAGS
-])
-
 if test "$GCC"; then
   # GCC specific options
   if test "x$summary_debug" = "xyes"; then