https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61550
--- Comment #1 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- sh.c:prepare_move_operands has the code for TLS addresses which shouldn't be run when reload in progress in the first place. I'm testing the patch below. --- ORIG/trunk/gcc/config/sh/sh.c 2014-06-17 21:21:32.043445314 +0900 +++ trunk/gcc/config/sh/sh.c 2014-06-18 08:26:27.846157153 +0900 @@ -1758,7 +1758,8 @@ prepare_move_operands (rtx operands[], e else opc = NULL_RTX; - if ((tls_kind = tls_symbolic_operand (op1, Pmode)) != TLS_MODEL_NONE) + if (! reload_in_progress && ! reload_completed + && (tls_kind = tls_symbolic_operand (op1, Pmode)) != TLS_MODEL_NONE) { rtx tga_op1, tga_ret, tmp, tmp2;