This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/78453] arm-none-linux-gnueabihf bootstrap failed with revision 242549


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

wilco at gcc dot gnu.org changed:

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

--- Comment #1 from wilco at gcc dot gnu.org ---
(In reply to amker from comment #0)
> Hi,
> After revision 242549, arm-linux-gnueabihf bootstrap failed with below
> message:
> 
> ../../gcc/gcc/edit-context.c: In member function 'void
> edit_context::print_diff(pretty_printer*, bool)':
> ../../gcc/gcc/edit-context.c:299:1: error: insn does not satisfy its
> constraints:
>  }
>  ^
> (insn 69 17 25 3 (set (mem/f/c:DI (plus:SI (reg/f:SI 13 sp)
>                 (const_int 8 [0x8])) [39 c.m_outer_cb+0 S8 A64])
>         (reg:DI 12 ip)) "../../gcc/gcc/typed-splay-tree.h":56 633
> {*movdi_vfp_cortexa8}


That's a latent bug - see https://patchwork.ozlabs.org/patch/220135/

"In ARM mode only, the pair of registers IP and SP is allowed as operands in
LDRD/STRD. To handle it, this patch defines a new constraint "q" to be
CORE_REGS in ARM mode and GENERAL_REGS (i.e., equivalent to "r") otherwise.
Note that in ARM mode "q" is not equivalent to "rk" because of the way
constraints are matched. The new constraint "q" is used in place of "r" for
DImode move between register and memory."


So "q" is needed for strd on ARM, and this is used by movdi_vfp but not by
movdi_vfp_cortexa8...

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]