gpt4 book ai didi

gcc - 如何在GCC内联汇编中的Intel x86_64寄存器r8至r15上指定寄存器约束?

转载 作者:行者123 更新时间:2023-12-03 20:20:55 30 4
gpt4 key购买 nike

这是寄存器加载代码的列表:


恶作剧
贝贝克斯
ecx
迪克斯
塞西
迪迪
I常数(0到31)
q,r动态分配的寄存器(见下文)
g eax,ebx,ecx,edx或内存中的变量
一个eax和edx合并为一个64位整数(使用long long)


但这是Intel i386的寄存器限制。我的问题是在哪里可以找到Intel x86_64系统的寄存器约束,例如:


? %r10
? %r8
? %rdx


等等。

最佳答案

特定于机器的约束在gcc manual中有一个部分-丑陋的详细信息在config/i386/constraints.md中找到。

某些约束对于x86-64具有不同的含义,例如,在32位模式下,q%eax%ebx%ecx%edx;在64位模式下,它是任何通用整数寄存器-基本上与r约束相同。像a这样的特定寄存器名称现在指的是%raxd%rdx等。

但是,对于%r8 .. %r15没有特殊的约束或名称。关于内联汇编和约束使用here,有一个很棒的(特定于x86-64)教程。

关于gcc - 如何在GCC内联汇编中的Intel x86_64寄存器r8至r15上指定寄存器约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17159551/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com