[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] [PATCH 5/6] Simplify print_insn logic in configure
From: |
Will Newton |
Subject: |
[Gcl-devel] [PATCH 5/6] Simplify print_insn logic in configure |
Date: |
Thu, 17 Jul 2014 13:44:55 +0100 |
This also ensures that the correct print_insn routine is found
on ARM where opcodes will include both big and little endian
versions in all cases.
---
gcl/configure | 255 ++++++-------------------------------------------------
gcl/configure.in | 38 +++++----
2 files changed, 48 insertions(+), 245 deletions(-)
diff --git a/gcl/configure b/gcl/configure
index 7ae3ef2..283d803 100755
--- a/gcl/configure
+++ b/gcl/configure
@@ -8509,6 +8509,26 @@ fi
done
+case $use in
+ aarch64*) print_insn_func=print_insn_aarch64;;
+ alpha*) print_insn_func=print_insn_alpha;;
+ armeb-*) print_insn_func=print_insn_big_arm;;
+ arm-*) print_insn_func=print_insn_little_arm;;
+ hppa*) print_insn_func=print_insn_hppa;;
+ *86*) print_insn_func=print_insn_i386;;
+ ia64*) print_insn_func=print_insn_ia64;;
+ m68k*) print_insn_func=print_insn_m68k;;
+ mips-*) print_insn_func=print_insn_big_mips;;
+ mipsel-*) print_insn_func=print_insn_little_mips;;
+ powerpc-*) print_insn_func=print_insn_big_powerpc;;
+ powerpcle-*) print_insn_func=print_insn_little_powerpc;;
+ s390*) print_insn_func=print_insn_s390;;
+ sh-*) print_insn_func=print_insn_sh;;
+ sh64-*) print_insn_func=print_insn_sh64;;
+ sparc*) print_insn_func=print_insn_sparc;;
+ *) print_insn_func=print_insn_unknown;;
+esac
+
for ac_header in dis-asm.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "dis-asm.h" "ac_cv_header_dis_asm_h"
"$ac_includes_default"
@@ -8561,240 +8581,19 @@ _ACEOF
fi
- for ac_func in print_insn_aarch64
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_aarch64"
"ac_cv_func_print_insn_aarch64"
-if test "x$ac_cv_func_print_insn_aarch64" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_AARCH64 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_aarch64" >>confdefs.h
-
-else
- for ac_func in print_insn_alpha
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_alpha" "ac_cv_func_print_insn_alpha"
-if test "x$ac_cv_func_print_insn_alpha" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_ALPHA 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_alpha" >>confdefs.h
-
-else
- for ac_func in print_insn_avr
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_avr" "ac_cv_func_print_insn_avr"
-if test "x$ac_cv_func_print_insn_avr" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_AVR 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_avr" >>confdefs.h
-
-else
- for ac_func in print_insn_big_arm
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_big_arm"
"ac_cv_func_print_insn_big_arm"
-if test "x$ac_cv_func_print_insn_big_arm" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_BIG_ARM 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN insn_big_arm" >>confdefs.h
-
-else
- for ac_func in print_insn_big_mips
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_big_mips"
"ac_cv_func_print_insn_big_mips"
-if test "x$ac_cv_func_print_insn_big_mips" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_BIG_MIPS 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN insn_big_mips" >>confdefs.h
-
-else
- for ac_func in print_insn_big_powerpc
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_big_powerpc"
"ac_cv_func_print_insn_big_powerpc"
-if test "x$ac_cv_func_print_insn_big_powerpc" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_BIG_POWERPC 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN insn_big_powerpc" >>confdefs.h
-
-else
- for ac_func in print_insn_hppa
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_hppa" "ac_cv_func_print_insn_hppa"
-if test "x$ac_cv_func_print_insn_hppa" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_HPPA 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_hppa" >>confdefs.h
-
-else
- for ac_func in print_insn_i386
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_i386" "ac_cv_func_print_insn_i386"
-if test "x$ac_cv_func_print_insn_i386" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_I386 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_i386" >>confdefs.h
-
-else
- for ac_func in print_insn_ia64
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_ia64" "ac_cv_func_print_insn_ia64"
-if test "x$ac_cv_func_print_insn_ia64" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_IA64 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_ia64" >>confdefs.h
-
-else
- for ac_func in print_insn_little_arm
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_little_arm"
"ac_cv_func_print_insn_little_arm"
-if test "x$ac_cv_func_print_insn_little_arm" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_LITTLE_ARM 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN insn_little_arm" >>confdefs.h
-
-else
- for ac_func in print_insn_little_mips
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_little_mips"
"ac_cv_func_print_insn_little_mips"
-if test "x$ac_cv_func_print_insn_little_mips" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_LITTLE_MIPS 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN insn_little_mips" >>confdefs.h
-
-else
- for ac_func in print_insn_little_powerpc
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_little_powerpc"
"ac_cv_func_print_insn_little_powerpc"
-if test "x$ac_cv_func_print_insn_little_powerpc" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_LITTLE_POWERPC 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN insn_little_powerpc" >>confdefs.h
-
-else
- for ac_func in print_insn_m68k
+ for ac_func in $print_insn_func
do :
- ac_fn_c_check_func "$LINENO" "print_insn_m68k" "ac_cv_func_print_insn_m68k"
-if test "x$ac_cv_func_print_insn_m68k" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_M68K 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_m68k" >>confdefs.h
-
-else
- for ac_func in print_insn_s390
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_s390" "ac_cv_func_print_insn_s390"
-if test "x$ac_cv_func_print_insn_s390" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_S390 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_s390" >>confdefs.h
-
-else
- for ac_func in print_insn_sh64
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_sh64" "ac_cv_func_print_insn_sh64"
-if test "x$ac_cv_func_print_insn_sh64" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_SH64 1
-_ACEOF
-
-$as_echo "#define PRINT_INSN print_insn_sh64" >>confdefs.h
-
-else
- for ac_func in print_insn_sh
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_sh" "ac_cv_func_print_insn_sh"
-if test "x$ac_cv_func_print_insn_sh" = xyes; then :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_SH 1
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-$as_echo "#define PRINT_INSN print_insn_sh" >>confdefs.h
-
-else
- for ac_func in print_insn_sparc
-do :
- ac_fn_c_check_func "$LINENO" "print_insn_sparc" "ac_cv_func_print_insn_sparc"
-if test "x$ac_cv_func_print_insn_sparc" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PRINT_INSN_SPARC 1
+cat >>confdefs.h <<_ACEOF
+#define PRINT_INSN $print_insn_func
_ACEOF
-$as_echo "#define PRINT_INSN print_insn_sparc" >>confdefs.h
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
-fi
-done
-
fi
done
diff --git a/gcl/configure.in b/gcl/configure.in
index 7514688..a95c75b 100644
--- a/gcl/configure.in
+++ b/gcl/configure.in
@@ -2431,25 +2431,29 @@ AC_MSG_RESULT(no))
AC_CHECK_FUNCS(sigaltstack)
AC_CHECK_FUNCS(feenableexcept)
+case $use in
+ aarch64*) print_insn_func=print_insn_aarch64;;
+ alpha*) print_insn_func=print_insn_alpha;;
+ armeb-*) print_insn_func=print_insn_big_arm;;
+ arm-*) print_insn_func=print_insn_little_arm;;
+ hppa*) print_insn_func=print_insn_hppa;;
+ *86*) print_insn_func=print_insn_i386;;
+ ia64*) print_insn_func=print_insn_ia64;;
+ m68k*) print_insn_func=print_insn_m68k;;
+ mips-*) print_insn_func=print_insn_big_mips;;
+ mipsel-*) print_insn_func=print_insn_little_mips;;
+ powerpc-*) print_insn_func=print_insn_big_powerpc;;
+ powerpcle-*) print_insn_func=print_insn_little_powerpc;;
+ s390*) print_insn_func=print_insn_s390;;
+ sh-*) print_insn_func=print_insn_sh;;
+ sh64-*) print_insn_func=print_insn_sh64;;
+ sparc*) print_insn_func=print_insn_sparc;;
+ *) print_insn_func=print_insn_unknown;;
+esac
+
AC_CHECK_HEADERS(dis-asm.h,
AC_CHECK_LIB(opcodes,init_disassemble_info)
-
AC_CHECK_FUNCS(print_insn_aarch64,AC_DEFINE([PRINT_INSN],[print_insn_aarch64],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_alpha,AC_DEFINE([PRINT_INSN],[print_insn_alpha],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_avr,AC_DEFINE([PRINT_INSN],[print_insn_avr],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_big_arm,AC_DEFINE([PRINT_INSN],[insn_big_arm],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_big_mips,AC_DEFINE([PRINT_INSN],[insn_big_mips],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_big_powerpc,AC_DEFINE([PRINT_INSN],[insn_big_powerpc],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_hppa,AC_DEFINE([PRINT_INSN],[print_insn_hppa],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_i386,AC_DEFINE([PRINT_INSN],[print_insn_i386],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_ia64,AC_DEFINE([PRINT_INSN],[print_insn_ia64],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_little_arm,AC_DEFINE([PRINT_INSN],[insn_little_arm],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_little_mips,AC_DEFINE([PRINT_INSN],[insn_little_mips],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_little_powerpc,AC_DEFINE([PRINT_INSN],[insn_little_powerpc],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_m68k,AC_DEFINE([PRINT_INSN],[print_insn_m68k],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_s390,AC_DEFINE([PRINT_INSN],[print_insn_s390],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_sh64,AC_DEFINE([PRINT_INSN],[print_insn_sh64],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_sh,AC_DEFINE([PRINT_INSN],[print_insn_sh],[instruction
disassemble routine]),
-
AC_CHECK_FUNCS(print_insn_sparc,AC_DEFINE([PRINT_INSN],[print_insn_sparc],[instruction
disassemble routine])))))))))))))))))))
+
AC_CHECK_FUNCS($print_insn_func,AC_DEFINE_UNQUOTED([PRINT_INSN],$print_insn_func,[instruction
disassemble routine])))
#if test $use = "386-linux" ; then
AC_CHECK_HEADERS(asm/sigcontext.h)
--
1.9.3
- [Gcl-devel] [PATCH 0/6] ARM and AArch64 patches for 2.6.11, Will Newton, 2014/07/17
- [Gcl-devel] [PATCH 2/6] o/main.c: Ensure cs_org is always pointer aligned, Will Newton, 2014/07/17
- [Gcl-devel] [PATCH 1/6] config.{sub, guess}: Update to latest versions of GNU config, Will Newton, 2014/07/17
- [Gcl-devel] [PATCH 4/6] Check for preceding NULL in find_init_name1, Will Newton, 2014/07/17
- [Gcl-devel] [PATCH 3/6] Add support for AArch64, Will Newton, 2014/07/17
- [Gcl-devel] [PATCH 5/6] Simplify print_insn logic in configure,
Will Newton <=
- [Gcl-devel] [PATCH 6/6] Ensure that libgcc is linked dynamically on ARM, Will Newton, 2014/07/17