" -o file Output file name\n"
" +o[value] Turn a specific optimisation on\n"
" Available optimisation values and default settings:\n"
- " o0: Absolute long addresses to word (on)\n"
- " o1: move.l #x,dn/an to moveq (on)\n"
- " o2: Word branches to short (on)\n"
- " o3: Outer displacement 0(an) to (an) (off)\n"
- " o4: lea size(An),An to addq #size,An (off)\n"
- " o5: 68020+ Absolute long base/outer displacement to word (off)\n"
- " o6: Null branches to NOP (off)\n"
- " o7: clr.l Dx to moveq #0,Dx (off)\n"
- " o8: adda.w/l #x,Dy to addq.w/l #x,Dy (off)\n"
- " o9: adda.w/l #x,Dy to lea x(Dy),Dy (off)\n"
- " op: Enforce PC relative (off)\n"
+ " o0: Absolute long addresses to word (on)\n"
+ " o1: move.l #x,dn/an to moveq (on)\n"
+ " o2: Word branches to short (on)\n"
+ " o3: Outer displacement 0(an) to (an) (off)\n"
+ " o4: lea size(An),An to addq #size,An (off)\n"
+ " o5: 68020+ Absolute long base/outer disp. to word (off)\n"
+ " o6: Null branches to NOP (off)\n"
+ " o7: clr.l Dx to moveq #0,Dx (off)\n"
+ " o8: adda.w/l #x,Dy to addq.w/l #x,Dy (off)\n"
+ " o9: adda.w/l #x,Dy to lea x(Dy),Dy (off)\n"
+ " op: Enforce PC relative (off)\n"
" ~o[value] Turn a specific optimisation off\n"
" +oall Turn all optimisations on\n"
" ~oall Turn all optimisations off\n"
else
{
int opt_no = atoi(&optstring[2]);
+
if ((opt_no >= 0) && (opt_no < OPT_COUNT))
{
optim_flags[opt_no] = onoff;
optstring += 3;
+
// If opt_no is 2 digits then consume an extra character.
// Sounds a bit sleazy but we know we're not going to hit
- // more than 100 optimisation switches so this should be fine.
- // If we do hit that number then it'll probably be time to burn
- // the whole codebase and start from scratch.
+ // more than 100 optimisation switches so this should be
+ // fine. If we do hit that number then it'll probably be
+ // time to burn the whole codebase and start from scratch.
if (opt_no > 9)
optstring++;
}
{
return ERROR;
}
+
if (*optstring == ',')
optstring++;
}