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]
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2419983.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!