From b45caf050caea8283ab17a2f6cc76a2208763132 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Mon, 22 Sep 1997 00:24:46 +0000 Subject: [PATCH] Add support for --enable-sim-alignment to simulator common aclocal.m4 Add support for --alignment={strict,nonstrict,forced} to simulator common run-time options. For v850 use, make the default NONSTRICT_ALIGNMENT. --- sim/arm/ChangeLog | 8 ++++ sim/common/ChangeLog | 18 ++++++++ sim/common/aclocal.m4 | 31 ++++++++++--- sim/common/sim-config.h | 27 ++++++----- sim/common/sim-options.c | 51 +++++++++++++++++++- sim/d10v/ChangeLog | 8 ++++ sim/erc32/ChangeLog | 8 ++++ sim/h8300/ChangeLog | 8 ++++ sim/m32r/ChangeLog | 13 ++++++ sim/mips/ChangeLog | 21 +++++++++ sim/mn10300/ChangeLog | 8 ++++ sim/sh/ChangeLog | 8 ++++ sim/tic80/ChangeLog | 4 ++ sim/tic80/configure | 53 +++++++++++++-------- sim/v850/ChangeLog | 5 ++ sim/v850/configure | 118 +++++++++++++++++++++++++++++++---------------- sim/v850/configure.in | 2 +- 17 files changed, 311 insertions(+), 80 deletions(-) diff --git a/sim/arm/ChangeLog b/sim/arm/ChangeLog index a410cfa..73a5e50 100644 --- a/sim/arm/ChangeLog +++ b/sim/arm/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Mon Sep 15 17:36:15 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + Thu Sep 4 17:21:23 1997 Doug Evans * configure: Regenerated to track ../common/aclocal.m4 changes. diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 3d8e522..14261ef 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,21 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Fri Sep 19 17:26:14 1997 Andrew Cagney + + * sim-config.c (sim_config): Check for default alignment. + + * sim-options.c (standard_option_handler): Add alignment option. + + * aclocal.m4 (sim_alignment): Allow configuration of hardwired and + default alignment requirements on memory accesses. + +Fri Sep 19 11:51:35 1997 Jeffrey A Law (law@cygnus.com) + + * sim-load.c (sim_load_file): Return failure if the executable + had no loadable sections. + Wed Sep 17 13:33:28 1997 Andrew Cagney * sim-events.c (ETRACE): Use trace_printf not sim_io_printf for diff --git a/sim/common/aclocal.m4 b/sim/common/aclocal.m4 index dec7e69..d3e6843 100644 --- a/sim/common/aclocal.m4 +++ b/sim/common/aclocal.m4 @@ -21,7 +21,7 @@ AC_DEFUN(SIM_AC_COMMON, [ # autoconf.info says this should be called right after AC_INIT. -AC_CONFIG_HEADER(config.h:config.in) +AC_CONFIG_HEADER(ifelse([$1],,config.h,[$1]):config.in) AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..) AC_CANONICAL_SYSTEM @@ -212,19 +212,36 @@ dnl and SIM_AC_OUTPUT lines. dnl Specify the alignment restrictions of the target architecture. dnl Without this option all possible alignment restrictions are accomidated. +dnl arg[1] is hardwired target alignment +dnl arg[2] is default target alignment AC_DEFUN(SIM_AC_OPTION_ALIGNMENT, +wire_alignment="ifelse([$2],,ifelse([$1],,,[$1]),[$2])" +default_alignment="ifelse([$2],,ifelse([$1],,,[$1]),[$2])" +default_sim_alignment="ifelse([$1],,ifelse([$2],,,-DWITH_DEFAULT_ALIGNMENT=[$2]),-DWITH_ALIGNMENT=[$1])" [ AC_ARG_ENABLE(sim-alignment, -[ --enable-sim-alignment=align Specify strict or nonstrict alignment.], +[ --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses.], [case "${enableval}" in - yes | strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";; - no | nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";; - 0 | default | DEFAULT) sim_alignment="-DWITH_ALIGNMENT=0";; - *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";; + 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 + echo "No hard-wired alignment for target $target" 1>&6 + sim_alignment="-DWITH_ALIGNMENT=0" + fi;; + no) if test x"$default_alignment" != x; then + sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}" + else + echo "No default alignment for target $target" 1>&6 + sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0" + fi;; + *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-alignment"); sim_alignment="";; esac if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then echo "Setting alignment flags = $sim_alignment" 6>&1 -fi],[sim_alignment=""])dnl +fi],[sim_alignment="${default_sim_alignment}"])dnl AC_SUBST(sim_alignment) ])dnl diff --git a/sim/common/sim-config.h b/sim/common/sim-config.h index 59a8c37..cea3101 100644 --- a/sim/common/sim-config.h +++ b/sim/common/sim-config.h @@ -339,28 +339,22 @@ extern int current_environment; -/* Callback/Default Memory. +/* Callback & Modulo Memory. Core includes a builtin memory type (raw_memory) that is implemented using an array. raw_memory does not require any additional functions etc. Callback memory is where the core calls a core device for the data - it requires. + it requires. Callback memory can be layered using priorities. - Default memory is an extenstion of this where for addresses that do - not map into either a callback or core memory range a default map - can be used. + Modulo memory is a variation on raw_memory where ADDRESS & (MODULO + - 1) is used as the index into the memory array. - The OEA model uses callback memory for devices and default memory - for buses. + The OEA model uses callback memory for devices. The VEA model uses callback memory to capture `page faults'. - While it may be possible to eliminate callback/default memory (and - hence also eliminate an additional test per memory fetch) it - probably is not worth the effort. - BTW, while raw_memory could have been implemented as a callback, profiling has shown that there is a biger win (at least for the x86) in eliminating a function call for the most common @@ -370,6 +364,10 @@ extern int current_environment; #define WITH_CALLBACK_MEMORY 1 #endif +#ifndef WITH_MODULO_MEMORY +#define WITH_MODULO_MEMORY 0 +#endif + /* Alignment: @@ -399,6 +397,13 @@ extern enum sim_alignments current_alignment; #define WITH_ALIGNMENT NONSTRICT_ALIGNMENT #endif +#if !defined (WITH_DEFAULT_ALIGNMENT) +#define WITH_DEFAULT_ALIGNMENT 0 /* fatal */ +#endif + + + + #define CURRENT_ALIGNMENT (WITH_ALIGNMENT \ ? WITH_ALIGNMENT \ : current_alignment) diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c index 96e1dba..6d4f3da 100644 --- a/sim/common/sim-options.c +++ b/sim/common/sim-options.c @@ -89,6 +89,7 @@ static DECLARE_OPTION_HANDLER (standard_option_handler); #define OPTION_ARCHITECTURE (OPTION_START + 3) #define OPTION_TARGET (OPTION_START + 4) #define OPTION_ARCHITECTURE_INFO (OPTION_START + 5) +#define OPTION_ALIGNMENT (OPTION_START + 6) static const OPTION standard_options[] = { @@ -102,6 +103,10 @@ static const OPTION standard_options[] = standard_option_handler }, #endif + { {"alignment", required_argument, NULL, OPTION_ALIGNMENT}, + '\0', "strict|nonstrict|forced", "Set memory access alignment", + standard_option_handler }, + { {"debug", no_argument, NULL, 'D'}, 'D', NULL, "Print debugging messages", standard_option_handler }, @@ -194,6 +199,50 @@ standard_option_handler (sd, opt, arg, is_command) break; #endif + case OPTION_ALIGNMENT: + if (strcmp (arg, "strict") == 0) + { + if (WITH_ALIGNMENT == 0 || WITH_ALIGNMENT == STRICT_ALIGNMENT) + { + current_alignment = STRICT_ALIGNMENT; + break; + } + } + else if (strcmp (arg, "nonstrict") == 0) + { + if (WITH_ALIGNMENT == 0 || WITH_ALIGNMENT == NONSTRICT_ALIGNMENT) + { + current_alignment = NONSTRICT_ALIGNMENT; + break; + } + } + else if (strcmp (arg, "forced") == 0) + { + if (WITH_ALIGNMENT == 0 || WITH_ALIGNMENT == FORCED_ALIGNMENT) + { + current_alignment = FORCED_ALIGNMENT; + break; + } + } + else + { + sim_io_eprintf (sd, "Invalid alignment specification `%s'\n", arg); + return SIM_RC_FAIL; + } + switch (WITH_ALIGNMENT) + { + case STRICT_ALIGNMENT: + sim_io_eprintf (sd, "Simulator compiled for strict alignment only.\n"); + break; + case NONSTRICT_ALIGNMENT: + sim_io_eprintf (sd, "Simulator compiled for nonsitrct alignment only.\n"); + break; + case FORCED_ALIGNMENT: + sim_io_eprintf (sd, "Simulator compiled for forced alignment only.\n"); + break; + } + return SIM_RC_FAIL; + case 'D' : if (! WITH_DEBUG) sim_io_eprintf (sd, "Debugging not compiled in, `-D' ignored\n"); @@ -556,7 +605,7 @@ sim_print_help (sd, is_command) { const char *chp = opt->doc; - int doc_width = 80 - indent; + unsigned doc_width = 80 - indent; while (strlen (chp) >= doc_width) /* some slack */ { const char *end = chp + doc_width - 1; diff --git a/sim/d10v/ChangeLog b/sim/d10v/ChangeLog index a2dade3..18d0769 100644 --- a/sim/d10v/ChangeLog +++ b/sim/d10v/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Mon Sep 15 17:36:15 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + Wed Sep 10 22:30:24 1997 Martin M. Hunt * interp.c (sim_resume): Increment PC at end of rep diff --git a/sim/erc32/ChangeLog b/sim/erc32/ChangeLog index 3761893..451c961 100644 --- a/sim/erc32/ChangeLog +++ b/sim/erc32/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Mon Sep 15 17:36:15 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + Wed Aug 27 18:13:22 1997 Andrew Cagney * configure: Regenerated to track ../common/aclocal.m4 changes. diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog index 3b52087..e490d05 100644 --- a/sim/h8300/ChangeLog +++ b/sim/h8300/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Wed Sep 17 12:00:57 1997 Andrew Cagney + + * Makefile.in (compile.o): Depend on config.h in local directory. + Mon Sep 15 17:36:15 1997 Andrew Cagney * configure: Regenerated to track ../common/aclocal.m4 changes. diff --git a/sim/m32r/ChangeLog b/sim/m32r/ChangeLog index ad57669..64c3c47 100644 --- a/sim/m32r/ChangeLog +++ b/sim/m32r/ChangeLog @@ -1,3 +1,16 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Wed Sep 17 17:44:40 1997 Andrew Cagney + + * sim-if.c (sim_open): Allocate memory under sim-memopt module + using sim_do_commandf. + (sim_open): Set magic-number at the start. + (sim_do_command): Implement. + + * sim-main.h (sim_engine_halt): Map onto engine_halt. + Mon Sep 15 17:36:15 1997 Andrew Cagney * configure: Regenerated to track ../common/aclocal.m4 changes. diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog index 70e773c..ff6f256 100644 --- a/sim/mips/ChangeLog +++ b/sim/mips/ChangeLog @@ -1,3 +1,24 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Sat Sep 20 14:07:28 1997 Gavin Koch + + * gencode.c (SDBBP,DERET): Added (3900) insns. + (RFE): Turn on for 3900. + * interp.c (DebugBreakPoint,DEPC,Debug,Debug_*): Added. + (dsstate): Made global. + (SUBTARGET_R3900): Added. + (CANCELDELAYSLOT): New. + (SignalException): Ignore SystemCall rather than ignore and + terminate. Add DebugBreakPoint handling. + (decode_coproc): New insns RFE, DERET; and new registers Debug + and DEPC protected by SUBTARGET_R3900. + (sim_engine_run): Use CANCELDELAYSLOT rather than clearing + bits explicitly. + * Makefile.in,configure.in: Add mips subtarget option. + * configure: Update. + Fri Sep 19 09:33:27 1997 Gavin Koch * gencode.c: Add r3900 (tx39). diff --git a/sim/mn10300/ChangeLog b/sim/mn10300/ChangeLog index f2568b2..d131cfc 100644 --- a/sim/mn10300/ChangeLog +++ b/sim/mn10300/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Mon Sep 15 17:36:15 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + Thu Sep 4 17:21:23 1997 Doug Evans * configure: Regenerated to track ../common/aclocal.m4 changes. diff --git a/sim/sh/ChangeLog b/sim/sh/ChangeLog index b02b877..025de9b 100644 --- a/sim/sh/ChangeLog +++ b/sim/sh/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + +Mon Sep 15 17:36:15 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + Tue Sep 9 20:52:21 1997 Felix Lee * interp.c (sim_resume): poll_quit() at least once per call; diff --git a/sim/tic80/ChangeLog b/sim/tic80/ChangeLog index 45ddcd9..bfd4ff4 100644 --- a/sim/tic80/ChangeLog +++ b/sim/tic80/ChangeLog @@ -1,3 +1,7 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure: Regenerated to track ../common/aclocal.m4 changes. + Tue Sep 16 23:10:03 1997 Felix Lee * sim-main.h (kill): macro was missing args. diff --git a/sim/tic80/configure b/sim/tic80/configure index 126a330..21e32a6 100755 --- a/sim/tic80/configure +++ b/sim/tic80/configure @@ -28,7 +28,7 @@ ac_help="$ac_help ac_help="$ac_help --enable-sim-endian=endian Specify target byte endian orientation." ac_help="$ac_help - --enable-sim-alignment=align Specify strict or nonstrict alignment." + --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses." ac_help="$ac_help --enable-sim-hostendain=end Specify host byte endian orientation." ac_help="$ac_help @@ -1372,21 +1372,36 @@ else fi +wire_alignment="" +default_alignment="" +default_sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT" # Check whether --enable-sim-alignment or --disable-sim-alignment was given. if test "${enable_sim_alignment+set}" = set; then enableval="$enable_sim_alignment" case "${enableval}" in - yes | strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";; - no | nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";; - 0 | default | DEFAULT) sim_alignment="-DWITH_ALIGNMENT=0";; - *) { echo "configure: error: "Unknown value $enableval passed to --enable-sim-alignment"" 1>&2; exit 1; }; sim_alignment="";; + 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 + echo "No hard-wired alignment for target $target" 1>&6 + sim_alignment="-DWITH_ALIGNMENT=0" + fi;; + no) if test x"$default_alignment" != x; then + sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}" + else + echo "No default alignment for target $target" 1>&6 + sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0" + fi;; + *) { echo "configure: error: "Unknown value $enableval passed to --enable-sim-alignment"" 1>&2; exit 1; }; 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 - sim_alignment="" + sim_alignment="${default_sim_alignment}" fi @@ -1407,14 +1422,14 @@ else if test "x$cross_compiling" = "xno"; then echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:1411: checking whether byte ordering is bigendian" >&5 +echo "configure:1426: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -1425,11 +1440,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -1440,7 +1455,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -1460,7 +1475,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -1547,17 +1562,17 @@ for ac_hdr in stdlib.h unistd.h string.h strings.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1551: checking for $ac_hdr" >&5 +echo "configure:1566: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1576: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1586,12 +1601,12 @@ done for ac_func in getpid kill do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1590: checking for $ac_func" >&5 +echo "configure:1605: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else diff --git a/sim/v850/ChangeLog b/sim/v850/ChangeLog index 4c21399..3b37f80 100644 --- a/sim/v850/ChangeLog +++ b/sim/v850/ChangeLog @@ -1,3 +1,8 @@ +Fri Sep 19 17:45:25 1997 Andrew Cagney + + * configure.in: Specify NONSTRICT_ALIGNMENT as the default. + * configure: Regenerated to track ../common/aclocal.m4 changes. + Fri Sep 19 10:37:20 1997 Andrew Cagney * v850.igen (disp16): Use EXTEND16 to sign extend disp. diff --git a/sim/v850/configure b/sim/v850/configure index f9b1629..9b8e277 100755 --- a/sim/v850/configure +++ b/sim/v850/configure @@ -26,6 +26,8 @@ ac_help="$ac_help ac_help="$ac_help --enable-sim-endian=endian Specify target byte endian orientation." ac_help="$ac_help + --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses." +ac_help="$ac_help --enable-sim-hostendain=end Specify host byte endian orientation." ac_help="$ac_help --enable-sim-warnings=opts Extra CFLAGS for turning on compiler warnings" @@ -540,7 +542,7 @@ fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:544: checking how to run the C preprocessor" >&5 +echo "configure:546: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -555,13 +557,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:567: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -572,13 +574,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:582: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -651,7 +653,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:655: checking host system type" >&5 +echo "configure:657: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -672,7 +674,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:676: checking target system type" >&5 +echo "configure:678: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -690,7 +692,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:694: checking build system type" >&5 +echo "configure:696: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -734,7 +736,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x," # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:738: checking for $ac_word" >&5 +echo "configure:740: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -763,7 +765,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:767: checking for $ac_word" >&5 +echo "configure:769: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -811,7 +813,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:815: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:817: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -821,11 +823,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -845,12 +847,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:849: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:851: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:854: checking whether we are using GNU C" >&5 +echo "configure:856: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -859,7 +861,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:865: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -874,7 +876,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:878: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:880: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -912,7 +914,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:916: checking for a BSD compatible install" >&5 +echo "configure:918: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -977,7 +979,7 @@ AR=${AR-ar} # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:981: checking for $ac_word" >&5 +echo "configure:983: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1011,17 +1013,17 @@ for ac_hdr in stdlib.h string.h strings.h unistd.h time.h sys/time.h sys/resourc do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1015: checking for $ac_hdr" >&5 +echo "configure:1017: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1050,12 +1052,12 @@ done for ac_func in getrusage time do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1054: checking for $ac_func" >&5 +echo "configure:1056: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1233,12 +1235,12 @@ fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:1237: checking return type of signal handlers" >&5 +echo "configure:1239: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1255,7 +1257,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:1259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1261: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -1327,6 +1329,39 @@ else fi +wire_alignment="NONSTRICT_ALIGNMENT" +default_alignment="NONSTRICT_ALIGNMENT" +default_sim_alignment="-DWITH_ALIGNMENT=" + +# Check whether --enable-sim-alignment or --disable-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 + echo "No hard-wired alignment for target $target" 1>&6 + sim_alignment="-DWITH_ALIGNMENT=0" + fi;; + no) if test x"$default_alignment" != x; then + sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}" + else + echo "No default alignment for target $target" 1>&6 + sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0" + fi;; + *) { echo "configure: error: "Unknown value $enableval passed to --enable-sim-alignment"" 1>&2; exit 1; }; 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 + sim_alignment="${default_sim_alignment}" +fi + + # Check whether --enable-sim-hostendian or --disable-sim-hostendian was given. if test "${enable_sim_hostendian+set}" = set; then @@ -1344,14 +1379,14 @@ else if test "x$cross_compiling" = "xno"; then echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:1348: checking whether byte ordering is bigendian" >&5 +echo "configure:1383: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -1362,11 +1397,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -1377,7 +1412,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -1397,7 +1432,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -1483,12 +1518,12 @@ fi for ac_func in time chmod utime fork execve execv chown do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1487: checking for $ac_func" >&5 +echo "configure:1522: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1539,17 +1574,17 @@ for ac_hdr in unistd.h stdlib.h string.h strings.h utime.h time.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1543: checking for $ac_hdr" >&5 +echo "configure:1578: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1588: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1739,6 +1774,7 @@ s%@sim_stdio@%$sim_stdio%g s%@sim_trace@%$sim_trace%g s%@sim_profile@%$sim_profile%g s%@sim_endian@%$sim_endian%g +s%@sim_alignment@%$sim_alignment%g s%@sim_hostendian@%$sim_hostendian%g s%@sim_warnings@%$sim_warnings%g s%@sim_reserved_bits@%$sim_reserved_bits%g diff --git a/sim/v850/configure.in b/sim/v850/configure.in index 0a74c5c..dfa4f02 100644 --- a/sim/v850/configure.in +++ b/sim/v850/configure.in @@ -6,7 +6,7 @@ AC_INIT(Makefile.in) SIM_AC_COMMON SIM_AC_OPTION_ENDIAN(LITTLE_ENDIAN) -SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT) +SIM_AC_OPTION_ALIGNMENT(,NONSTRICT_ALIGNMENT) SIM_AC_OPTION_HOSTENDIAN SIM_AC_OPTION_WARNINGS SIM_AC_OPTION_RESERVED_BITS -- 2.7.4