(String[] args)
| 159 | } |
| 160 | |
| 161 | public static void main(String[] args) throws Exception { |
| 162 | String input_filename = null; |
| 163 | boolean use_stdin = false; |
| 164 | boolean do_eval = false; |
| 165 | boolean do_run = false; |
| 166 | boolean do_codegen = false; |
| 167 | boolean do_print_size = false; |
| 168 | boolean do_print_time = false; |
| 169 | int dump = 0; |
| 170 | int first_arg = 0; |
| 171 | String src = null; |
| 172 | String cpu = null; |
| 173 | String abi = null; |
| 174 | |
| 175 | // TODO: autodetect |
| 176 | system_cpu = "x86_64_v2"; |
| 177 | system_abi = "SystemV"; |
| 178 | |
| 179 | // Parse command line |
| 180 | loop: for (int i = 0; i < args.length; i++) { |
| 181 | String arg = args[i]; |
| 182 | if (arg.charAt(0) == '-') { |
| 183 | switch (arg) { |
| 184 | case "-": use_stdin = true; break; |
| 185 | case "--dump": dump |= DUMP_FINAL; break; |
| 186 | case "--dump-after-parse": dump |= DUMP_AFTER_PARSE; break; |
| 187 | case "--dump-after-opto": dump |= DUMP_AFTER_OPTO; break; |
| 188 | case "--dump-after-type-check": dump |= DUMP_AFTER_TYPE_CHECK; break; |
| 189 | case "--dump-after-loop-tree": dump |= DUMP_AFTER_LOOP_TREE; break; |
| 190 | case "--dump-after-instr-select": dump |= DUMP_AFTER_INSTR_SELECT; break; |
| 191 | case "--dump-after-gcm": dump |= DUMP_AFTER_GCM; break; |
| 192 | case "--dump-after-local-sched": dump |= DUMP_AFTER_LOCAL_SCHED; break; |
| 193 | case "--dump-after-reg-alloc": dump |= DUMP_AFTER_REG_ALLOC; break; |
| 194 | case "--dump-after-encode": dump |= DUMP_AFTER_ENCODE; break; |
| 195 | case "--dump-after-all": dump |= DUMP_AFTER_ALL; break; |
| 196 | case "--dot": dump |= DUMP_DOT; break; |
| 197 | case "-S": dump |= DUMP_DISASSEMBLE; break; |
| 198 | case "--eval": do_eval = true; first_arg = i + 1; break loop; |
| 199 | case "--run": do_run = true; first_arg = i + 1; break loop; |
| 200 | case "--dump-size": do_print_size = true; break; |
| 201 | case "--dump-time": do_print_time = true; break; |
| 202 | case "--cpu": if (cpu != null |
| 203 | || i + 1 >= args.length |
| 204 | || args[i + 1].charAt(0) == '-') bad_usage(); |
| 205 | cpu = args[i + 1]; |
| 206 | i++; |
| 207 | break; |
| 208 | case "--abi": if (abi != null |
| 209 | || i + 1 >= args.length |
| 210 | || args[i + 1].charAt(0) == '-') bad_usage(); |
| 211 | abi = args[i + 1]; |
| 212 | i++; |
| 213 | break; |
| 214 | case "--target": target(); |
| 215 | case "--version": throw Utils.TODO(); |
| 216 | case "--help": usage(); |
| 217 | default: bad_usage(); |
| 218 | } |
nothing calls this directly
no test coverage detected