Nand2Mario projesi kapsamında geliştirilen 80386 uyumlu bir SystemVerilog çekirdeği, orijinal Intel mikro kodundan yararlanarak gerçek modda başarılı bir şekilde çalıştırılıyor. Bu süreçte, 386 mikro kodu ve silikonunun detayları inceleniyor ve bu bulgular bir dizi makalede belgeleniyor. Önceki yazılarda çarpma ve bölme gibi bit-bit işleyen algoritmalar ele alınırken, bu makale 386'nın tek döngüde çoklu bit kaydırma işlemlerini tamamlayan özel 'barrel shifter' donanımına odaklanıyor. İlginç olan, mikro kodun bu tek donanım parçasını tüm kaydırma ve döndürme varyantları için nasıl kullandığı ve karmaşık 'rotate-through-carry' talimatlarının nasıl ele alındığıdır.
386'daki barrel shifter, tam bir çapraz barın maliyetinden kaçınan hibrit, iki aşamalı bir tasarıma sahiptir. 64-bit giriş ve 32-bit çıkışa sahip bu yapı, bir 'kaba kaydırıcı' (coarse shifter) ve bir 'ince kaydırıcı' (fine shifter) içerir. Kaba kaydırıcı, girişi 0, 4, 8, ..., 28 bit (4'ün katları) kaydırırken, ince kaydırıcı kaba çıkışı 0, 1, 2 veya 3 bit kaydırır. Bu iki aşama birleşerek 0'dan 31'e kadar herhangi bir kaydırma miktarını tek bir döngüde destekler. 64-bit giriş genişliği, aynı donanımın kaydırmalar, döndürmeler ve çift hassasiyetli kaydırmalar için kullanılmasını sağlar; mikro kod, her işlem için iki 32-bit yarıyı farklı şekilde ayarlar. Tüm barrel shifter yaklaşık 2.000 transistör kullanır ki bu, tüm bir 6502 işlemcisinin transistör sayısının yarısı kadardır.
x86 'Grup 2' kaydırma ve döndürme talimatları, aynı opcode'u paylaşır ancak ModR/M baytının REG alanı aracılığıyla ROL, ROR, RCL, RCR, SHL, SHR veya SAR gibi farklı işlemleri seçer. Barrel shifter, SHIFT1 ve SHIFT2 mikro-işlemleri aracılığıyla kontrol edilir; SHIFT1 kaydırma sayısını mandallar ve yönü yapılandırırken, SHIFT2 işlemi gerçekleştirir. Bu tasarım, 386'nın karmaşık bit manipülasyonlarını yüksek verimlilikle gerçekleştirmesini sağlar ve modern işlemci mimarilerinde benzer prensiplerin temelini oluşturur.
Intel 80386 işlemcisinin mikro kodunun, tek bir donanım parçasını kullanarak farklı kaydırma ve döndürme işlemlerini nasıl verimli bir şekilde gerçekleştirdiğini ortaya koyuyor.