mips: adding MIPS64LE support to Valgrind

Necessary changes to Valgrind to support MIPS64LE on Linux.
Minor cleanup/style changes embedded in the patch as well.
The change corresponds to r2687 in VEX.
Patch written by Dejan Jevtic and Petar Jovanovic.

More information about this issue:
https://bugs.kde.org/show_bug.cgi?id=313267


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13292 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/configure.in b/configure.in
index 0f3b3df..391b763 100644
--- a/configure.in
+++ b/configure.in
@@ -192,20 +192,29 @@
 	;;
 
      mips)
-	AC_MSG_RESULT([ok (${host_cpu})])
-	ARCH_MAX="mips32"
-	;;
+        AC_MSG_RESULT([ok (${host_cpu})])
+        ARCH_MAX="mips32"
+        ;;
 
      mipsel)
-	AC_MSG_RESULT([ok (${host_cpu})])
-	ARCH_MAX="mips32"
-	;;
+        AC_MSG_RESULT([ok (${host_cpu})])
+        ARCH_MAX="mips32"
+        ;;
 
      mipsisa32r2)
-	AC_MSG_RESULT([ok (${host_cpu})])
-	ARCH_MAX="mips32"
-	;;
+        AC_MSG_RESULT([ok (${host_cpu})])
+        ARCH_MAX="mips32"
+        ;;
 
+     mips64*)
+        AC_MSG_RESULT([ok (${host_cpu})])
+        ARCH_MAX="mips64"
+        ;;
+
+     mipsisa64*)
+        AC_MSG_RESULT([ok (${host_cpu})])
+        ARCH_MAX="mips64"
+        ;;
      *) 
 	AC_MSG_RESULT([no (${host_cpu})])
 	AC_MSG_ERROR([Unsupported host architecture. Sorry])
@@ -567,7 +576,16 @@
         valt_load_address_sec_norml="0xUNSET"
         valt_load_address_sec_inner="0xUNSET"
         AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
-        AC_MSG_RESULT([ok (${host_cpu}-${host_os})])
+        ;;
+     mips64-linux)
+        VGCONF_ARCH_PRI="mips64"
+        VGCONF_PLATFORM_PRI_CAPS="MIPS64_LINUX"
+        VGCONF_PLATFORM_SEC_CAPS=""
+        valt_load_address_pri_norml="0x38000000"
+        valt_load_address_pri_inner="0x28000000"
+        valt_load_address_sec_norml="0xUNSET"
+        valt_load_address_sec_inner="0xUNSET"
+        AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
         ;;
     *)
         VGCONF_ARCH_PRI="unknown"
@@ -606,6 +624,8 @@
                test x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX )
 AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_MIPS32,
                test x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX )
+AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_MIPS64,
+               test x$VGCONF_PLATFORM_PRI_CAPS = xMIPS64_LINUX ) 
 
 # Set up VGCONF_PLATFORMS_INCLUDE_<platform>.  Either one or two of these
 # become defined.
@@ -626,6 +646,8 @@
                  -o x$VGCONF_PLATFORM_SEC_CAPS = xS390X_LINUX)
 AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_MIPS32_LINUX,
                test x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX)
+AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_MIPS64_LINUX,
+               test x$VGCONF_PLATFORM_PRI_CAPS = xMIPS64_LINUX)
 
 AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_X86_DARWIN,   
                test x$VGCONF_PLATFORM_PRI_CAPS = xX86_DARWIN \
@@ -644,7 +666,8 @@
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX \
-                 -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX)
+                 -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX \
+                 -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS64_LINUX)
 AM_CONDITIONAL(VGCONF_OS_IS_DARWIN,
                test x$VGCONF_PLATFORM_PRI_CAPS = xX86_DARWIN \
                  -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_DARWIN)
@@ -2079,7 +2102,8 @@
 if test x$VGCONF_PLATFORM_PRI_CAPS = xX86_LINUX \
      -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \
      -o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
-     -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX ; then
+     -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX \
+     -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS64_LINUX ; then
   mflag_primary=$FLAG_M32
 elif test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
        -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \