------- Comment #8 from mkuvyrkov at gcc dot gnu dot org 2010-04-22 07:09 ------- Subject: Re: [4.5/4.6 regression] ICE in reload_cse_simplify_operands
On 4/22/10 3:40 AM, schwab at linux-m68k dot org wrote: > ------- Comment #7 from schwab at linux-m68k dot org 2010-04-21 23:40 ------- > I think 'T' should accept tls references like 's' does. Do you mean the following? == (define_constraint "T" "Used for operands that satisfy 's' when -mpcrel is not in effect." (and (match_code "symbol_ref,label_ref,const") (match_test "!flag_pic || m68k_tls_reference_p (op, true)"))) == Yes, that should fix this particular problem, but one could equally successfully argue that "T" then should then accept usual PIC GOT references too. I just do not understand the background behind "T" constraint. Sigh. Maybe, it was introduced as an optimization to stop GCC from putting addresses (symbol_refs, etc) into data registers and then reloading them into address registers. Most probably, current GCC register allocator will do a just that without this kind of manual tweaking on the backend side. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43804