insn does not satisfy its constraints
William Tambe
tambewilliam@gmail.com
Sun Mar 24 19:41:00 GMT 2019
Please disregard previous message, adjusting constraint to the
following fixed the issue:
(define_constraint "W"
"A register indirect memory operand."
(and (match_code "mem")
(match_test "REG_P (XEXP(op, 0))
&& REGNO_OK_FOR_BASE_P (REGNO (XEXP(op, 0)))")))
On Sun, Mar 24, 2019 at 8:41 AM William Tambe <tambewilliam@gmail.com> wrote:
>
> I have the following described in my machine description file:
>
> (define_constraint "W"
> "A register indirect memory operand."
> (and (match_code "mem")
> (match_test "REG_P (op)
> && REGNO_OK_FOR_BASE_P (REGNO (op))")))
>
> (define_insn "movsi"
> [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,W,r")
> (match_operand:SI 1 "general_operand" "O,r,i,r,W"))]
> ""
> "@
> li8 %0, 0
> cpy %0, %1
> li32 %0, %1
> st32 %1, %0
> ld32 %0, %1")
>
> Any idea what might be the cause of "movsi" failing constraints as shown below:
>
> conftest.c: In function 'main':
> conftest.c:16:1: error: insn does not satisfy its constraints:
> }
> ^
> (insn 17 4 3 2 (set (reg/f:SI 15 %15 [orig:25 .result_ptr ] [25])
> (mem/f/c:SI (reg/f:SI 17 %ap) [2 .result_ptr+0 S4 A32])) "conftest.c":12 19 {movsi}
> (nil))
> during RTL pass: postreload
> conftest.c:16:1: internal compiler error: in extract_constrain_insn, at recog.c:2205
> 0x4f7c4a _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
> ../../gcc-8.2.0/gcc/rtl-error.c:108
> 0x4f7c73 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
> ../../gcc-8.2.0/gcc/rtl-error.c:118
> 0x923997 extract_constrain_insn(rtx_insn*)
> ../../gcc-8.2.0/gcc/recog.c:2205
> 0x8f6851 reload_cse_simplify_operands
> ../../gcc-8.2.0/gcc/postreload.c:387
> 0x8f7ad1 reload_cse_simplify
> ../../gcc-8.2.0/gcc/postreload.c:179
> 0x8f7ad1 reload_cse_regs_1
> ../../gcc-8.2.0/gcc/postreload.c:218
> 0x8f944b reload_cse_regs
> ../../gcc-8.2.0/gcc/postreload.c:64
> 0x8f944b execute
> ../../gcc-8.2.0/gcc/postreload.c:2345
More information about the Gcc-help
mailing list