]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Do not reuse Creg_IA_* for s390. Add dedicated entries Creg_S390_...
authorFlorian Krohm <florian@eich-krohm.de>
Fri, 20 Mar 2015 09:38:58 +0000 (09:38 +0000)
committerFlorian Krohm <florian@eich-krohm.de>
Fri, 20 Mar 2015 09:38:58 +0000 (09:38 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15025

coregrind/m_debuginfo/debuginfo.c
coregrind/m_debuginfo/priv_storage.h
coregrind/m_debuginfo/readdwarf.c
coregrind/m_debuginfo/storage.c

index 14d5e603a4086f505eb7345e7f6827f3e0a33d67..158daa7dc71509cd9e65caad7b4243dd65ca884a 100644 (file)
@@ -2475,10 +2475,10 @@ UWord evalCfiExpr ( const XArray* exprs, Int ix,
             case Creg_ARM_R12: return eec->uregs->r12;
             case Creg_ARM_R7:  return eec->uregs->r7;
 #           elif defined(VGA_s390x)
-            case Creg_IA_IP: return eec->uregs->ia;
-            case Creg_IA_SP: return eec->uregs->sp;
-            case Creg_IA_BP: return eec->uregs->fp;
-            case Creg_S390_R14: return eec->uregs->lr;
+            case Creg_S390_IA: return eec->uregs->ia;
+            case Creg_S390_SP: return eec->uregs->sp;
+            case Creg_S390_FP: return eec->uregs->fp;
+            case Creg_S390_LR: return eec->uregs->lr;
 #           elif defined(VGA_mips32) || defined(VGA_mips64)
             case Creg_IA_IP: return eec->uregs->pc;
             case Creg_IA_SP: return eec->uregs->sp;
index 0770e4fbecbe1685fb995d568c87b6c3aeba5458..e64401c67cfc5a5452f9cd48df1f132db224a875 100644 (file)
@@ -382,7 +382,10 @@ typedef
       Creg_ARM_R14,
       Creg_ARM_R7,
       Creg_ARM64_X30,
-      Creg_S390_R14,
+      Creg_S390_IA,
+      Creg_S390_SP,
+      Creg_S390_FP,
+      Creg_S390_LR,
       Creg_MIPS_RA
    }
    CfiReg;
index 9af571410d9f22af5f0b316a0a607ddc99576a6f..f0b7ede84164379dca003ce00fae59bc071a0b4c 100644 (file)
@@ -2325,7 +2325,7 @@ static Bool summarise_context(/*OUT*/Addr* base,
                                              sizeof(CfiExpr) );
       si_m->ra_how = CFIR_EXPR;
       si_m->ra_off = ML_(CfiExpr_CfiReg)( debuginfo->cfsi_exprs,
-                                          Creg_S390_R14);
+                                          Creg_S390_LR);
    }
 
    /* knock out some obviously stupid cases */
@@ -2467,11 +2467,11 @@ static Int copy_convert_CfiExpr_tree ( XArray*        dstxa,
            return ML_(CfiExpr_CfiReg)( dstxa, Creg_ARM_R15 ); /* correct? */
 #        elif defined(VGA_s390x)
          if (dwreg == SP_REG)
-            return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_SP );
+            return ML_(CfiExpr_CfiReg)( dstxa, Creg_S390_SP );
          if (dwreg == FP_REG)
-            return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_BP );
+            return ML_(CfiExpr_CfiReg)( dstxa, Creg_S390_FP );
          if (dwreg == srcuc->ra_reg)
-            return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_IP ); /* correct? */
+            return ML_(CfiExpr_CfiReg)( dstxa, Creg_S390_IA );
 #        elif defined(VGA_mips32) || defined(VGA_mips64)
          if (dwreg == SP_REG)
             return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_SP );
index 0482447c2ce5840330cf7c927bdafb14889cb3e6..663d5f72f97970e6ae95aef8d0668fd5c77ff1e6 100644 (file)
@@ -916,7 +916,10 @@ static void ppCfiReg ( CfiReg reg )
       case Creg_ARM_R7:    VG_(printf)("R7");  break;
       case Creg_ARM64_X30: VG_(printf)("X30"); break;
       case Creg_MIPS_RA:   VG_(printf)("RA"); break;
-      case Creg_S390_R14:  VG_(printf)("R14"); break;
+      case Creg_S390_IA:   VG_(printf)("IA"); break;
+      case Creg_S390_SP:   VG_(printf)("SP"); break;
+      case Creg_S390_FP:   VG_(printf)("FP"); break;
+      case Creg_S390_LR:   VG_(printf)("LR"); break;
       default: vg_assert(0);
    }
 }