From patchwork Thu Dec 31 02:02:39 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 10181 Received: (qmail 88540 invoked by alias); 31 Dec 2015 02:02:48 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 88378 invoked by uid 89); 31 Dec 2015 02:02:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=elsewhere, 7206, 7627 X-HELO: smtp.gentoo.org Received: from smtp.gentoo.org (HELO smtp.gentoo.org) (140.211.166.183) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 31 Dec 2015 02:02:43 +0000 Received: from localhost.localdomain (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 96EEF3408C5 for ; Thu, 31 Dec 2015 02:02:41 +0000 (UTC) From: Mike Frysinger To: gdb-patches@sourceware.org Subject: [PATCH] sim: cris/m68hc11: move default endian/alignment to configure [committed] Date: Wed, 30 Dec 2015 21:02:39 -0500 Message-Id: <1451527359-30209-1-git-send-email-vapier@gentoo.org> X-IsSubscribed: yes --- sim/cris/ChangeLog | 6 ++++++ sim/cris/configure | 52 ++++++++++++++++++++++++++++++++++++++++++++++-- sim/cris/configure.ac | 1 + sim/cris/sim-if.c | 6 ------ sim/m68hc11/ChangeLog | 7 +++++++ sim/m68hc11/configure | 52 ++++++++++++++++++++++++++++++++++++++++++++++-- sim/m68hc11/configure.ac | 1 + 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 + + * 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 * 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 + * 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 + * 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)