1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
diff -Naurp spim-7.2.1-r1/CPU/spim-utils.c spim-7.2.1-r1.mult_except/CPU/spim-utils.c
--- spim-7.2.1-r1/CPU/spim-utils.c 2005-08-28 13:58:13.000000000 -0700
+++ spim-7.2.1-r1.mult_except/CPU/spim-utils.c 2005-10-26 14:22:15.000000000 -0700
@@ -76,7 +76,7 @@ mem_addr initial_k_data_limit = K_DATA_L
/* Initialize or reinitialize the state of the machine. */
void
-initialize_world (char* exception_file_name)
+initialize_world (char* exception_file_names)
{
/* Allocate the floating point registers */
if (FGR == NULL)
@@ -96,18 +96,26 @@ initialize_world (char* exception_file_n
data_begins_at_point (DATA_BOT);
text_begins_at_point (TEXT_BOT);
- if (exception_file_name != NULL)
+ if (exception_file_names != NULL)
{
int old_bare = bare_machine;
int old_accept = accept_pseudo_insts;
+ char *state, *filename;
bare_machine = 0; /* Exception handler uses extended machine */
accept_pseudo_insts = 1;
- if (read_assembly_file (exception_file_name))
- fatal_error ("Cannot read exception handler: %s\n", exception_file_name);
+
+ for(filename = strtok_r(exception_file_names, ":", &state);
+ filename;
+ filename = strtok_r(NULL, ":", &state)) {
+
+ if (read_assembly_file (filename))
+ fatal_error ("Cannot read exception handler: %s\n", filename);
+ write_output (message_out, "Loaded: %s\n", filename);
+ }
+
bare_machine = old_bare;
accept_pseudo_insts = old_accept;
- write_output (message_out, "Loaded: %s\n", exception_file_name);
if (!bare_machine)
{
diff -Naurp spim-7.2.1-r1/CPU/spim-utils.h spim-7.2.1-r1.mult_except/CPU/spim-utils.h
--- spim-7.2.1-r1/CPU/spim-utils.h 2005-08-28 13:58:13.000000000 -0700
+++ spim-7.2.1-r1.mult_except/CPU/spim-utils.h 2005-10-26 14:23:08.000000000 -0700
@@ -46,7 +46,7 @@ void format_mem (str_stream *ss, mem_add
void format_registers (str_stream *ss, int print_gpr_hex, int print_fpr_hex);
void initialize_registers ();
void initialize_run_stack (int argc, char **argv);
-void initialize_world (char *exception_file_name);
+void initialize_world (char *exception_file_names);
void list_breakpoints ();
name_val_val *map_int_to_name_val_val (name_val_val tbl[], int tbl_len, int num);
name_val_val *map_string_to_name_val_val (name_val_val tbl[], int tbl_len, char *id);
|