@ Zero_extendqisi2'nin anlamı

Nov 18 2020

@ zero_extendqisi2Gcc montaj çıktısının gerçek anlamının ve kullanımının ne olduğunu merak ediyordum . Qisi'nin neyi temsil ettiğini veya bu çizgide herhangi bir şeyi bulamadım.

Bağlam için, satır ldrb r3, [fp, #-9] @ zero_extendqisi2ve bu, GCC ile derlenen bir Raspberry Pi Zero W üzerindeki ARM'dir. Örneğin, optimizasyon devre dışıyken, GCC9.2 ile herhangi bir seçenek olmadan unsigned chardönüşümlü bir yeniden yüklerken int.https://godbolt.org/z/7xnfqh. Godbolt'ta (4.5) en eskisine kadar eski GCC ve muhtemelen daha önce aynı yorumu yazdırın.

Yanıtlar

1 NateEldredge Nov 19 2020 at 14:22

This is an RTL dahil talimat adı, GCC iç yapıları manuel Standart Adları listesinden altında zero_extendmn2. Burada m,nolan makine modları qi ve sisırasıyla bir bayt ve 32 bitlik bir tam sayıdır. Bu, GCC'nin bir bayt alan (burada bellekten yüklenen) ve onu 32 bitlik bir tamsayıya (burada r3 yazmacında) sıfır genişleten bir talimat oluşturduğunun göstergesidir. ARM ldrbtalimatının yaptığı tam olarak budur .

2'nin ne anlama geldiğini bilmiyorum, ancak görünüşe göre GCC'nin adlandırma kuralının bir parçası.

Peter'ın da belirttiği gibi, GCC'nin meclise böyle bir yorumu olmadan dahil etmesi biraz tuhaf -fverbose-asm. Aslında yorum, makine açıklama dosyasındaki şablon dizesinin bir parçası olarak kodlanmıştır arm.md. Bazı GCC geliştiricilerinin eklediği ve sonra çıkarmayı unuttuğu bir hata ayıklama yardımı olabilirdi.

(Bunu ödeviniz için gönderirseniz, lütfen bu gönderiyi doğru şekilde alıntı yapın.)