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);