Commit 0fad6cb7 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Support for MacOS X (Rhapsody) is added. Also get rid of volatile

qualifier in asm definitions as it prevents compiler from moving
the instruction(s) during optimization pass.
parent 7cf6e2a3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@

 Changes between 0.9.4 and 0.9.5  [xx XXX 2000]

  *) ./config recognizes MacOS X now.
     [Andy Polyakov]

  *) Bug fix for BN_div() when the first words of num and divsor are
     equal (it gave wrong results if (rem=(n1-q*d0)&BN_MASK2) < d0).
     [Ulf Möller]
+3 −0
Original line number Diff line number Diff line
@@ -314,6 +314,9 @@ my %table=(
"OpenBSD",      "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL:::",
"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::",

##### MacOS X (a.k.a. Rhapsody) setup
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",

);

my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
+5 −0
Original line number Diff line number Diff line
@@ -187,6 +187,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
	echo "i860-intel-osf1"; exit 0
	;;

    Rhapsody:*)
	echo "ppc-apple-rhapsody"; exit 0
	;;

    SunOS:5.*)
	echo "${MACHINE}-sun-solaris2"; exit 0
	;;
@@ -395,6 +399,7 @@ case "$GUESSOS" in
	;;
  mips-*-linux?) OUT="linux-mips" ;;
  ppc-*-linux2) OUT="linux-ppc" ;;
  ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
  sparc64-*-linux2)
	#Before we can uncomment following lines we have to wait at least
	#till 64-bit glibc for SPARC is operational:-(
+6 −6
Original line number Diff line number Diff line
@@ -200,16 +200,16 @@
   */
#  if defined(__i386)
#   define ROTATE(a,n)	({ register unsigned int ret;	\
				asm volatile (		\
				asm (			\
				"roll %1,%0"		\
				: "=r"(ret)		\
				: "I"(n), "0"(a)	\
				: "cc");		\
			   ret;				\
			})
#  elif defined(__powerpc)
#  elif defined(__powerpc) || defined(__ppc)
#   define ROTATE(a,n)	({ register unsigned int ret;	\
				asm volatile (		\
				asm (			\
				"rlwinm %0,%1,%2,0,31"	\
				: "=r"(ret)		\
				: "r"(a), "I"(n));	\
@@ -226,14 +226,14 @@
  /* some GNU C inline assembler templates by <appro@fy.chalmers.se> */
#  if defined(__i386) && !defined(I386_ONLY)
#   define BE_FETCH32(a)	({ register unsigned int l=(a);\
				asm volatile (		\
				asm (			\
				"bswapl %0"		\
				: "=r"(l) : "0"(l));	\
			  l;				\
			})
#  elif defined(__powerpc)
#   define LE_FETCH32(a)	({ register unsigned int l;	\
				asm volatile (		\
				asm (			\
				"lwbrx %0,0,%1"		\
				: "=r"(l)		\
				: "r"(a));		\
@@ -242,7 +242,7 @@

#  elif defined(__sparc) && defined(ULTRASPARC)
#  define LE_FETCH32(a)	({ register unsigned int l;		\
				asm volatile (			\
				asm (				\
				"lda [%1]#ASI_PRIMARY_LITTLE,%0"\
				: "=r"(l)			\
				: "r"(a));			\