Coredump-X: movaps 可能会导致 段错误(SIGSEGV)

发布时间:2026/6/15 15:49:50

Coredump-X: movaps 可能会导致 段错误(SIGSEGV) 文章目录简介需要注意这种情况。gcc 代码片段GCC的选择movupsmovaps-mpreferred-stack-boundary=numintel 文档说明简介这个情况,还是第一次看到,gcc在做优化的时候,对于memset函数,可能使用sse相关的movups/movaps这种指令来提升性能,但是这两个指令的区别是movaps如果碰到非16字节对齐,可能导致coredump。需要注意这种情况。假设 xmm0 里存的是 128 位数据:movups %xmm0, (%rdi) # 非对齐存储,适用于任何地址movaps %xmm0, (%rdi) # 需要 %rdi 16 字节对齐,否则可能崩溃如果 (%rdi) 不是 16 字节对齐的地址,movaps 可能会导致 段错误(SIGSEGV)。而 movups 虽然可以执行,但可能会降低性能。gcc 代码片段case MODE_V16SF:if(misaligned_operand(operands[1]

相关新闻