| #!/usr/bin/env python |
| |
| # Copyright 2018 the V8 project 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 to convert |
| embedded.S to embedded.cc 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(b'__asm__(\n') |
| for line in infile: |
| # Escape " in .S file before outputing it to inline asm file. |
| line = line.replace('"', '\\"') |
| outfile.write(b' "%s\\n"\n' % line.rstrip().encode('utf8')) |
| outfile.write(b');\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)) |