df071e9497
Now, the CodeAssembler can annotate Nodes with SourcePositions. SourcePositions themselves get a new mode "external," in which they get a file_id, line and column. The file_id is currently maintained in the isolate, mapping to strings for filenames. Additionally, inlining information is ignored at this point, but in the long run I'd like to recognize calls to different CSA functions as manual inlinings. At this point, if you want to see the results in tools like GDB, you'll need to build without clang, and use the GCC toolchain. GN flag is_clang=false will do the trick. Bug: v8:8418 Change-Id: I123cdc041612285fa7d0ba532a625bceeda5d338 Reviewed-on: https://chromium-review.googlesource.com/c/1322954 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59009}
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
#!/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('__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))
|