.Net 7 团队把国内的龙芯确实当做一等公民和弃用的项目
2024-10-20 04:18:35
楔子:
国内龙芯据说是用的自己的指令集,在研究ILC的时候,发现了龙芯在微软那边确实是一等公民的存在。
龙芯官网
龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行安全更新和错误修复,并持续进行性能优化。社区.NET7版本开始已经原生支持LoongArch64架构源码。
代码
在进行目标文件写入的时候
.Obj
在目标文件里面,龙芯LoongArch64会同样存在于二进制文件里面,以适配不同的平台编译特性。
case TargetArchitecture.LoongArch64:
LoongArch64.LoongArch64Emitter loongarch64Emitter = new LoongArch64.LoongArch64Emitter(factory, relocsOnly);
EmitCode(factory, ref loongarch64Emitter, relocsOnly);
loongarch64Emitter.Builder.RequireInitialAlignment(alignment);
loongarch64Emitter.Builder.AddSymbol(this);
return loongarch64Emitter.Builder.ToObjectData();
弃用
coredistools
https://github.com/dotnet/llilc
项目。
其中blob/main/lib/CoreDisTools/coredistools.cpp生成的coredistools.dll主要是用于ILC里面的C#函数的生成兼容性的汇编代码。
而这个项目的本身LLILC是一个从LLVM构建.NET兼容JIT的实验项目,已经被微软停止。
估测这个coredistools.dll里面的DumpInstruction函数后面也会被替换。
ObjWriter
https://github.com/dotnet/corert
项目。
其中
/blob/master/src/Native/ObjWriter/objwriter.cpp生成的objwriter.dll主要用于目标文件,比如.Obj,.O等。
这个项目主要是之前的NativeAOT的一部分,也被停止了,其余部分被合并到了Runtime里面去了。但是这个objwriter.dll却被合并之后单独生成
结果
可以看到LoongArch64与X64,X86,ARM,ARM64一同被纳入了LLVM的写入的编译过程。
作者:江湖评谈(公众号同名)
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
最新文章
- 谷歌Chrome浏览器开发者工具的基础功能
- [问题2014S14] 复旦高等代数II(13级)每周一题(第十四教学周)
- private、 protected、 public、 internal 修饰符
- Qt之窗体拖拽、自适应分辨率、自适应大小 good
- liunx之:rpm包安装
- [AngularJS] Isolate State Mutations in Angular Components
- phantomjs初次认识
- springframwork历史版本下载地址
- Hexo博客搭建
- 搭建Karma+Jasmine的自动化单元测试
- WC 2018 题解
- 在C#中,Json的序列化和反序列化的几种方式总结 转载
- python 读csv格式的文件
- gentoo virtualbox 无法启动
- Vue实例的生命周期(钩子函数)
- 《转》Python学习(14)-对文件的操作(一)
- txt文本框设为密码模式后,后台(服务器端)设置不了值
- 后台管理系统-使用AdminLTE搭建前端
- oracle 函数判断字符串是否包含图片格式
- CentOS6.5+nginx+mysql+php(laravel)服务器环境搭建