]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
PPC64: Add ACC register file registers to get_otrack_shadow_offset_wrkget_otrack_shad...
authorCarl Love <cel@us.ibm.com>
Mon, 25 Jan 2021 17:44:12 +0000 (11:44 -0600)
committerCarl Love <cel@us.ibm.com>
Thu, 25 Feb 2021 17:14:39 +0000 (11:14 -0600)
memcheck/mc_machine.c

index 7a87143b5347928b32d6136d4255d60486657b02..a95bfd9959c460e07fa0ee626aefb5fb2d25fe8d 100644 (file)
@@ -330,6 +330,72 @@ static Int get_otrack_shadow_offset_wrk ( Int offset, Int szB )
    if (o >= GOF(VSR62) && o+sz <= GOF(VSR62)+SZB(VSR62)) return 0+ GOF(VSR62);
    if (o >= GOF(VSR63) && o+sz <= GOF(VSR63)+SZB(VSR63)) return 0+ GOF(VSR63);
 
+   /* ACC register file.  Each register is 128 bits. */
+   if (o >= GOF(ACC_0_r0) && o+sz <= GOF(ACC_0_r0)+SZB(ACC_0_r0))
+      return 0+ GOF(ACC_0_r0);
+   if (o >= GOF(ACC_0_r1) && o+sz <= GOF(ACC_0_r1)+SZB(ACC_0_r1))
+      return 0+ GOF(ACC_0_r1);
+   if (o >= GOF(ACC_0_r2) && o+sz <= GOF(ACC_0_r2)+SZB(ACC_0_r2))
+      return 0+ GOF(ACC_0_r2);
+   if (o >= GOF(ACC_0_r3) && o+sz <= GOF(ACC_0_r3)+SZB(ACC_0_r3))
+      return 0+ GOF(ACC_0_r3);
+   if (o >= GOF(ACC_1_r0) && o+sz <= GOF(ACC_1_r0)+SZB(ACC_1_r0))
+      return 0+ GOF(ACC_1_r0);
+   if (o >= GOF(ACC_1_r1) && o+sz <= GOF(ACC_1_r1)+SZB(ACC_1_r1))
+      return 0+ GOF(ACC_1_r1);
+   if (o >= GOF(ACC_1_r2) && o+sz <= GOF(ACC_1_r2)+SZB(ACC_1_r2))
+      return 0+ GOF(ACC_1_r2);
+   if (o >= GOF(ACC_1_r3) && o+sz <= GOF(ACC_1_r3)+SZB(ACC_1_r3))
+      return 0+ GOF(ACC_1_r3);
+   if (o >= GOF(ACC_2_r0) && o+sz <= GOF(ACC_2_r0)+SZB(ACC_2_r0))
+      return 0+ GOF(ACC_2_r0);
+   if (o >= GOF(ACC_2_r1) && o+sz <= GOF(ACC_2_r1)+SZB(ACC_2_r1))
+      return 0+ GOF(ACC_2_r1);
+   if (o >= GOF(ACC_2_r2) && o+sz <= GOF(ACC_2_r2)+SZB(ACC_2_r2))
+      return 0+ GOF(ACC_2_r2);
+   if (o >= GOF(ACC_2_r3) && o+sz <= GOF(ACC_2_r3)+SZB(ACC_2_r3))
+      return 0+ GOF(ACC_2_r3);
+   if (o >= GOF(ACC_3_r0) && o+sz <= GOF(ACC_3_r0)+SZB(ACC_3_r0))
+      return 0+ GOF(ACC_3_r0);
+   if (o >= GOF(ACC_3_r1) && o+sz <= GOF(ACC_3_r1)+SZB(ACC_3_r1))
+      return 0+ GOF(ACC_3_r1);
+   if (o >= GOF(ACC_3_r2) && o+sz <= GOF(ACC_3_r2)+SZB(ACC_3_r2))
+      return 0+ GOF(ACC_3_r2);
+   if (o >= GOF(ACC_3_r3) && o+sz <= GOF(ACC_3_r3)+SZB(ACC_3_r3))
+      return 0+ GOF(ACC_3_r3);
+   if (o >= GOF(ACC_4_r0) && o+sz <= GOF(ACC_4_r0)+SZB(ACC_4_r0))
+      return 0+ GOF(ACC_4_r0);
+   if (o >= GOF(ACC_4_r1) && o+sz <= GOF(ACC_4_r1)+SZB(ACC_4_r1))
+      return 0+ GOF(ACC_4_r1);
+   if (o >= GOF(ACC_4_r2) && o+sz <= GOF(ACC_4_r2)+SZB(ACC_4_r2))
+      return 0+ GOF(ACC_4_r2);
+   if (o >= GOF(ACC_4_r3) && o+sz <= GOF(ACC_4_r3)+SZB(ACC_4_r3))
+      return 0+ GOF(ACC_4_r3);
+   if (o >= GOF(ACC_5_r0) && o+sz <= GOF(ACC_5_r0)+SZB(ACC_5_r0))
+      return 0+ GOF(ACC_5_r0);
+   if (o >= GOF(ACC_5_r1) && o+sz <= GOF(ACC_5_r1)+SZB(ACC_5_r1))
+      return 0+ GOF(ACC_5_r1);
+   if (o >= GOF(ACC_5_r2) && o+sz <= GOF(ACC_5_r2)+SZB(ACC_5_r2))
+      return 0+ GOF(ACC_5_r2);
+   if (o >= GOF(ACC_5_r3) && o+sz <= GOF(ACC_5_r3)+SZB(ACC_5_r3))
+      return 0+ GOF(ACC_5_r3);
+   if (o >= GOF(ACC_6_r0) && o+sz <= GOF(ACC_6_r0)+SZB(ACC_6_r0))
+      return 0+ GOF(ACC_6_r0);
+   if (o >= GOF(ACC_6_r1) && o+sz <= GOF(ACC_6_r1)+SZB(ACC_6_r1))
+      return 0+ GOF(ACC_6_r1);
+   if (o >= GOF(ACC_6_r2) && o+sz <= GOF(ACC_6_r2)+SZB(ACC_6_r2))
+      return 0+ GOF(ACC_6_r2);
+   if (o >= GOF(ACC_6_r3) && o+sz <= GOF(ACC_6_r3)+SZB(ACC_6_r3))
+      return 0+ GOF(ACC_6_r3);
+   if (o >= GOF(ACC_7_r0) && o+sz <= GOF(ACC_7_r0)+SZB(ACC_7_r0))
+      return 0+ GOF(ACC_7_r0);
+   if (o >= GOF(ACC_7_r1) && o+sz <= GOF(ACC_7_r1)+SZB(ACC_7_r1))
+      return 0+ GOF(ACC_7_r1);
+   if (o >= GOF(ACC_7_r2) && o+sz <= GOF(ACC_7_r2)+SZB(ACC_7_r2))
+      return 0+ GOF(ACC_7_r2);
+   if (o >= GOF(ACC_7_r3) && o+sz <= GOF(ACC_7_r3)+SZB(ACC_7_r3))
+      return 0+ GOF(ACC_7_r3);
+
    VG_(printf)("MC_(get_otrack_shadow_offset)(ppc64)(off=%d,sz=%d)\n",
                offset,szB);
    tl_assert(0);
@@ -533,6 +599,8 @@ static Int get_otrack_shadow_offset_wrk ( Int offset, Int szB )
    if (o >= GOF(VSR62) && o+sz <= GOF(VSR62)+SZB(VSR62)) return 0+ GOF(VSR62);
    if (o >= GOF(VSR63) && o+sz <= GOF(VSR63)+SZB(VSR63)) return 0+ GOF(VSR63);
 
+   /* ACC registers are not supported on ppc32.  */
+
    VG_(printf)("MC_(get_otrack_shadow_offset)(ppc32)(off=%d,sz=%d)\n",
                offset,szB);
    tl_assert(0);