2003-06-04 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Thu, 5 Jun 2003 02:18:01 +0000 (02:18 +0000)
committerMichael Snyder <msnyder@vmware.com>
Thu, 5 Jun 2003 02:18:01 +0000 (02:18 +0000)
* compile.c (sim_info): Fix typo in output.

* h8300/compile.c (set_h8300h): Replace 'flag' arguments
with a bfd_machine argument, and decode it inline.
Check for bfd_mach_h8300hn and bfd_mach_h8300sn.

sim/h8300/ChangeLog
sim/h8300/compile.c

index b5a2cf8..e35d2b7 100644 (file)
@@ -2,6 +2,10 @@
 
        * compile.c (sim_info): Fix typo in output.
 
+       * h8300/compile.c (set_h8300h): Replace 'flag' arguments
+       with a bfd_machine argument, and decode it inline.
+       Check for bfd_mach_h8300hn and bfd_mach_h8300sn.
+
 2003-06-03  Michael Snyder  <msnyder@redhat.com>
 
        * compile.c: Add h8300sx insns and addressing modes.
index 33a28f5..c71658e 100644 (file)
@@ -4748,15 +4748,20 @@ sim_info (SIM_DESC sd, int verbose)
    FLAG is non-zero for the H8/300H.  */
 
 void
-set_h8300h (int h_flag, int s_flag, int sx_flag)
+set_h8300h (unsigned long machine)
 {
   /* FIXME: Much of the code in sim_load can be moved to sim_open.
      This function being replaced by a sim_open:ARGV configuration
      option.  */
 
-  h8300hmode  = h_flag;
-  h8300smode  = s_flag;
-  h8300sxmode = sx_flag;
+  if (machine == bfd_mach_h8300sx)
+    h8300sxmode = 1;
+
+  if (machine == bfd_mach_h8300s || machine == bfd_mach_h8300sn || h8300sxmode)
+    h8300smode = 1;
+
+  if (machine == bfd_mach_h8300h || machine == bfd_mach_h8300hn || h8300smode)
+    h8300hmode = 1;
 }
 
 /* Cover function of sim_state_free to free the cpu buffers as well.  */
@@ -4873,14 +4878,7 @@ sim_load (SIM_DESC sd, char *prog, bfd *abfd, int from_tty)
         and bfd_openr as sim_load_file checks too.  */
       if (bfd_check_format (prog_bfd, bfd_object))
        {
-         unsigned long mach = bfd_get_mach (prog_bfd);
-
-         set_h8300h (mach == bfd_mach_h8300h || 
-                     mach == bfd_mach_h8300s ||
-                     mach == bfd_mach_h8300sx,
-                     mach == bfd_mach_h8300s ||
-                     mach == bfd_mach_h8300sx,
-                     mach == bfd_mach_h8300sx);
+         set_h8300h (bfd_get_mach (prog_bfd));
        }
     }