楔子:

国内龙芯据说是用的自己的指令集,在研究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 国际」许可协议进行许可。

最新文章

  1. 谷歌Chrome浏览器开发者工具的基础功能
  2. [问题2014S14] 复旦高等代数II(13级)每周一题(第十四教学周)
  3. private、 protected、 public、 internal 修饰符
  4. Qt之窗体拖拽、自适应分辨率、自适应大小 good
  5. liunx之:rpm包安装
  6. [AngularJS] Isolate State Mutations in Angular Components
  7. phantomjs初次认识
  8. springframwork历史版本下载地址
  9. Hexo博客搭建
  10. 搭建Karma+Jasmine的自动化单元测试
  11. WC 2018 题解
  12. 在C#中,Json的序列化和反序列化的几种方式总结 转载
  13. python 读csv格式的文件
  14. gentoo virtualbox 无法启动
  15. Vue实例的生命周期(钩子函数)
  16. 《转》Python学习(14)-对文件的操作(一)
  17. txt文本框设为密码模式后,后台(服务器端)设置不了值
  18. 后台管理系统-使用AdminLTE搭建前端
  19. oracle 函数判断字符串是否包含图片格式
  20. CentOS6.5+nginx+mysql+php(laravel)服务器环境搭建

热门文章

  1. Python函数-2V2
  2. BLS签名算法
  3. linux基础总结
  4. Spring_Boot项目集成Swagger填坑
  5. 【算法训练营day7】LeetCode454. 四数相加II LeetCode383. 赎金信 LeetCode15. 三数之和 LeetCode18. 四数之和
  6. 齐博x1标签实例:标签的嵌套用法,调用聚合数据
  7. 齐博x1再来个抛砖引玉 内容页根据关键词调用相关内容 新功能哦!
  8. python批量加密文件
  9. Three.js中加载外部fbx格式的模型素材
  10. Maven 聚合工程的创建