如果我將 ac 檔案編譯成 ARM64 程式集,我會得到不同的指令(不僅是不同的語法和指令 - 例如.cfi_def_cfavs .cfi_def_cfa_offset),具體取決于我是在 linux 還是 mac 上編譯。如果ISA相同,為什么會這樣?我知道會有不同的目標二進制格式(ELF/Mach-O),但我期待相同的指令會被編譯成不同的物件。這是因為蘋果使用 apple clang 處理的事情可能與 aarch64 gcc 工具鏈的內部不同嗎?
有沒有辦法使用相同的指令強制執行?
輸入檔案(fib.c):
int fib(int n)
{
if (n <= 1)
return 1;
return fib(n - 1) fib(n - 2);
}
Mac(在帶有 的 mac mini 上編譯gcc -S fib.c -o fib.s):
.section __TEXT,__text,regular,pure_instructions
.build_version macos, 11, 0 sdk_version 12, 1
.globl _fib ; -- Begin function fib
.p2align 2
_fib: ; @fib
.cfi_startproc
;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490830.html
