On 11/11/22 12:43, Max Filippov wrote:
gcc/
PR target/107645
* config/m68k/predicates.md (symbolic_operand): Return false
when UNSPEC is under the CONST node.
Isn't the underlying object still symbolic though, thus returning false
seems wrong.
insn 342 341 343 35 (set (reg:SI 97)
(mem/u:SI (plus:SI (reg:SI 13 %a5)
(const:SI (unspec:SI [
(symbol_ref:SI
("__gcov_kvp_dynamic_pool_index") [flags 0x40] <var_decl 0x7f9e83fe7cf0
__gcov_kvp_dynamic_pool_index>)
(const_int 0 [0])
] 6))) [0 S4 A8]))
"gcc/libgcc/libgcov.h":472:44 55 {*movsi_m68k2}
(expr_list:REG_EQUAL (symbol_ref:SI
("__gcov_kvp_dynamic_pool_index") [flags 0x40] <var_decl 0x7f9e83fe7cf0
__gcov_kvp_dynamic_pool_index>)
(nil)))
ISTM that we'd need to strip the unspec and process its argument
instead. But maybe I'm missing something.
jeff