https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80540

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Well, register vars are not the main problem, the problem is using register
vars with registers that have special roles in the ISA (where some instructions
can only use those particular registers and nothing else).  %eax, %edx, %ecx,
%esp, %ebp, %xmm0, %esi, %edi, in 32-bit PIC code %ebx have such properties (of
course different instructions different regs).  For 32-bit code that is
obviously all the registers...  %esi/%edi for the string ops, we can avoid
those usually and open code, %xmm0 in some SSE/AVX insns, %ecx in shifts?,
%edx/%eax in some multiplications/divisions, extensions etc.

Reply via email to