From: Carl Love Date: Mon, 25 Jan 2021 17:44:12 +0000 (-0600) Subject: PPC64: Add ACC register file registers to get_otrack_shadow_offset_wrkget_otrack_shad... X-Git-Tag: VALGRIND_3_17_0~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=953f54085dfb06e53b47d1d08e4014bac2202282;p=thirdparty%2Fvalgrind.git PPC64: Add ACC register file registers to get_otrack_shadow_offset_wrkget_otrack_shadow_offset_wrk() --- diff --git a/memcheck/mc_machine.c b/memcheck/mc_machine.c index 7a87143b53..a95bfd9959 100644 --- a/memcheck/mc_machine.c +++ b/memcheck/mc_machine.c @@ -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);