x86-64是Intel x86架构的64位扩展
如何修复 Musl x86_64 LibC 上对 PThread 的未定义引用?
一段时间以来,我一直在尝试针对 Musl 进行编译。我的目标是制作一个游戏引擎二进制文件,它可以使用相同的二进制文件在尽可能多的 x86_64 Linux 发行版上执行。 问题是,
llvm-mca 上的 ADX:它的倒数吞吐量是 1 还是 0.5?
intel.com:Skylake 吞吐量 (CPI) 0.5 但是 llvm-mca 返回 $ llvm-mca kkk -mcpu=skylake -timeline --timeline-max-iterations=10 --timeline-max-cycles=999 ... 时间轴视图:
如何从与 uica 兼容的优化二进制文件中提取代码? 即使我摆脱了十六进制,我也不确定如何处理标签。我试过 objdump 和 gdb disassemble
我有一个神秘的浮点异常。 我通过这样做来抓住它: feenableexcept( FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW ); 然后是这段代码中的第二部分(最后一行): const float dx = oth...
每个英特尔处理器都应提供一个唯一的 PPIN(受保护处理器库存编号)值。我在这里读到这个值将从内核 5.18 开始在 Linux 中可用。呵呵……
你知道任何聪明的方法来总结所有设置位的索引吗? 我知道代码 / 设置位索引的总和 int A073642(uint64_t n) { 返回 __popcnt64(n & 0xAAAAAAAAAAAAAAAA) + (__popcnt6...
1.文本 2.全球之谜 3 .type 神秘,@function 4个谜: 5 movq %rdi,%rax 6 movq %rdi,%rdx 7 cmpb $0, (%rdi) 8je.L5 9.L3: 10 添加 1 美元,%rdx 11 美元 0, (%rdx) 12jne.L3 13.L...
在未分配的内存空间buff和numb中存储cpuid的结果后,我想为它们各自追加一个换行符。所以,我让未分配的空间比
问题: 我经常在 Linux 源代码中看到 __meminit 装饰器放在函数前面。我想知道 __meminit 装饰器是什么意思。 例如。在 arch/x86/mm/init_64.c 中: 静态无效 __meminit
我正在学习 64 位 nasm,我组装了 .nasm 文件,它只包含 64 位寄存器,通过执行以下操作 nasm -f elf64 HelloWorld.nasm -o HelloWorld.o 并链接它执行以下操作 老大
x86_64:什么时候 `movzbq` 优于 `movzbl`
在我的 x86_64 机器上, 我使用 objdump -d 检查以下两条指令的编码: movzbl (%rdi),%eax: 编码为 3 个字节 (0f b6 07) movzbq (%rdi),%rax: 编码为 4 个字节 (48 0f b6 ...
Linux 上的 x86_64 nasm:打印到标准输出寄存器的十六进制值
这是一个反复出现的问题,但我从来没有为我的案例找到完整的解决方案,只有零碎的信息和许多不同的实现。 我在带有 nasm 的 Linux (Ubuntu 22.04) 上有这段代码,
为每个 int8_t 元素添加两个具有饱和度的向量(uint64_t 类型)
我最近遇到了一个给定的问题: 向量中有 8 个元素,每个元素都用 int8_t 表示。 在 x86_64 中实现一个算法,该算法将添加两个向量(uint64_t 类型)。 添加元素...
我需要在寄存器 rdx:rax 的 64 位处理器上用 rdi 中的 64 位除数除以一个无符号的 128 位数字。较低的位在 rax 中,较高的位在 rdx 中。 但是 DIV-Instruct...
我正在编写一个编译器,它为 Linux (x86-64) 发出了以下(英特尔语法)汇编代码: lea r13, _s1 mov qword ptr [rbp + -2*8], r13 mov r10, qword ptr [rbp + -2*8] lea r13, qword ptr ...
我在性能极其重要的闭源(二进制分布式)科学软件上工作。在许多情况下,启用 AVX 和类似的扩展会带来宝贵的性能优势......
这个问题与这个问题相关:How can I access arguments 7+ using inline assembly? 我知道自己访问指针是非标准的,可能不安全,而且不可移植......
使用 C 内在函数从一个 ZMM 寄存器中提取四个 XMM 寄存器,反之亦然
在 SSE 和 AVX512 寄存器之间移动数据有一个普遍的问题,但这个问题是关于 C 内在函数的。 有一个内在函数可以将两个 xmm 寄存器插入一个 ymm:__m256 _mm256_set_...
我想创建一个对其输入求和的可变函数。我已经设法编写了用于捕获参数 2-6 的内联汇编,但我正在努力从堆栈中检索其他参数...
如何在汇编语言中使用 long int 和 long int 数组
我写了一个程序,用一个 long int 和一个 int 数组进行除法和模运算。当我想写我的除法运算结果但我不能。我无法弄清楚问题所在,但我觉得...