summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-26 21:50:42 +0000
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-26 21:50:42 +0000
commit4c7e800416ea780ea1790a4ddb464b9d175cc49f (patch)
tree0131b4712e49dd9f854474dc19f32d431918593a
parent9676b2a6562f7bc089ae4f651ca8aa4d7dc6562d (diff)
downloadgcc-4c7e800416ea780ea1790a4ddb464b9d175cc49f.tar.gz
* config/ia64/ia64.c (ia64_expand_load_address): Ensure correct mode
for symbol address. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57554 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/ia64/ia64.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index be3908b7143..6e3b0cd68a7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-26 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_expand_load_address): Ensure correct mode
+ for symbol address.
+
2002-09-24 Eric Christopher <echristo@redhat.com>
* config/mips/elf.h: Add HANDLE_SYSV_PRAGMA.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index ad2d9b7645f..93b02dd68c1 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -1041,6 +1041,10 @@ ia64_expand_load_address (dest, src, scratch)
scratch = no_new_pseudos ? temp : gen_reg_rtx (DImode);
insn = emit_insn (gen_load_symptr (temp, src, scratch));
+#ifdef POINTERS_EXTEND_UNSIGNED
+ if (GET_MODE (temp) != GET_MODE (src))
+ src = convert_memory_address (GET_MODE (temp), src);
+#endif
REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, src, REG_NOTES (insn));
}