]> Git Repo - binutils.git/blame - sim/sh/run.c
Support for broken makes and lint.
[binutils.git] / sim / sh / run.c
CommitLineData
594266fc
SC
1/* run front end support for H8/500
2 Copyright (C) 1987, 1992 Free Software Foundation, Inc.
3
4This file is part of H8300 SIM
5
6GNU CC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10
11GNU CC is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU CC; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
21/* Steve Chamberlain
22 [email protected] */
23
24#include "bfd.h"
25#include "sysdep.h"
26
27int
28main (ac, av)
29 int ac;
30 char **av;
31{
32 bfd *abfd;
33 bfd_vma start_address;
34 asection *s;
35 int i;
36 int verbose = 0;
37 int trace = 0;
38 char *name = "";
39 for (i = 1; i < ac; i++)
40 {
41 if (strcmp (av[i], "-v") == 0)
42 {
43 verbose = 1;
44 }
45 else if (strcmp (av[i], "-t") == 0)
46 {
47 trace = 1;
48 }
5e1ac260
SC
49 else if (strcmp (av[i], "-m") == 0)
50 {
51 sim_size(atoi(av[i+1]));
52 i++;
53 }
594266fc
SC
54 else
55 {
56 name = av[i];
57 }
58 }
59 if (verbose)
60 {
61 printf ("run %s\n", name);
62 }
63 abfd = bfd_openr (name, "coff-sh");
64 if (abfd)
65 {
66
67 if (bfd_check_format (abfd, bfd_object))
68 {
69
70 for (s = abfd->sections; s; s = s->next)
71 {
72 unsigned char *buffer = malloc (bfd_section_size (abfd, s));
73 bfd_get_section_contents (abfd,
74 s,
75 buffer,
76 0,
77 bfd_section_size (abfd, s));
78 sim_write (s->vma, buffer, bfd_section_size (abfd, s));
79 }
80
81 start_address = bfd_get_start_address (abfd);
82 sim_set_pc (start_address);
83 if (trace)
84 {
85 int done = 0;
86 while (!done)
87 {
88 done = sim_trace ();
89 }
90 }
91 else
92 {
93 sim_resume (0, 0);
94 }
95 if (verbose)
96 sim_info ();
97
98 return 0;
99 }
100 }
101
102 return 1;
103}
This page took 0.032121 seconds and 4 git commands to generate.