diff options
author | Alan Modra <amodra@gmail.com> | 2010-06-03 12:17:11 +0930 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2010-06-03 12:17:11 +0930 |
commit | d9d7a1bf892608e0f55e19ec0bd2818949ba831d (patch) | |
tree | b47138a4c8c7818b25b37c8b5565d612488b72e3 /gcc/config/rs6000/rs6000.md | |
parent | 514f01ad19d2c0864b761a1ee259dcc6eafdcdf4 (diff) | |
download | gcc-d9d7a1bf892608e0f55e19ec0bd2818949ba831d.zip gcc-d9d7a1bf892608e0f55e19ec0bd2818949ba831d.tar.gz gcc-d9d7a1bf892608e0f55e19ec0bd2818949ba831d.tar.bz2 |
re PR rtl-optimization/44169 (Wrong code while generating TLS offsets)
PR target/44169
* config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
rtx to gen_load_toc_v4_PIC_1b. Tidy.
(rs6000_emit_load_toc_table): Likewise.
From-SVN: r160206
Diffstat (limited to 'gcc/config/rs6000/rs6000.md')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 8f7093a..3106648 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -11459,10 +11459,12 @@ (define_insn "load_toc_v4_PIC_1b" [(set (reg:SI LR_REGNO) - (unspec:SI [(match_operand:SI 0 "immediate_operand" "s")] - UNSPEC_TOCPTR))] + (unspec:SI [(match_operand:SI 0 "immediate_operand" "s") + (label_ref (match_operand 1 "" ""))] + UNSPEC_TOCPTR)) + (match_dup 1)] "TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2" - "bcl 20,31,$+8\\n\\t.long %0-$" + "bcl 20,31,$+8\;.long %0-$" [(set_attr "type" "branch") (set_attr "length" "8")]) |