gpt4 book ai didi

c++ - 为什么 gcc 和 icc 为 C++ 函数生成具有相同标签名称的 asm?

转载 作者:行者123 更新时间:2023-11-30 02:47:41 25 4
gpt4 key购买 nike

我用 gcc 和 icc 编译了一个简单的 C++ 函数。

void modify_array(int* arr, int size) {
for (int i=0; i<size; i++) {
arr[i] += 1;
}
}

我很惊讶地看到 gcc 和 icc 生成具有相同标签名称的程序集。

    .globl __Z12modify_arrayPii
Z12modify_arrayPii:
...

为什么它们是一致的?这些标签名称背后的含义是什么?

最佳答案

Intel state他们正在努力使 ABI 与 GCC 与 ICC 的 Linux 版本兼容。而 GCC maintainers state他们正在努力通过遵循行业 C++ ABI 标准来提供稳定的 ABI。这有助于保持稳定的环境,这有助于英特尔相当成功的努力。

因此,它们使用相同的名称重组作为提供相同 ABI 的一部分当然不是巧合,而是设计使然。

关于c++ - 为什么 gcc 和 icc 为 C++ 函数生成具有相同标签名称的 asm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22574081/

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