| #!/usr/bin/env python | |
| # Copyright 2019 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| ''' | |
| Converts a given file in clang assembly syntax to a corresponding | |
| representation in inline assembly. Specifically, this is used for | |
| Windows clang builds. | |
| ''' | |
| import argparse | |
| import sys | |
| def asm_to_inl_asm(in_filename, out_filename): | |
| with open(in_filename, 'r') as infile, open(out_filename, 'wb') as outfile: | |
| outfile.write('__asm__(\n') | |
| for line in infile: | |
| # Escape " in .S file before outputing it to inline asm file. | |
| line = line.replace('"', '\\"') | |
| outfile.write(' "%s\\n"\n' % line.rstrip()) | |
| outfile.write(');\n') | |
| return 0 | |
| if __name__ == '__main__': | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument('input', help='Name of the input assembly file') | |
| parser.add_argument('output', help='Name of the target CC file') | |
| args = parser.parse_args() | |
| sys.exit(asm_to_inl_asm(args.input, args.output)) |