diff options
| author | antoyo <antoyo@users.noreply.github.com> | 2025-06-30 10:08:00 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-30 10:08:00 -0400 |
| commit | 4b5c44b14166083eef8d71f15f5ea1f53fc976a0 (patch) | |
| tree | 8a3b3d8ee27e21e47f5244e2d9a74381a3a43f2a /tools/generate_intrinsics.py | |
| parent | ce73bab440961d8fd5fb748c1ff5e358f77bf8fd (diff) | |
| parent | c57393e2eada6cbf52acc36232d930e660218d9d (diff) | |
| download | rust-4b5c44b14166083eef8d71f15f5ea1f53fc976a0.tar.gz rust-4b5c44b14166083eef8d71f15f5ea1f53fc976a0.zip | |
Merge pull request #725 from FractalFir/intrinsic_fix
Fixes #724
Diffstat (limited to 'tools/generate_intrinsics.py')
| -rw-r--r-- | tools/generate_intrinsics.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/tools/generate_intrinsics.py b/tools/generate_intrinsics.py index ed0ebf00719..88927f39b93 100644 --- a/tools/generate_intrinsics.py +++ b/tools/generate_intrinsics.py @@ -176,14 +176,14 @@ def update_intrinsics(llvm_path, llvmint, llvmint2): out.write("// File generated by `rustc_codegen_gcc/tools/generate_intrinsics.py`\n") out.write("// DO NOT EDIT IT!\n") out.write("/// Translate a given LLVM intrinsic name to an equivalent GCC one.\n") - out.write("fn map_arch_intrinsic(name:&str)->&str{\n") - out.write('let Some(name) = name.strip_prefix("llvm.") else { unimplemented!("***** unsupported LLVM intrinsic {}", name) };\n') + out.write("fn map_arch_intrinsic(full_name:&str)->&'static str{\n") + out.write('let Some(name) = full_name.strip_prefix("llvm.") else { unimplemented!("***** unsupported LLVM intrinsic {}", full_name) };\n') out.write('let Some((arch, name)) = name.split_once(\'.\') else { unimplemented!("***** unsupported LLVM intrinsic {}", name) };\n') out.write("match arch {\n") for arch in archs: if len(intrinsics[arch]) == 0: continue - out.write("\"{}\" => {{ #[allow(non_snake_case)] fn {}(name: &str) -> &str {{ match name {{".format(arch,arch)) + out.write("\"{}\" => {{ #[allow(non_snake_case)] fn {}(name: &str,full_name:&str) -> &'static str {{ match name {{".format(arch,arch)) intrinsics[arch].sort(key=lambda x: (x[0], x[2])) out.write(' // {}\n'.format(arch)) for entry in intrinsics[arch]: @@ -196,9 +196,9 @@ def update_intrinsics(llvm_path, llvmint, llvmint2): out.write(' // [INVALID CONVERSION]: "{}" => "{}",\n'.format(llvm_name, entry[1])) else: out.write(' "{}" => "{}",\n'.format(llvm_name, entry[1])) - out.write(' _ => unimplemented!("***** unsupported LLVM intrinsic {}", name),\n') - out.write("}} }} {}(name) }}\n,".format(arch)) - out.write(' _ => unimplemented!("***** unsupported LLVM architecture {}", name),\n') + out.write(' _ => unimplemented!("***** unsupported LLVM intrinsic {full_name}"),\n') + out.write("}} }} {}(name,full_name) }}\n,".format(arch)) + out.write(' _ => unimplemented!("***** unsupported LLVM architecture {arch}, intrinsic:{full_name}"),\n') out.write("}\n}") subprocess.call(["rustfmt", output_file]) print("Done!") |
