* config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
(prepare_move_operands): Handle TLS operands.
(tls_symbolic_operand): New.
(nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
(legitimize_pic_address): Do nothing for the TLS symbol.
(sh_encode_section_info): Handle TLS case.
(sh_strip_name_encoding): Drop TLS encoding.
* config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
* config/sh/sh.h (SH_TLS_ENCODING): Define.
(TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
(ASM_OUTPUT_LABELREF): Drop TLS encoding.
(OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
* config/sh/sh.md: Define TLS UNSPEC constants.
(type): Add tls_load.
("tls_global_dynamic", "tls_local_dynamic"): New insns.
("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
("tls_initial_exec"): New insn.
("sym2TPOFF", "symTPOFF2reg"): New expanders.
("load_gbr"): New insn.
* configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
* configure: Regenerate.
From-SVN: r63353
| Name |
Last commit
|
Last update |
|---|---|---|
| INSTALL | Loading commit data... | |
| boehm-gc | Loading commit data... | |
| config | Loading commit data... | |
| contrib | Loading commit data... | |
| fastjar | Loading commit data... | |
| gcc | Loading commit data... | |
| include | Loading commit data... | |
| libf2c | Loading commit data... | |
| libffi | Loading commit data... | |
| libiberty | Loading commit data... | |
| libjava | Loading commit data... | |
| libobjc | Loading commit data... | |
| libstdc++-v3 | Loading commit data... | |
| maintainer-scripts | Loading commit data... | |
| zlib | Loading commit data... | |
| .cvsignore | Loading commit data... | |
| COPYING | Loading commit data... | |
| COPYING.LIB | Loading commit data... | |
| ChangeLog | Loading commit data... | |
| MAINTAINERS | Loading commit data... | |
| Makefile.def | Loading commit data... | |
| Makefile.in | Loading commit data... | |
| Makefile.tpl | Loading commit data... | |
| README | Loading commit data... | |
| config-ml.in | Loading commit data... | |
| config.guess | Loading commit data... | |
| config.if | Loading commit data... | |
| config.sub | Loading commit data... | |
| configure | Loading commit data... | |
| configure.in | Loading commit data... | |
| install-sh | Loading commit data... | |
| libtool.m4 | Loading commit data... | |
| ltcf-c.sh | Loading commit data... | |
| ltcf-cxx.sh | Loading commit data... | |
| ltcf-gcj.sh | Loading commit data... | |
| ltconfig | Loading commit data... | |
| ltmain.sh | Loading commit data... | |
| missing | Loading commit data... | |
| mkdep | Loading commit data... | |
| mkinstalldirs | Loading commit data... | |
| move-if-change | Loading commit data... | |
| symlink-tree | Loading commit data... | |
| ylwrap | Loading commit data... |