4

.Net 7 团队把国内的龙芯确实当做一等公民和弃用的项目 - 江湖评谈

 1 year ago
source link: https://www.cnblogs.com/tangyanzhi1111/p/16975732.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

.Net 7 团队把国内的龙芯确实当做一等公民和弃用的项目

国内龙芯据说是用的自己的指令集,在研究ILC的时候,发现了龙芯在微软那边确实是一等公民的存在。

龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行安全更新和错误修复,并持续进行性能优化。社区.NET7版本开始已经原生支持LoongArch64架构源码。

在进行目标文件写入的时候

image

在目标文件里面,龙芯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 国际」许可协议进行许可。
image

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK