aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-12-30 21:01:58 -0500
committerMike Frysinger <vapier@gentoo.org>2015-12-30 21:01:58 -0500
commiteca4255a1a6c3603e05c4f3ca9c0849f529657c3 (patch)
treed697a4d42fed0045460438cb14f667711ced4838
parent356a418c5dbff10ae4a2afc599163c0a85385f07 (diff)
downloadfsf-binutils-gdb-eca4255a1a6c3603e05c4f3ca9c0849f529657c3.zip
fsf-binutils-gdb-eca4255a1a6c3603e05c4f3ca9c0849f529657c3.tar.gz
fsf-binutils-gdb-eca4255a1a6c3603e05c4f3ca9c0849f529657c3.tar.bz2
sim: cris/m68hc11: move default endian/alignment to configure
-rw-r--r--sim/cris/ChangeLog6
-rwxr-xr-xsim/cris/configure52
-rw-r--r--sim/cris/configure.ac1
-rw-r--r--sim/cris/sim-if.c6
-rw-r--r--sim/m68hc11/ChangeLog7
-rwxr-xr-xsim/m68hc11/configure52
-rw-r--r--sim/m68hc11/configure.ac1
-rw-r--r--sim/m68hc11/interp.c4
8 files changed, 115 insertions, 14 deletions
diff --git a/sim/cris/ChangeLog b/sim/cris/ChangeLog
index d6c6b41..9bf94f9 100644
--- a/sim/cris/ChangeLog
+++ b/sim/cris/ChangeLog
@@ -1,3 +1,9 @@
+2015-12-30 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-if.c (sim_open): Delete current_target_byte_order assignment.
+ * configure.ac: Call SIM_AC_OPTION_ENDIAN.
+ * configure: Regenerate.
+
2015-12-27 Mike Frysinger <vapier@gentoo.org>
* sim-if.c (cris_program_offset_write, sim_load): Delete.
diff --git a/sim/cris/configure b/sim/cris/configure
index eb1e7f4..be7f6fc 100755
--- a/sim/cris/configure
+++ b/sim/cris/configure
@@ -764,6 +764,7 @@ enable_sim_trace
enable_sim_profile
with_pkgversion
with_bugurl
+enable_sim_endian
enable_sim_alignment
enable_sim_hostendian
enable_sim_scache
@@ -1421,6 +1422,8 @@ 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
@@ -12326,7 +12329,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12329 "configure"
+#line 12332 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12432,7 +12435,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12435 "configure"
+#line 12438 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12938,6 +12941,51 @@ fi
done
+
+wire_endian="LITTLE_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=""
diff --git a/sim/cris/configure.ac b/sim/cris/configure.ac
index 4543342..4e6b1be 100644
--- a/sim/cris/configure.ac
+++ b/sim/cris/configure.ac
@@ -8,6 +8,7 @@ SIM_AC_COMMON
# For dv-rv and rvdummy.
AC_CHECK_HEADERS(sys/socket.h sys/select.h limits.h sys/param.h)
+SIM_AC_OPTION_ENDIAN(LITTLE_ENDIAN)
SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT)
SIM_AC_OPTION_HOSTENDIAN
SIM_AC_OPTION_SCACHE(16384)
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index 142bc7b..71afbff 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -720,12 +720,6 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
return 0;
}
- /* If we have a binary program, endianness-setting would not be taken
- from elsewhere unfortunately, so set it here. At the time of this
- writing, it isn't used until sim_config, but that might change so
- set it here before memory is defined or touched. */
- current_target_byte_order = LITTLE_ENDIAN;
-
/* check for/establish the reference program image */
if (sim_analyze_program (sd,
(STATE_PROG_ARGV (sd) != NULL
diff --git a/sim/m68hc11/ChangeLog b/sim/m68hc11/ChangeLog
index ad83c37..ee8263e 100644
--- a/sim/m68hc11/ChangeLog
+++ b/sim/m68hc11/ChangeLog
@@ -1,5 +1,12 @@
2015-12-30 Mike Frysinger <vapier@gentoo.org>
+ * imterp.c (sim_open): Delete current_alignment and
+ current_target_byte_order assignments.
+ * configure.ac: Call SIM_AC_OPTION_ENDIAN.
+ * configure: Regenerate.
+
+2015-12-30 Mike Frysinger <vapier@gentoo.org>
+
* wrapper.c (m68hc11_reg_store, m68hc11_reg_fetch): Define.
(sim_open): Call CPU_REG_FETCH/CPU_REG_STORE.
(sim_store_register): Rename to ...
diff --git a/sim/m68hc11/configure b/sim/m68hc11/configure
index 6870e8c..d7926d6 100755
--- a/sim/m68hc11/configure
+++ b/sim/m68hc11/configure
@@ -762,6 +762,7 @@ enable_sim_profile
with_pkgversion
with_bugurl
enable_sim_inline
+enable_sim_endian
enable_sim_alignment
enable_sim_hostendian
enable_werror
@@ -1416,6 +1417,8 @@ Optional Features:
Enable profiling flags
--enable-sim-inline=inlines
Specify which functions should be inlined
+ --enable-sim-endian=endian
+ Specify target byte endian orientation
--enable-sim-alignment=align
Specify strict, nonstrict or forced alignment of
memory accesses
@@ -12311,7 +12314,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12314 "configure"
+#line 12317 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12417,7 +12420,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12420 "configure"
+#line 12423 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12951,6 +12954,51 @@ else
fi
fi
+
+wire_endian="LITTLE_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=""
diff --git a/sim/m68hc11/configure.ac b/sim/m68hc11/configure.ac
index 5aefda5..a368b0c 100644
--- a/sim/m68hc11/configure.ac
+++ b/sim/m68hc11/configure.ac
@@ -7,6 +7,7 @@ SIM_AC_COMMON
dnl Options available in this module
SIM_AC_OPTION_INLINE()
+SIM_AC_OPTION_ENDIAN(LITTLE_ENDIAN)
SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT)
SIM_AC_OPTION_HOSTENDIAN
SIM_AC_OPTION_WARNINGS
diff --git a/sim/m68hc11/interp.c b/sim/m68hc11/interp.c
index 7fb7005..f1303b4 100644
--- a/sim/m68hc11/interp.c
+++ b/sim/m68hc11/interp.c
@@ -437,10 +437,6 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback,
cpu = STATE_CPU (sd, 0);
- /* for compatibility */
- current_alignment = NONSTRICT_ALIGNMENT;
- current_target_byte_order = BIG_ENDIAN;
-
cpu_initialize (sd, cpu);
if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK)