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

--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> ---
We go through:

      if (STACK_GROWS_DOWNWARD)
        /* ??? This seems wrong if STACK_PUSH_CODE == POST_DEC.  */
        dest_addr = gen_rtx_PLUS (Pmode, stack_pointer_rtx,
                                  gen_int_mode (-(HOST_WIDE_INT) rounded_size,
                                                Pmode));
      else
        /* ??? This seems wrong if STACK_PUSH_CODE == POST_INC.  */
        dest_addr = gen_rtx_PLUS (Pmode, stack_pointer_rtx,
                                  gen_int_mode (rounded_size, Pmode));

      dest_addr = gen_rtx_PRE_MODIFY (Pmode, stack_pointer_rtx, dest_addr);

Maybe we should use our own pushxf expander?

Reply via email to