优化后的memcpy@plt调用是否遵守指令集限制?-mno-avx编译时的疑问
关于GCC指令集选项对memcpy运行时选择的疑问
我在C++中编写了如下代码,该代码经汇编优化后会调用memcpy:
void do_something(big_struct& a, const big_struct& b) { a = b; }
对应的汇编代码为:
lea rdi,[rsi+0x4] mov edx,0x220 lea rsi,[rbx+0x18] call 7ead40 <memcpy@plt>
观察memcpy的实现可知,libstdc++提供了多个基于不同指令集限制的版本,具体实现会在运行时选择。
现疑问:若使用GCC编译并链接时指定指令集限制选项(如-mno-avx),即使运行该二进制文件的CPU支持AVX,所选的memcpy实现是否仍会遵守该编译决策?
内容的提问来源于stack exchange,提问作者Chuu
相关产品推荐
相关产品推荐

