[committed] Fix PA 32-bit cross build failure on 64-bit hosts

John David Anglin dave@hiauly1.hia.nrc.ca
Fri Nov 24 06:15:00 GMT 2006


The enclosed patch fixes a bootstrap failure on 64-bit hosts.  The
constant 0xe0400002 wasn't being split by emit_move_sequence because
it isn't a valid immediate operand on 64-bit hosts.

Tested on hppa-unknown-linux-gnu.  Committed to all active branches.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.

Index: config/pa/pa.c
===================================================================
--- config/pa/pa.c	(revision 119109)
+++ config/pa/pa.c	(working copy)
@@ -4338,8 +4338,10 @@
 		 GEN_INT (0x00011820), NE, NULL_RTX, SImode, 1);
   emit_jump_insn (gen_bne (label));
 
+  /* 0xe0400002 must be specified as -532676606 so that it won't be
+     rejected as an invalid immediate operand on 64-bit hosts.  */
   emit_cmp_insn (gen_rtx_MEM (SImode, plus_constant (ins, 12)),
-		 GEN_INT (0xe0400002), NE, NULL_RTX, SImode, 1);
+		 GEN_INT (-532676606), NE, NULL_RTX, SImode, 1);
 
   /* If there is no export stub then just use the value saved from
      the return pointer register.  */



More information about the Gcc-patches mailing list