gcc/g ++是否有x64微软寄存器的调用约定?

use*_*924 2 64-bit assembly gcc calling-convention

我有几个x86和x64库,其中许多是汇编代码或没有可用的源代码,这些代码是针对__cdeclx86上的堆栈约定和amd64上的Microsoft x64调用约定(RCX,RDX,R8,R9)构建的.它们从COFF32转换为ELF32和COFF64转换为ELF64,并使用gcc/g ++进行精细连接.x86功能原型使用__attribute__((cdecl, regparm(0)))和完美工作.但是,默认情况下,Linux上的x64使用不同的x64调用约定(RDI,RSI,RDX,RCX,R8,R9).我似乎无法找到如何告诉gcc/g ++使用Microsoft使用的备用x64调用约定?似乎只有两种不同的x64调用方法,我希望__attribute__((regparm(msx64)))gcc/g ++中存在类似的东西.gcc/g ++是否有能力支持备用调用约定?

TIA!

use*_*924 5

正如Marc Glisee在评论中指出的那样.答案是__attribute__((ms_abi))

现在很棒.