+ params.auto_overlay |= 4;
+ break;
+
+ case OPTION_SPU_SOFT_ICACHE:
+ params.ovly_flavour = ovly_soft_icache;
+ /* Software i-cache stubs are always "compact". */
+ params.compact_stub = 1;
+ if (!num_lines_set)
+ params.num_lines = 32;
+ else if ((params.num_lines & -params.num_lines) != params.num_lines)
+ einfo (_("%F%P: invalid --num-lines/--num-regions `%u'\''\n"),
+ params.num_lines);
+ if (!line_size_set)
+ params.line_size = 1024;
+ else if ((params.line_size & -params.line_size) != params.line_size)
+ einfo (_("%F%P: invalid --line-size/--region-size `%u'\''\n"),
+ params.line_size);
+ break;
+
+ case OPTION_SPU_LRLIVE:
+ params.lrlive_analysis = 1;
+ break;
+
+ case OPTION_SPU_NON_IA_TEXT:
+ params.non_ia_text = 1;
+ break;
+
+ case OPTION_SPU_NUM_LINES:
+ {
+ char *end;
+ params.num_lines = strtoul (optarg, &end, 0);
+ num_lines_set = 1;
+ if (*end == 0
+ && (params.ovly_flavour != ovly_soft_icache
+ || (params.num_lines & -params.num_lines) == params.num_lines))
+ break;
+ einfo (_("%F%P: invalid --num-lines/--num-regions `%s'\''\n"), optarg);
+ }
+ break;
+
+ case OPTION_SPU_LINE_SIZE:
+ {
+ char *end;
+ params.line_size = strtoul (optarg, &end, 0);
+ line_size_set = 1;
+ if (*end == 0
+ && (params.ovly_flavour != ovly_soft_icache
+ || (params.line_size & -params.line_size) == params.line_size))
+ break;
+ einfo (_("%F%P: invalid --line-size/--region-size `%s'\''\n"), optarg);
+ }