aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-12-30 05:19:40 -0500
committerMike Frysinger <vapier@gentoo.org>2015-12-30 05:20:41 -0500
commit5658c2571f34fcf7f0f10dbd45ddc6680aa57576 (patch)
treef6084b4c9fdf4c6ff1067088e2bda4c6efa37fb5
parent9950eccba15155dda9ef8025a5a1685dd9db53b7 (diff)
downloadgdb-5658c2571f34fcf7f0f10dbd45ddc6680aa57576.zip
gdb-5658c2571f34fcf7f0f10dbd45ddc6680aa57576.tar.gz
gdb-5658c2571f34fcf7f0f10dbd45ddc6680aa57576.tar.bz2
sim: h8300: move default endian/alignment to configure
-rw-r--r--sim/h8300/ChangeLog8
-rw-r--r--sim/h8300/compile.c4
-rwxr-xr-xsim/h8300/configure103
-rw-r--r--sim/h8300/configure.ac3
4 files changed, 112 insertions, 6 deletions
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog
index 67d3c66..0e5937f 100644
--- a/sim/h8300/ChangeLog
+++ b/sim/h8300/ChangeLog
@@ -1,5 +1,13 @@
2015-12-30 Mike Frysinger <vapier@gentoo.org>
+ * compile.c (sim_open): Delete current_alignment and
+ current_target_byte_order assignments.
+ * configure.ac: Call SIM_AC_OPTION_ENDIAN and
+ SIM_AC_OPTION_ALIGNMENT.
+ * configure: Regenerate.
+
+2015-12-30 Mike Frysinger <vapier@gentoo.org>
+
* wrapper.c (sim_store_register): Rename to ...
(h8300_reg_store): ... this. Declare sd.
(sim_fetch_register): Rename to ...
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c
index 4c55a37..cd2e6a6 100644
--- a/sim/h8300/compile.c
+++ b/sim/h8300/compile.c
@@ -4907,10 +4907,6 @@ sim_open (SIM_OPEN_KIND kind,
/* sim_cpu object is new, so some initialization is needed. */
init_pointers_needed = 1;
- /* For compatibility (FIXME: is this right?). */
- current_alignment = NONSTRICT_ALIGNMENT;
- current_target_byte_order = BIG_ENDIAN;
-
if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK)
{
free_state (sd);
diff --git a/sim/h8300/configure b/sim/h8300/configure
index 3c49020..79043dc 100755
--- a/sim/h8300/configure
+++ b/sim/h8300/configure
@@ -761,6 +761,8 @@ enable_sim_trace
enable_sim_profile
with_pkgversion
with_bugurl
+enable_sim_endian
+enable_sim_alignment
'
ac_precious_vars='build_alias
host_alias
@@ -1407,6 +1409,11 @@ Optional Features:
--enable-sim-trace=opts Enable tracing of simulated programs
--enable-sim-profile=opts
Enable profiling flags
+ --enable-sim-endian=endian
+ Specify target byte endian orientation
+ --enable-sim-alignment=align
+ Specify strict, nonstrict or forced alignment of
+ memory accesses
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -12290,7 +12297,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12293 "configure"
+#line 12300 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12396,7 +12403,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12399 "configure"
+#line 12406 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12886,6 +12893,98 @@ sim_link_links="${sim_link_links} targ-vals.def"
+
+wire_endian="BIG_ENDIAN"
+default_endian=""
+# Check whether --enable-sim-endian was given.
+if test "${enable_sim_endian+set}" = set; then :
+ enableval=$enable_sim_endian; case "${enableval}" in
+ b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
+ l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
+ yes) if test x"$wire_endian" != x; then
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
+ else
+ if test x"$default_endian" != x; then
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=${default_endian}"
+ else
+ echo "No hard-wired endian for target $target" 1>&6
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=0"
+ fi
+ fi;;
+ no) if test x"$default_endian" != x; then
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
+ else
+ if test x"$wire_endian" != x; then
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${wire_endian}"
+ else
+ echo "No default endian for target $target" 1>&6
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=0"
+ fi
+ fi;;
+ *) as_fn_error "\"Unknown value $enableval for --enable-sim-endian\"" "$LINENO" 5; sim_endian="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
+ echo "Setting endian flags = $sim_endian" 6>&1
+fi
+else
+ if test x"$default_endian" != x; then
+ sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
+else
+ if test x"$wire_endian" != x; then
+ sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
+ else
+ sim_endian=
+ fi
+fi
+fi
+
+wire_alignment="NONSTRICT_ALIGNMENT"
+default_alignment=""
+
+# Check whether --enable-sim-alignment was given.
+if test "${enable_sim_alignment+set}" = set; then :
+ enableval=$enable_sim_alignment; case "${enableval}" in
+ strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
+ nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
+ forced | FORCED) sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";;
+ yes) if test x"$wire_alignment" != x; then
+ sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+ else
+ if test x"$default_alignment" != x; then
+ sim_alignment="-DWITH_ALIGNMENT=${default_alignment}"
+ else
+ echo "No hard-wired alignment for target $target" 1>&6
+ sim_alignment="-DWITH_ALIGNMENT=0"
+ fi
+ fi;;
+ no) if test x"$default_alignment" != x; then
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+ else
+ if test x"$wire_alignment" != x; then
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}"
+ else
+ echo "No default alignment for target $target" 1>&6
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0"
+ fi
+ fi;;
+ *) as_fn_error "\"Unknown value $enableval passed to --enable-sim-alignment\"" "$LINENO" 5; sim_alignment="";;
+esac
+if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
+ echo "Setting alignment flags = $sim_alignment" 6>&1
+fi
+else
+ if test x"$default_alignment" != x; then
+ sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
+else
+ if test x"$wire_alignment" != x; then
+ sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
+ else
+ sim_alignment=
+ fi
+fi
+fi
+
+
for ac_header in sys/param.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
diff --git a/sim/h8300/configure.ac b/sim/h8300/configure.ac
index 5713a0a..53a02bb 100644
--- a/sim/h8300/configure.ac
+++ b/sim/h8300/configure.ac
@@ -5,6 +5,9 @@ sinclude(../common/acinclude.m4)
SIM_AC_COMMON
+SIM_AC_OPTION_ENDIAN(BIG_ENDIAN)
+SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT)
+
AC_CHECK_HEADERS(sys/param.h)
SIM_AC_OUTPUT