目前龙芯通过自己的指令集LA64支持了.Net7.0.1版本,一同被支持的有Ruby,Nodejs,Java,Electron,Python等。原文:在此处

龙芯.Net7 sdk下载地址:

http://ftp.loongnix.cn/tmp/dotnet/7.0.5/7.0.5-ea1/dotnet-sdk-7.0.105-ea1-loongarch64.tar.xz

在.Net8里面也可见支持LA64的代码,下面列举下

1.返回函数头地址

#if !defined(TARGET_X86) && !defined(TARGET_ARM64) && !defined(TARGET_LOONGARCH64) && !defined(TARGET_RISCV64)
if (hasRetBuffArg)
{
return GetEEFuncEntryPoint(VarargPInvokeStub_RetBuffArg);
}

2.结构参数使用浮点寄存器

uint32_t CEEInfo::getLoongArch64PassStructInRegisterFlags(CORINFO_CLASS_HANDLE cls)
{
#if defined(TARGET_LOONGARCH64)
size = (uint32_t)MethodTable::GetLoongArch64PassStructInRegisterFlags(cls);
#endif
return size;
}

3.JIT传入四字节的展开数据块

#elif defined(TARGET_LOONGARCH64)
_ASSERTE(IS_ALIGNED(unwindSize, sizeof(ULONG)));
ace for personality routine, it must be 4-byte aligned.
unwindSize += sizeof(ULONG);

4.JIT64位的一个兼容性,这里除了LA64还有Risc-v

#if defined(TARGET_AMD64) || defined(TARGET_ARM64) || defined(TARGET_LOONGARCH64) || defined(TARGET_RISCV64)

5.

龙芯的SDK需要在支持龙芯指令集的机器上执行,但是也可以虚拟一个龙芯指令集的机子,然后在上面模拟执行。参照之前的文章:龙芯(Loongarch64),在Linux虚拟一个龙芯OS体验下

龙芯.NET团队为了更好的支持LoongArch64架构特点,对整个后端指令构建系统进行了创新重构设计,同时,也从字节码加载、JIT语法树、ABI规范、函数栈帧设计、GC、异常处理等重要模块,都做了适应LoongArch架构特点的优化,也为后续龙芯后续深度参与社区打好基础。

作者:江湖评谈

欢迎关注我的公众号:jianghupt。顶级技术分享,文章首发。

.NET7 for LoongArch64(国产龙芯)的更多相关文章

  1. 国产龙芯3A3000处理器评测:与英特尔差距明显

    国产龙芯3A3000处理器评测:与英特尔差距明显 国产龙芯3A3000处理器评测:与英特尔差距明显 新浪财经APP缩小字体放大字体收藏微博微信分享579 新酷产品第一时间免费试玩,还有众多优质达人分享 ...

  2. 如何在国产龙芯架构平台上运行c/c++、java、nodejs等编程语言

    高能预警:本文内容过于硬核,涉及编译器原理.cpu指令集.机器码.编程语言原理.跨平台原理等计算机专业基础知识,建议具有c.c++.java.nodejs等多种编程语言开发能力,且实战经验丰富的资深开 ...

  3. 国产龙芯服务器源码安装PostgreSQL数据库的方法

    1. 公司最近有一些国产化项目的需求, 要求在国产CPU的服务器上面安装pg数据库等. 2.. 但是差查了下中标麒麟的官网,在龙芯MIPS的操作系统包源里面仅有 postgreSQL 9.2 版本的r ...

  4. [转帖]全国产 台式机/笔记本/服务器都有 方正龙芯3A3000整机三连发

    台式机/笔记本/服务器都有 方正龙芯3A3000整机三连发 2019年03月29日 17:17 4171 次阅读 稿源:快科技 7 条评论 https://www.cnbeta.com/article ...

  5. 龙芯 loongnix20 rc2 初体验

    2021-07-24 v0.0.1 版权声明:原创文章,未经博主允许不得转载 3A5000 昨天发布啦,历史上的昨天是中共一大的第一天. 3A5000 的团购还没开始(大概还是3999左右整机的样子) ...

  6. [转帖]龙芯服务器部署WEB服务的体验和详细步骤

    龙芯服务器部署WEB服务的体验和详细步骤 2019年01月02日 18:40:34 weixin_40065369 阅读数 1733   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...

  7. [转帖]方正数码发布基于龙芯3A3000系列整机

    方正数码发布基于龙芯3A3000系列整机 http://www.loongson.cn/news/company/730.html 方正数码也出过龙芯相关的服务器和PC笔记本等 发布时间:2019-0 ...

  8. 龙芯团队完成CoreCLR MIPS64移植,在github开源

    国产龙芯的软件生态之中.NET不会缺席,毕竟 C# 与 .NetCore/Mono 也是全球几大主流的编程语言和运行平台之一,最近一段时间听到太多的鼓吹政务领域不支持.NET, 大家都明白这是某些人为 ...

  9. 【PC桌面软件的末日,手机移动端App称王】写在windows11支持安卓,macOS支持ios,龙芯支持x86和arm指令翻译

    面对这场突如其来的变革,作为软件开发者,应该如何选择自己今后的发展方向?桌面软件开发领域还有前景吗? 起源 自从苹果发布m1处理器,让自家Mac支持IOS移动端app运行之后,彻底打破了移动端app和 ...

  10. 龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本

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

随机推荐

  1. ACM-DP-数塔问题

    Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告 ...

  2. 解决svn本身上传没有权限和配置自动更新的钩子

    第一步 :建立你的web程序目录和版本库目录 mkdir /data/webwww/project1 svnadmin create /data/svnwww/project1 进入/data/web ...

  3. DRF版本控制(源码分析)

    DRF中版本控制的五种情况(源码分析) 在restful规范中要去,后端的API中需要体现版本. drf框架中支持5种版本的设置. 1. URL的GET参数传递(*) 示例: user/?versio ...

  4. React中图片的相对路径引入和绝对路径引入

    React中当在JSX中的img标签中引入时使用相对路径引入,地址是基于index.html的而不是当前jsx文件的,如 <img src="./src/assets/images/g ...

  5. Java 的 SPI 机制

    什么是SPI机制? SPI机制( Service Provider Interface)是Java的一种服务发现机制,为了方便应用扩展.那什么是服务发现机制?简单来说,就是你定义了一个接口,但是不提供 ...

  6. java POI创建HSSFWorkbook工作簿

    1. POI Apache POI 是基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)处理各种文件格式的开源项目. 2. 样式设 ...

  7. C# ConfigureWait

    ConfigureAwait 参数为bool类型.true:尝试将延续任务封送回原始上下文 我们一般使用的是false,用于避免强制在原始上下文或调度程序中进行回调. 原理: 以await DoSom ...

  8. js 获取窗口/容器内部滚动位置

    前端 (document.getElementsByClassName("container")[0]).scrollTop -- 容器内部滚动条位置 (document.getE ...

  9. git拉取代码总提示输入密码解决方法

    公司用的gitlab,在项目拉取(git clone)和更新(git pull)的时候,每次都提示输入用户名密码,不胜其烦,解决方法如下: # 首先 git config --global crede ...

  10. 2023-04-13:给定一个字符串数组strs,其中每个字符串都是小写字母组成的, 如果i < j,并且strs[i]和strs[j]所有的字符随意去排列能组成回文串, 那么说(i,j)叫做一个互补

    2023-04-13:给定一个字符串数组strs,其中每个字符串都是小写字母组成的, 如果i < j,并且strs[i]和strs[j]所有的字符随意去排列能组成回文串, 那么说(i,j)叫做一 ...