$OpenBSD: patch-gcc_emit-rtl_c,v 1.2 2002/09/14 10:14:51 espie Exp $
--- gcc/emit-rtl.c.orig	Mon Jul  1 23:50:14 2002
+++ gcc/emit-rtl.c	Thu Sep 12 14:50:59 2002
@@ -4817,6 +4817,7 @@ void
 init_emit ()
 {
   struct function *f = cfun;
+  int i;
 
   f->emit = (struct emit_status *) xmalloc (sizeof (struct emit_status));
   first_insn = NULL;
@@ -4846,8 +4847,13 @@ init_emit ()
   f->emit->regno_decl
     = (tree *) xcalloc (f->emit->regno_pointer_align_length, sizeof (tree));
 
+  /* Put copies of all the hard registers into regno_reg_rtx.  */
+  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+    regno_reg_rtx[i] = gen_raw_REG (reg_raw_mode[i], i);
+
   /* Put copies of all the virtual register rtx into regno_reg_rtx.  */
   init_virtual_regs (f->emit);
+
 
   /* Indicate that the virtual registers and stack locations are
      all pointers.  */
