Re: insn does not satisfy its constraints

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx> 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



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux