Add support for --enable-sim-alignment to simulator common aclocal.m4
authorAndrew Cagney <cagney@redhat.com>
Mon, 22 Sep 1997 00:24:46 +0000 (00:24 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 22 Sep 1997 00:24:46 +0000 (00:24 +0000)
Add support for --alignment={strict,nonstrict,forced} to simulator common
run-time options.
For v850 use, make the default NONSTRICT_ALIGNMENT.

17 files changed:
sim/arm/ChangeLog
sim/common/ChangeLog
sim/common/aclocal.m4
sim/common/sim-config.h
sim/common/sim-options.c
sim/d10v/ChangeLog
sim/erc32/ChangeLog
sim/h8300/ChangeLog
sim/m32r/ChangeLog
sim/mips/ChangeLog
sim/mn10300/ChangeLog
sim/sh/ChangeLog
sim/tic80/ChangeLog
sim/tic80/configure
sim/v850/ChangeLog
sim/v850/configure
sim/v850/configure.in

index a410cfa..73a5e50 100644 (file)
@@ -1,3 +1,11 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
 Thu Sep  4 17:21:23 1997  Doug Evans  <dje@seba>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.
index 3d8e522..14261ef 100644 (file)
@@ -1,3 +1,21 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Fri Sep 19 17:26:14 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * 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  <cagney@b1.cygnus.com>
 
        * sim-events.c (ETRACE): Use trace_printf not sim_io_printf for
index dec7e69..d3e6843 100644 (file)
@@ -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
 
index 59a8c37..cea3101 100644 (file)
@@ -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)
index 96e1dba..6d4f3da 100644 (file)
@@ -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;
index a2dade3..18d0769 100644 (file)
@@ -1,3 +1,11 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
 Wed Sep 10 22:30:24 1997  Martin M. Hunt  <hunt@cygnus.com>
 
        * interp.c (sim_resume): Increment PC at end of rep
index 3761893..451c961 100644 (file)
@@ -1,3 +1,11 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
 Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.
index 3b52087..e490d05 100644 (file)
@@ -1,3 +1,11 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Wed Sep 17 12:00:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * Makefile.in (compile.o): Depend on config.h in local directory.
+
 Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.
index ad57669..64c3c47 100644 (file)
@@ -1,3 +1,16 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Wed Sep 17 17:44:40 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * 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  <cagney@b1.cygnus.com>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.
index 70e773c..ff6f256 100644 (file)
@@ -1,3 +1,24 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Sat Sep 20 14:07:28 1997  Gavin Koch  <gavin@cygnus.com>
+
+       * 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  <gavin@cygnus.com>
 
        * gencode.c: Add r3900 (tx39).
index f2568b2..d131cfc 100644 (file)
@@ -1,3 +1,11 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
 Thu Sep  4 17:21:23 1997  Doug Evans  <dje@seba>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.
index b02b877..025de9b 100644 (file)
@@ -1,3 +1,11 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
 Tue Sep  9 20:52:21 1997  Felix Lee  <flee@cygnus.com>
 
        * interp.c (sim_resume): poll_quit() at least once per call;
index 45ddcd9..bfd4ff4 100644 (file)
@@ -1,3 +1,7 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
 Tue Sep 16 23:10:03 1997  Felix Lee  <flee@cygnus.com>
 
        * sim-main.h (kill): macro was missing args.
index 126a330..21e32a6 100755 (executable)
@@ -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 <<EOF
-#line 1418 "configure"
+#line 1433 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -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 <<EOF
-#line 1433 "configure"
+#line 1448 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -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 <<EOF
-#line 1464 "configure"
+#line 1479 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -1473,7 +1488,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:1477: \"$ac_link\") 1>&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
-#line 1556 "configure"
+#line 1571 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 1595 "configure"
+#line 1610 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1614,7 +1629,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1618: \"$ac_link\") 1>&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
index 4c21399..3b37f80 100644 (file)
@@ -1,3 +1,8 @@
+Fri Sep 19 17:45:25 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * 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  <cagney@b1.cygnus.com>
 
        * v850.igen (disp16): Use EXTEND16 to sign extend disp.
index f9b1629..9b8e277 100755 (executable)
@@ -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 <<EOF
-#line 559 "configure"
+#line 561 "configure"
 #include "confdefs.h"
 #include <assert.h>
 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 <<EOF
-#line 576 "configure"
+#line 578 "configure"
 #include "confdefs.h"
 #include <assert.h>
 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 <<EOF
-#line 825 "configure"
+#line 827 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:829: \"$ac_link\") 1>&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
-#line 1020 "configure"
+#line 1022 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 1059 "configure"
+#line 1061 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1078,7 +1080,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1082: \"$ac_link\") 1>&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 <<EOF
-#line 1242 "configure"
+#line 1244 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -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 <<EOF
-#line 1355 "configure"
+#line 1390 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -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 <<EOF
-#line 1370 "configure"
+#line 1405 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -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 <<EOF
-#line 1401 "configure"
+#line 1436 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -1410,7 +1445,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:1414: \"$ac_link\") 1>&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 <<EOF
-#line 1492 "configure"
+#line 1527 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1511,7 +1546,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1515: \"$ac_link\") 1>&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
-#line 1548 "configure"
+#line 1583 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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
index 0a74c5c..dfa4f02 100644 (file)
@@ -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