С x86-64 регистры общего назначения являются 64-битными, а не 32-битными (и их 16, а не 8). (Вы также получаете 16 (128-битных) регистров SSE вместо обычных 8.) Поэтому приличный компилятор часто может генерировать более эффективный код (меньше разливов регистров) в коде x86-64 по сравнению с old skool 32-битный код.