aarch64:使用gcc编译时的NEON寄存器

aarch64:使用gcc编译时的NEON寄存器,gcc,arm,neon,arm64,Gcc,Arm,Neon,Arm64,我正在尝试使用gcc编译AARC64的代码。但是,输出二进制文件使用NEON寄存器(q0~q7)。如何指示编译器不使用它们 您可以使用-mgeneral regs only,它指示编译器仅使用通用寄存器(请参阅中的详细信息) 但是,请注意,AArch64的唯一ABI假设将有浮点和高级SIMD支持。如果在代码中使用浮点,则会将其标记为错误。如果您在linux环境中,您将针对假定支持高级SIMD和浮点的二进制文件进行链接。如果您正在生成aarch64,则没有Q寄存器。armv8的霓虹灯矢量寄存器名为

我正在尝试使用gcc编译AARC64的代码。但是,输出二进制文件使用NEON寄存器(q0~q7)。如何指示编译器不使用它们

您可以使用
-mgeneral regs only
,它指示编译器仅使用通用寄存器(请参阅中的详细信息)


但是,请注意,AArch64的唯一ABI假设将有浮点和高级SIMD支持。如果在代码中使用浮点,则会将其标记为错误。如果您在linux环境中,您将针对假定支持高级SIMD和浮点的二进制文件进行链接。

如果您正在生成aarch64,则没有Q寄存器。armv8的霓虹灯矢量寄存器名为v0-v31。@BitBank,这并不完全准确,根据上下文,它们也被命名为b*、h*、s*、d*或q*,例如,在
ldr q0、[x0]
sqdmlsl s0、h1、v2中。h[0]
@JamesGreenhalgh是正确的。谢谢@james,我想在内核中使用它。