aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-08-02 09:45:16 +0000
committerJeff Law <law@gcc.gnu.org>1999-08-02 03:45:16 -0600
commitb3d9ecf00ba759dbef2321968d9d66aa7572fed0 (patch)
treeaaeb714ac6a53e2e6422148358627f953bef00ba
parent62cce9f6271cfff04f716a856479b8e8cc768582 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/config/pa/pa.c11
-rw-r--r--gcc/config/pa/pa.md8
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" ""))]
""
"*
{