1
Mengapa kompiler bersikeras menggunakan register yang diselamatkan oleh callee di sini?
Pertimbangkan kode C ini: void foo(void); long bar(long x) { foo(); return x; } Ketika saya mengompilasinya di GCC 9.3 dengan salah satu -O3atau -Os, saya mendapatkan ini: bar: push r12 mov r12, rdi call foo mov rax, r12 pop r12 ret Output dari dentang identik kecuali untuk memilih rbxbukan …