Arti @ zero_extendqisi2
Saya bertanya-tanya apa arti sebenarnya dari @ zero_extendqisi2output perakitan gcc dan juga penggunaannya. Saya tidak dapat menemukan apa kepanjangan dari qisi atau apa pun di sepanjang garis itu.
Untuk konteksnya, barisnya adalah ldrb r3, [fp, #-9] @ zero_extendqisi2dan ini ARM pada Raspberry Pi Zero W, yang dikompilasi dengan GCC. Misalnya, saat memuat ulang unsigned chardengan konversi ke int, dengan pengoptimalan dinonaktifkan, dengan GCC9.2 tanpa opsi.https://godbolt.org/z/7xnfqh. GCC lama hingga yang paling awal di Godbolt (4.5) dan mungkin sebelumnya mencetak komentar yang sama.
Jawaban
Ini adalah nama instruksi RTL , termasuk dalam daftar Nama Standar dari manual internal GCC di bawah zero_extendmn2. Berikut m,nadalah mode mesin qi dan si, yang masing-masing merupakan byte dan integer 32-bit. Jadi ini adalah indikasi GCC bahwa itu menghasilkan instruksi yang mengambil byte (di sini dimuat dari memori) dan zero-extends menjadi integer 32-bit (di sini di register r3). Itulah yang dilakukan oleh ldrbinstruksi ARM .
Saya tidak tahu untuk apa 2 itu, tetapi tampaknya itu bagian dari konvensi penamaan GCC.
Seperti yang ditunjukkan Peter, agak aneh bahwa GCC akan menyertakan komentar seperti itu di majelis tanpa -fverbose-asm. Memang, komentar dikodekan sebagai bagian dari string template di file deskripsi mesin arm.md,. Ini bisa menjadi bantuan debugging yang ditambahkan oleh beberapa pengembang GCC dan kemudian lupa untuk mengeluarkannya.
(Jika Anda mengirimkan ini untuk tugas Anda, harap kutip posting ini dengan benar.)