diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-12-30 21:01:58 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-12-30 21:01:58 -0500 |
commit | eca4255a1a6c3603e05c4f3ca9c0849f529657c3 (patch) | |
tree | d697a4d42fed0045460438cb14f667711ced4838 /sim | |
parent | 356a418c5dbff10ae4a2afc599163c0a85385f07 (diff) | |
download | binutils-eca4255a1a6c3603e05c4f3ca9c0849f529657c3.zip binutils-eca4255a1a6c3603e05c4f3ca9c0849f529657c3.tar.gz binutils-eca4255a1a6c3603e05c4f3ca9c0849f529657c3.tar.bz2 |
sim: cris/m68hc11: move default endian/alignment to configure
Diffstat (limited to 'sim')
-rw-r--r-- | sim/cris/ChangeLog | 6 | ||||
-rwxr-xr-x | sim/cris/configure | 52 | ||||
-rw-r--r-- | sim/cris/configure.ac | 1 | ||||
-rw-r--r-- | sim/cris/sim-if.c | 6 | ||||
-rw-r--r-- | sim/m68hc11/ChangeLog | 7 | ||||
-rwxr-xr-x | sim/m68hc11/configure | 52 | ||||
-rw-r--r-- | sim/m68hc11/configure.ac | 1 | ||||
-rw-r--r-- | sim/m68hc11/interp.c | 4 |
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) |