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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 54769
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54769&action=edit
gcc13-pr109276.patch

So, I wonder if for the local DImode temporaries we just couldn't ask for
32-bit alignment with -m32 -mpreferred-stack-alignment=2.
I went through all the assign_386_stack_local calls which do or can pass DImode
to it:
- 2 spots in sync.md, both for a MEM scratch which I don't see a reason why it 
  couldn't be just 32-bit aligned, they are during expansion, SLOT_TEMP
- the SLOT_FLOATxFDI_387 use in the splitter used in this PR, that one also
  looks ok to be 32-bit aligned, during splitting
- floatunssi<mode>2 also during expansion, SLOT_TEMP, this one I'm afraid
really
  wants the slot to be 64-bit aligned
- in ix86_expand_divmod_libfunc SLOT_TEMP, also during expansion, I think
  that one would be ok to use 32-bit aligned
- scalar_chain::make_vector_copies and scalar_chain::convert_reg, during STV,
  SLOT_STV_TEMP, I think these want 64-bit alignment

Reply via email to