Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python2 | 1 #!/usr/bin/env python2 |
| 2 | 2 |
| 3 import argparse | 3 import argparse |
| 4 import itertools | 4 import itertools |
| 5 import os | 5 import os |
| 6 import re | 6 import re |
| 7 import subprocess | 7 import subprocess |
| 8 import sys | 8 import sys |
| 9 import tempfile | 9 import tempfile |
| 10 | 10 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 71 help='Assemble the output') | 71 help='Assemble the output') |
| 72 argparser.add_argument('--disassemble', required=False, | 72 argparser.add_argument('--disassemble', required=False, |
| 73 action='store_true', | 73 action='store_true', |
| 74 help='Disassemble the assembled output') | 74 help='Disassemble the assembled output') |
| 75 argparser.add_argument('--dis-flags', required=False, | 75 argparser.add_argument('--dis-flags', required=False, |
| 76 action='append', default=[], | 76 action='append', default=[], |
| 77 help='Add a disassembler flag') | 77 help='Add a disassembler flag') |
| 78 argparser.add_argument('--filetype', default='iasm', dest='filetype', | 78 argparser.add_argument('--filetype', default='iasm', dest='filetype', |
| 79 choices=['obj', 'asm', 'iasm'], | 79 choices=['obj', 'asm', 'iasm'], |
| 80 help='Output file type. Default %(default)s.') | 80 help='Output file type. Default %(default)s.') |
| 81 argparser.add_argument('--forceasm', required=False, action='store_true', | |
| 82 help='Force --filetype=asm.') | |
|
Jim Stichnoth
2015/12/20 18:42:23
OCD: Remove the '.' from the help string for consi
sehr
2016/01/07 18:53:11
Done.
| |
| 81 argparser.add_argument('--target', default='x8632', dest='target', | 83 argparser.add_argument('--target', default='x8632', dest='target', |
| 82 choices=['x8632','arm32','mips32'], | 84 choices=['x8632','arm32','mips32'], |
| 83 help='Target architecture. Default %(default)s.') | 85 help='Target architecture. Default %(default)s.') |
| 84 argparser.add_argument('--echo-cmd', required=False, | 86 argparser.add_argument('--echo-cmd', required=False, |
| 85 action='store_true', | 87 action='store_true', |
| 86 help='Trace command that generates ICE instructions') | 88 help='Trace command that generates ICE instructions') |
| 87 argparser.add_argument('--tbc', required=False, action='store_true', | 89 argparser.add_argument('--tbc', required=False, action='store_true', |
| 88 help='Input is textual bitcode (not .ll)') | 90 help='Input is textual bitcode (not .ll)') |
| 89 argparser.add_argument('--expect-fail', required=False, action='store_true', | 91 argparser.add_argument('--expect-fail', required=False, action='store_true', |
| 90 help='Negate success of run by using LLVM not') | 92 help='Negate success of run by using LLVM not') |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 104 if args.llvm_source and args.no_local_syms: | 106 if args.llvm_source and args.no_local_syms: |
| 105 raise RuntimeError("Can't specify both '--llvm-source' and " + | 107 raise RuntimeError("Can't specify both '--llvm-source' and " + |
| 106 "'--no-local-syms'") | 108 "'--no-local-syms'") |
| 107 | 109 |
| 108 if args.llvm_source and args.tbc: | 110 if args.llvm_source and args.tbc: |
| 109 raise RuntimeError("Can't specify both '--tbc' and '--llvm-source'") | 111 raise RuntimeError("Can't specify both '--tbc' and '--llvm-source'") |
| 110 | 112 |
| 111 if args.llvm and args.tbc: | 113 if args.llvm and args.tbc: |
| 112 raise RuntimeError("Can't specify both '--tbc' and '--llvm'") | 114 raise RuntimeError("Can't specify both '--tbc' and '--llvm'") |
| 113 | 115 |
| 116 if args.forceasm: | |
| 117 if args.filetype == 'asm': | |
| 118 pass | |
| 119 elif args.filetype == 'iasm': | |
| 120 # TODO(sehr) implement forceasm for iasm. | |
| 121 pass | |
| 122 elif args.filetype == 'obj': | |
| 123 args.filetype = 'asm' | |
| 124 args.assemble = True | |
| 125 | |
| 114 cmd = [] | 126 cmd = [] |
| 115 if args.tbc: | 127 if args.tbc: |
| 116 cmd = [os.path.join(pnacl_bin_path, 'pnacl-bcfuzz'), llfile, | 128 cmd = [os.path.join(pnacl_bin_path, 'pnacl-bcfuzz'), llfile, |
| 117 '-bitcode-as-text', '-output', '-', '|'] | 129 '-bitcode-as-text', '-output', '-', '|'] |
| 118 elif not args.llvm_source: | 130 elif not args.llvm_source: |
| 119 cmd = [os.path.join(pnacl_bin_path, 'llvm-as'), llfile, '-o', '-', '|', | 131 cmd = [os.path.join(pnacl_bin_path, 'llvm-as'), llfile, '-o', '-', '|', |
| 120 os.path.join(pnacl_bin_path, 'pnacl-freeze')] | 132 os.path.join(pnacl_bin_path, 'pnacl-freeze')] |
| 121 if not args.no_local_syms: | 133 if not args.no_local_syms: |
| 122 cmd += ['--allow-local-symbol-tables'] | 134 cmd += ['--allow-local-symbol-tables'] |
| 123 cmd += ['|'] | 135 cmd += ['|'] |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 165 [asm_temp.name]) | 177 [asm_temp.name]) |
| 166 | 178 |
| 167 stdout_result = shellcmd(cmd, echo=args.echo_cmd) | 179 stdout_result = shellcmd(cmd, echo=args.echo_cmd) |
| 168 if not args.echo_cmd: | 180 if not args.echo_cmd: |
| 169 sys.stdout.write(stdout_result) | 181 sys.stdout.write(stdout_result) |
| 170 if asm_temp: | 182 if asm_temp: |
| 171 os.remove(asm_temp.name) | 183 os.remove(asm_temp.name) |
| 172 | 184 |
| 173 if __name__ == '__main__': | 185 if __name__ == '__main__': |
| 174 main() | 186 main() |
| OLD | NEW |