Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(633)

Side by Side Diff: third_party/boringssl/update_gypi_and_asm.py

Issue 385983006: net: pickup "586" asm files for x86. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: .. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « third_party/boringssl/mac-x86/crypto/sha/sha512-586.S ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can b 2 # Use of this source code is governed by a BSD-style license that can b
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Enumerates the BoringSSL source in src/ and generates two gypi files: 5 """Enumerates the BoringSSL source in src/ and generates two gypi files:
6 boringssl.gypi and boringssl_tests.gypi.""" 6 boringssl.gypi and boringssl_tests.gypi."""
7 7
8 import os 8 import os
9 import subprocess 9 import subprocess
10 import sys 10 import sys
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 """Runs the a perlasm script and puts the output into output_filename.""" 125 """Runs the a perlasm script and puts the output into output_filename."""
126 base_dir = os.path.dirname(output_filename) 126 base_dir = os.path.dirname(output_filename)
127 if not os.path.isdir(base_dir): 127 if not os.path.isdir(base_dir):
128 os.makedirs(base_dir) 128 os.makedirs(base_dir)
129 output = subprocess.check_output( 129 output = subprocess.check_output(
130 ['perl', input_filename, perlasm_style] + extra_args) 130 ['perl', input_filename, perlasm_style] + extra_args)
131 with open(output_filename, 'w+') as out_file: 131 with open(output_filename, 'w+') as out_file:
132 out_file.write(output) 132 out_file.write(output)
133 133
134 134
135 def ArchForAsmFilename(filename):
136 """Returns the architecture that a given asm file should be compiled for
137 based on substrings in the filename."""
138
139 if 'x86_64' in filename or 'avx2' in filename:
140 return 'x86_64'
141 elif ('x86' in filename and 'x86_64' not in filename) or '586' in filename:
142 return 'x86'
143 elif 'arm' in filename:
144 return 'arm'
145 else:
146 raise ValueError('Unknown arch for asm filename: ' + filename)
147
148
135 def WriteAsmFiles(perlasms): 149 def WriteAsmFiles(perlasms):
136 """Generates asm files from perlasm directives for each supported OS x 150 """Generates asm files from perlasm directives for each supported OS x
137 platform combination.""" 151 platform combination."""
138 asmfiles = {} 152 asmfiles = {}
139 153
140 for osarch in OS_ARCH_COMBOS: 154 for osarch in OS_ARCH_COMBOS:
141 (osname, arch, perlasm_style, asm_ext) = osarch 155 (osname, arch, perlasm_style, asm_ext) = osarch
142 key = (osname, arch) 156 key = (osname, arch)
143 outDir = '%s-%s' % key 157 outDir = '%s-%s' % key
144 158
145 for perlasm in perlasms: 159 for perlasm in perlasms:
146 filename = os.path.basename(perlasm['input']) 160 filename = os.path.basename(perlasm['input'])
147 output = perlasm['output'] 161 output = perlasm['output']
148 if not output.startswith('src'): 162 if not output.startswith('src'):
149 raise ValueError('output missing src: %s' % output) 163 raise ValueError('output missing src: %s' % output)
150 output = os.path.join(outDir, output[4:]) 164 output = os.path.join(outDir, output[4:])
151 output = output.replace('${ASM_EXT}', asm_ext) 165 output = output.replace('${ASM_EXT}', asm_ext)
152 166
153 found = False 167 if arch == ArchForAsmFilename(filename):
154 if arch == 'x86_64' and ('x86_64' in filename or 'avx2' in filename):
155 found = True
156 elif arch == 'x86' and 'x86' in filename and 'x86_64' not in filename:
157 found = True
158 elif arch == 'arm' and 'arm' in filename:
159 found = True
160
161 if found:
162 PerlAsm(output, perlasm['input'], perlasm_style, perlasm['extra_args']) 168 PerlAsm(output, perlasm['input'], perlasm_style, perlasm['extra_args'])
163 asmfiles.setdefault(key, []).append(output) 169 asmfiles.setdefault(key, []).append(output)
164 170
165 for (key, non_perl_asm_files) in NON_PERL_FILES.iteritems(): 171 for (key, non_perl_asm_files) in NON_PERL_FILES.iteritems():
166 asmfiles.setdefault(key, []).extend(non_perl_asm_files) 172 asmfiles.setdefault(key, []).extend(non_perl_asm_files)
167 173
168 return asmfiles 174 return asmfiles
169 175
170 176
171 def PrintVariableSection(out, name, files): 177 def PrintVariableSection(out, name, files):
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 for test in test_names: 229 for test in test_names:
224 test_gypi.write(""" '%s',\n""" % test) 230 test_gypi.write(""" '%s',\n""" % test)
225 231
226 test_gypi.write(' ],\n }\n}\n') 232 test_gypi.write(' ],\n }\n}\n')
227 233
228 return 0 234 return 0
229 235
230 236
231 if __name__ == '__main__': 237 if __name__ == '__main__':
232 sys.exit(main()) 238 sys.exit(main())
OLDNEW
« no previous file with comments | « third_party/boringssl/mac-x86/crypto/sha/sha512-586.S ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698