This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Help with "unable to generate reloads for" atomic_exchangesi
- From: William Tambe <tambewilliam at gmail dot com>
- To: gcc-help <gcc-help at gcc dot gnu dot org>
- Date: Tue, 24 Sep 2019 04:31:49 -0500
- Subject: Help with "unable to generate reloads for" atomic_exchangesi
I have defined atomic_exchangesi as follow in the machine description:
(define_insn "atomic_exchangesi"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(match_operand:SI 1 "memory_operand" "+B,W"))
(set (match_dup 1)
(unspec:SI
[(match_operand:SI 2 "register_operand" "0,0")
(match_operand:SI 3 "const_int_operand")]
0))]
""
"@
...
...")
However GCC throw the following error for atomic_exchangesi:
Any idea what could be the cause of such an error ?
error: unable to generate reloads for:
902 | }
| ^
(insn 89 86 90 12 (parallel [
(set (reg:SI 4 %4 [orig:36 _30 ] [36])
(mem/v:SI (plus:SI (reg/f:SI 0 %sp)
(const_int 36 [0x24])) [-1 S4 A32]))
(set (mem/v:SI (plus:SI (reg/f:SI 0 %sp)
(const_int 36 [0x24])) [-1 S4 A32])
(unspec:SI [
(reg:SI 3 %3 [orig:34 _28 ] [34])
(const_int 32770 [0x8002])
] 0))
]) "/linux/include/asm-generic/atomic.h":118:1 35 {atomic_exchangesi}
(nil))
during RTL pass: reload