gcc的stdcall扩展

MSVC上:

  如果是函数调用约定直接就写 __stdcall 之类的就行了

如果是gcc上:

 函数的扩展调用约定要这样写 __attribute__((__stdcall__)),默认为__attribute__((__cdecl__))

 

如果编译目标(编译出来的可执行文件)为x64平台,那么stdcall会被忽略不生效。原因是由于x64平台下的寄存器增加,可以进行fastcall

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GCC中,扩展RISC-V指令可以通过添加新的目标处理器选项来实现。以下是一个简单的步骤来扩展RISC-V指令集: 1. 获取RISC-V GCC工具链:首先,你需要获取RISC-V GCC工具链。你可以从RISC-V官方GitHub存储库获取源代码,然后编译工具链。或者,你也可以使用预编译的工具链,例如Sifive提供的Freedom开发平台。 2. 了解GCC寄存器描述文件:GCC使用一种称为“寄存器描述文件(Register Description File)”的文件来描述目标处理器的寄存器和指令集。你需要了解这个文件的结构和格式。 3. 修改寄存器描述文件:根据你需要扩展的指令集,你需要修改寄存器描述文件以添加新的指令。你可以定义新的指令格式、操作码和操作数等。 4. 更新GCC源代码:将修改后的寄存器描述文件与GCC源代码一起使用。你需要将该文件放置在正确的目录中,并更新相关的构建系统脚本。 5. 构建和安装GCC:使用修改后的GCC源代码构建新版本的GCC。按照通常的构建过程进行,并确保在构建期间指定新的目标处理器选项。 6. 测试新指令:构建完成后,你可以使用新版本的GCC来编译和运行包含新指令的程序。确保新指令能够正确地被编码和执行。 请注意,这是一个简单的概述,并且具体的步骤可能因你要扩展的指令集和GCC版本而有所不同。在实际操作中,你可能需要更深入地了解GCC的内部结构和相关文档。此外,还要注意遵循RISC-V的指令集架构规范,并确保新指令的正确性和兼容性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值