On Mon, Dec 20, 2021 at 11:44:08AM -0800, H.J. Lu wrote:
> The problem is in
>
> (define_memory_constraint "TARGET_MEM_CONSTRAINT"
> "Matches any valid memory."
> (and (match_code "mem")
>(match_test "memory_address_addr_space_p (GET_MODE (op), XEXP (op, 0),
>
On Mon, Dec 20, 2021 at 6:53 AM Jakub Jelinek wrote:
>
> On Sun, Dec 19, 2021 at 12:06:30PM -0800, H.J. Lu via Gcc-patches wrote:
> > --- a/gcc/config/i386/predicates.md
> > +++ b/gcc/config/i386/predicates.md
> > @@ -1199,6 +1199,12 @@
> >(and (match_operand 0 "memory_operand")
> > (n
On Sun, Dec 19, 2021 at 12:06:30PM -0800, H.J. Lu via Gcc-patches wrote:
> --- a/gcc/config/i386/predicates.md
> +++ b/gcc/config/i386/predicates.md
> @@ -1199,6 +1199,12 @@
>(and (match_operand 0 "memory_operand")
> (not (match_test "x86_extended_reg_mentioned_p (op)"
>
> +;; Ret
On Sun, Dec 19, 2021 at 9:06 PM H.J. Lu wrote:
>
> x86_64_general_operand is different from general_operand for 64-bit
> target. To avoid LRA selecting a memory operand which doesn't satisfy
> x86_64_general_operand for 64-bit target:
>
> 1. Add a 'BM' constraint which is similar to the 'm' const