3173b9df77
When storing a TLS symbol to memory, always use an intermediate register to load it. Otherwise the compiler generates an instruction which couldn't be encoded and we see: ----------------------------->8--------------------------- In file included from gethstent_r.c:34: ../nss/getXXent_r.c: In function '__gethostent_r': ../nss/getXXent_r.c:168:1: error: unrecognizable insn: } ^ (insn 25 24 26 5 (set (mem:SI (plus:SI (reg/f:SI 149 virtual-outgoing-args) (const_int 16 [0x10])) [0 S4 A32]) (plus:SI (reg:SI 25 r25) (reg:SI 174))) "../nss/getXXent_r.c":160 -1 (nil)) during RTL pass: vregs ../nss/getXXent_r.c:168:1: internal compiler error: in extract_insn, at recog.c:2304 In file included from getnetent_r.c:34: ../nss/getXXent_r.c: In function '__getnetent_r': ../nss/getXXent_r.c:168:1: error: unrecognizable insn: } ^ (insn 25 24 26 5 (set (mem:SI (plus:SI (reg/f:SI 149 virtual-outgoing-args) (const_int 16 [0x10])) [0 S4 A32]) (plus:SI (reg:SI 25 r25) (reg:SI 174))) "../nss/getXXent_r.c":160 -1 (nil)) during RTL pass: vregs ../nss/getXXent_r.c:168:1: internal compiler error: in extract_insn, at recog.c:2304 ----------------------------->8--------------------------- Note that this patch is not yet submitted to the GCC's master and gcc-9-branch but will be submitted soon. That said with th bump of GCC for ARC this patch will no longer be needed. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Evgeniy Didin <didin@synopsys.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> |
||
---|---|---|
.. | ||
0001-ARC-PR89838.patch | ||
0002-ARC-Fix-emitting-TLS-symbols.patch | ||
0100-uclibc-conf.patch |