On Mon, Jul 08, 2019 at 07:18:00PM -0500, William Tambe wrote: > On Sun, Jul 7, 2019 at 12:45 PM Segher Boessenkool > <segher@xxxxxxxxxxxxxxxxxxx> wrote: > > Yup. And "A" is defined as being a mem, which makes no sense, and its > > comment says it is a "memory address". > > If not much effort, could you please provide the change I should make > to my define_contraint ? > > I tried the following two without success: > > (define_constraint "A" > "A memory address." > (ior (match_test "GET_CODE (XEXP (op, 0)) == SYMBOL_REF") > (match_test "GET_CODE (XEXP (op, 0)) == LABEL_REF") > (match_test "GET_CODE (XEXP (op, 0)) == CONST"))) Something like this. (define_constraint "A" "A memory address." (match_code "const,symbol_ref,label_ref")) Look at other ports? aarch64's "S" looks a lot like this, for example. Segher