diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-08-02 09:45:16 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-08-02 03:45:16 -0600 |
commit | b3d9ecf00ba759dbef2321968d9d66aa7572fed0 (patch) | |
tree | aaeb714ac6a53e2e6422148358627f953bef00ba | |
parent | 62cce9f6271cfff04f716a856479b8e8cc768582 (diff) | |
download | gcc-b3d9ecf00ba759dbef2321968d9d66aa7572fed0.zip gcc-b3d9ecf00ba759dbef2321968d9d66aa7572fed0.tar.gz gcc-b3d9ecf00ba759dbef2321968d9d66aa7572fed0.tar.bz2 |
pa.c (legitimize_pic_address): Clarify comments.
* pa.c (legitimize_pic_address): Clarify comments. Do not call the
pic_load_label generator directly.
* pa.md (pic_load_label): Clarify comments. Remove modes on operands.
No longer a named pattern.
From-SVN: r28401
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 11 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 8 |
3 files changed, 21 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8aa90b..e213373 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (legitimize_pic_address): Clarify comments. Do not call the + pic_load_label generator directly. + * pa.md (pic_load_label): Clarify comments. Remove modes on operands. + No longer a named pattern. + Mon Aug 2 09:38:10 1999 Nick Clifton <nickc@cygnus.com> * explow.c (force_reg): Call force_operand if X does not diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 209976d..f5873f7 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -628,7 +628,16 @@ legitimize_pic_address (orig, mode, reg) /* Labels need special handling. */ if (pic_label_operand (orig)) { - emit_insn (gen_pic_load_label (reg, orig)); + /* We do not want to go through the movXX expanders here since that + would create recursion. + + Nor do we really want to call a generator for a named pattern + since that requires multiple patterns if we want to support + multiple word sizes. + + So instead we just emit the raw set, which avoids the movXX + expanders completely. */ + emit_insn (gen_rtx_SET (VOIDmode, reg, orig)); current_function_uses_pic_offset_table = 1; return reg; } diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index e667d3c..c78692d 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -1568,12 +1568,12 @@ [(set_attr "type" "store") (set_attr "length" "4")]) -;; For pic +;; For loading the address of a label while generating PIC code. ;; Note since this pattern can be created at reload time (via movsi), all ;; the same rules for movsi apply here. (no new pseudos, no temporaries). -(define_insn "pic_load_label" - [(set (match_operand:SI 0 "register_operand" "=a") - (match_operand:SI 1 "pic_label_operand" ""))] +(define_insn "" + [(set (match_operand 0 "register_operand" "=a") + (match_operand 1 "pic_label_operand" ""))] "" "* { |