OSDN Git Service

* config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
[pf3gnuchains/gcc-fork.git] / gcc / config / rs6000 / linux-unwind.h
index b626251..18b0faa 100644 (file)
@@ -1,5 +1,5 @@
 /* DWARF2 EH unwinding support for PowerPC and PowerPC64 Linux.
-   Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
    these structs elsewhere;  Many fields are missing, particularly
    from the end of the structures.  */
 
+#define R_LR           65
+#define R_CR2          70
+#define R_VR0          77
+#define R_VRSAVE       109
+#define R_VSCR         110
+
 struct gcc_vregs
 {
   __attribute__ ((vector_size (16))) int vr[32];
@@ -243,11 +249,11 @@ ppc_fallback_frame_state (struct _Unwind_Context *context,
        fs->regs.reg[i].loc.offset = (long) &regs->gpr[i] - new_cfa;
       }
 
-  fs->regs.reg[CR2_REGNO].how = REG_SAVED_OFFSET;
-  fs->regs.reg[CR2_REGNO].loc.offset = (long) &regs->ccr - new_cfa;
+  fs->regs.reg[R_CR2].how = REG_SAVED_OFFSET;
+  fs->regs.reg[R_CR2].loc.offset = (long) &regs->ccr - new_cfa;
 
-  fs->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET;
-  fs->regs.reg[LINK_REGISTER_REGNUM].loc.offset = (long) &regs->link - new_cfa;
+  fs->regs.reg[R_LR].how = REG_SAVED_OFFSET;
+  fs->regs.reg[R_LR].loc.offset = (long) &regs->link - new_cfa;
 
   fs->regs.reg[ARG_POINTER_REGNUM].how = REG_SAVED_OFFSET;
   fs->regs.reg[ARG_POINTER_REGNUM].loc.offset = (long) &regs->nip - new_cfa;
@@ -288,17 +294,17 @@ ppc_fallback_frame_state (struct _Unwind_Context *context,
        {
          for (i = 0; i < 32; i++)
            {
-             fs->regs.reg[i + FIRST_ALTIVEC_REGNO].how = REG_SAVED_OFFSET;
-             fs->regs.reg[i + FIRST_ALTIVEC_REGNO].loc.offset
+             fs->regs.reg[i + R_VR0].how = REG_SAVED_OFFSET;
+             fs->regs.reg[i + R_VR0].loc.offset
                = (long) &vregs[i] - new_cfa;
            }
 
-         fs->regs.reg[VSCR_REGNO].how = REG_SAVED_OFFSET;
-         fs->regs.reg[VSCR_REGNO].loc.offset = (long) &vregs->vscr - new_cfa;
+         fs->regs.reg[R_VSCR].how = REG_SAVED_OFFSET;
+         fs->regs.reg[R_VSCR].loc.offset = (long) &vregs->vscr - new_cfa;
        }
 
-      fs->regs.reg[VRSAVE_REGNO].how = REG_SAVED_OFFSET;
-      fs->regs.reg[VRSAVE_REGNO].loc.offset = (long) &vregs->vsave - new_cfa;
+      fs->regs.reg[R_VRSAVE].how = REG_SAVED_OFFSET;
+      fs->regs.reg[R_VRSAVE].loc.offset = (long) &vregs->vsave - new_cfa;
     }
 
   /* If we have SPE register high-parts... we check at compile-time to
@@ -351,7 +357,7 @@ frob_update_context (struct _Unwind_Context *context, _Unwind_FrameState *fs ATT
         code that does the save/restore is generated by the linker, so
         we have no good way to determine at compile time what to do.  */
       unsigned int *insn
-       = (unsigned int *) _Unwind_GetGR (context, LINK_REGISTER_REGNUM);
+       = (unsigned int *) _Unwind_GetGR (context, R_LR);
       if (*insn == 0xE8410028)
        _Unwind_SetGRPtr (context, 2, context->cfa + 40);
     }