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

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Apr 17 16:43:28 2015
New Revision: 222186

URL: https://gcc.gnu.org/viewcvs?rev=222186&root=gcc&view=rev
Log:
    PR target/65689
    * genpreds.c (struct constraint_data): Add maybe_allows_reg and
    maybe_allows_mem bitfields.
    (maybe_allows_none_start, maybe_allows_none_end,
    maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
    maybe_allows_mem_end): New variables.
    (compute_maybe_allows): New function.
    (add_constraint): Use it to initialize maybe_allows_reg and
    maybe_allows_mem fields.
    (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
    is_address constraints such that those that allow neither mem nor
    reg come first, then those that only allow reg but not mem, then
    those that only allow mem but not reg, then the rest.
    (write_allows_reg_mem_function): New function.
    (write_tm_preds_h): Call it.
    * stmt.c (parse_output_constraint, parse_input_constraint): Use
    the generated insn_extra_constraint_allows_reg_mem function
    instead of always setting *allows_reg = true; *allows_mem = true;
    for unknown extra constraints.

    * gcc.target/aarch64/c-output-template-4.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/genpreds.c
    trunk/gcc/stmt.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to