You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(13) |
2
(1) |
3
|
4
|
|
5
|
6
|
7
(3) |
8
(1) |
9
|
10
(1) |
11
|
|
12
|
13
(2) |
14
|
15
|
16
|
17
(2) |
18
(3) |
|
19
(1) |
20
|
21
|
22
(2) |
23
(2) |
24
(8) |
25
|
|
26
(2) |
27
|
28
|
29
|
30
(16) |
|
|
|
From: Carl L. <ca...@so...> - 2021-09-13 16:40:28
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=093bef43d69236287ccc748591c9560a71181b0a commit 093bef43d69236287ccc748591c9560a71181b0a Author: Carl Love <ce...@us...> Date: Fri Sep 10 17:15:57 2021 -0500 Remove deprecated regression tests for mftgpr and mffgpr. The mftgpr and mffgpr instructions are deprecated. Added comments in VEX/priv/guest_ppc_toIR.c for the instructions stating the instructions are deprecated. Valgrind support can be removed if the opcodes get reused in the future. For now, leaving the functional support in Valgrind for the instructions. Removed the regression test power6_mf_gpr.c, expect files and vgtest file from none/tests/ppc64. Diff: --- VEX/priv/guest_ppc_toIR.c | 6 ++++ none/tests/ppc64/Makefile.am | 3 +- none/tests/ppc64/power6_mf_gpr.c | 47 ------------------------------- none/tests/ppc64/power6_mf_gpr.stderr.exp | 2 -- none/tests/ppc64/power6_mf_gpr.stdout.exp | 3 -- none/tests/ppc64/power6_mf_gpr.vgtest | 1 - 6 files changed, 7 insertions(+), 55 deletions(-) diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c index 57ac7bcf48..e30e431581 100644 --- a/VEX/priv/guest_ppc_toIR.c +++ b/VEX/priv/guest_ppc_toIR.c @@ -8401,6 +8401,9 @@ static Bool dis_int_logic ( UInt prefix, UInt theInstr ) break; case 0x2DF: { // mftgpr (move floating-point to general purpose register) + /* The mftgpr instruction was deprecated in Power 7, 2009 timeframe. + Leaving support in Valgrind for now (9/10/2021). Can remove the + mftgpr support in Valgrind if the opcode ever gets reused. */ IRTemp frB = newTemp(Ity_F64); DIP("mftgpr r%u,fr%u\n", rS_addr, rB_addr); @@ -8415,6 +8418,9 @@ static Bool dis_int_logic ( UInt prefix, UInt theInstr ) } case 0x25F: { // mffgpr (move floating-point from general purpose register) + /* The mffgpr instruction was deprecated in Power 7, 2009 timeframe. + Leaving support in Valgrind for now (9/10/2021). Can remove the + mftgpr support in Valgrind if the opcode ever gets reused. */ IRTemp frA = newTemp(Ity_F64); DIP("mffgpr fr%u,r%u\n", rS_addr, rB_addr); diff --git a/none/tests/ppc64/Makefile.am b/none/tests/ppc64/Makefile.am index df03dbec31..61b6ec9342 100644 --- a/none/tests/ppc64/Makefile.am +++ b/none/tests/ppc64/Makefile.am @@ -21,7 +21,6 @@ EXTRA_DIST = \ tw_td.stderr.exp tw_td.stdout.exp tw_td.vgtest \ opcodes.h \ power6_bcmp.stderr.exp power6_bcmp.stdout.exp power6_bcmp.vgtest \ - power6_mf_gpr.stderr.exp power6_mf_gpr.stdout.exp power6_mf_gpr.vgtest \ test_isa_2_06_part1.stderr.exp test_isa_2_06_part1.stdout.exp test_isa_2_06_part1.vgtest \ test_isa_2_06_part1.stdout.exp-LE \ test_isa_2_06_part2.stderr.exp test_isa_2_06_part2.stdout.exp test_isa_2_06_part2.vgtest \ @@ -75,7 +74,7 @@ check_PROGRAMS = \ test_isa_3_1_Misc test_isa_3_1_AT \ subnormal_test test_darn_inst test_copy_paste \ test_tm test_touch_tm data-cache-instructions \ - power6_mf_gpr std_reg_imm \ + std_reg_imm \ twi_tdi tw_td power6_bcmp scv_test # lmw, stmw, lswi, lswx, stswi, stswx compile (and run) only on big endian. diff --git a/none/tests/ppc64/power6_mf_gpr.c b/none/tests/ppc64/power6_mf_gpr.c deleted file mode 100644 index 6151a34784..0000000000 --- a/none/tests/ppc64/power6_mf_gpr.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (C) 2007 IBM - - Author: Pete Eberlein ebe...@us... - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see <http://www.gnu.org/licenses/>. - - The GNU General Public License is contained in the file COPYING. -*/ - -#include <stdio.h> -#include <string.h> - - - -int main(int argc, char *argv[]) -{ - - long i; - double f; - - i = 0; - f = 100.0; - - printf("%lx %f\n", i, f); - - asm("mftgpr %0, %1\n": "=r"(i):"f"(f)); - - f = 0.0; - printf("%lx %f\n", i, f); - - asm("mffgpr %0, %1\n": "=f"(f):"r"(i)); - - printf("%lx %f\n", i, f); - - return 0; -} diff --git a/none/tests/ppc64/power6_mf_gpr.stderr.exp b/none/tests/ppc64/power6_mf_gpr.stderr.exp deleted file mode 100644 index 139597f9cb..0000000000 --- a/none/tests/ppc64/power6_mf_gpr.stderr.exp +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/none/tests/ppc64/power6_mf_gpr.stdout.exp b/none/tests/ppc64/power6_mf_gpr.stdout.exp deleted file mode 100644 index 7bc827dd22..0000000000 --- a/none/tests/ppc64/power6_mf_gpr.stdout.exp +++ /dev/null @@ -1,3 +0,0 @@ -0 100.000000 -4059000000000000 0.000000 -4059000000000000 100.000000 diff --git a/none/tests/ppc64/power6_mf_gpr.vgtest b/none/tests/ppc64/power6_mf_gpr.vgtest deleted file mode 100644 index 5868fe66ee..0000000000 --- a/none/tests/ppc64/power6_mf_gpr.vgtest +++ /dev/null @@ -1 +0,0 @@ -prog: power6_mf_gpr |
|
From: Eli D. <el...@aa...> - 2021-09-13 15:42:02
|
Hello!
I have inherited a valgrind-based instrumentation tool, and I have
discovered a very strange error. I have an instrumentation function that
adds a call to a logging function. If said logging function contains an
if statement that evaluates to false, valgrind segfaults. If it contains
no if, or the if evaluates to true, the tool works fine. See this MVP:
static void BK_(log_call)(UInt dest) {
if (0x400000 < dest) {
VG_(printf)("Call of %u\n", dest);
}
}
static
IRSB* bk_instrument ( VgCallbackClosure* closure,
IRSB* bb,
const VexGuestLayout* layout,
const VexGuestExtents* vge,
const VexArchInfo* archinfo_host,
IRType gWordTy, IRType hWordTy )
{
IRSB *ibb = deepCopyIRSBExceptStmts(bb);
IRDirty *dirty = unsafeIRDirty_0_N(0, "log_call",
VG_(fnptr_to_fnentry)(&BK_(log_call)),
mkIRExprVec_1(IRConstExprArg(1000))
);
addStmtToIRSB(ibb, IRStmt_Dirty(dirty));
for (int i = 0; i < bb->stmts_used; i++) {
addStmtToIRSB(ibb, bb->stmts[i]);
}
VG_(printf)("\n\nOriginal BB: \n");
ppIRSB(bb);
VG_(printf)("New BB: \n");
ppIRSB(ibb);
VG_(printf)("------------------------------\n");
return ibb;
}
As-is, this will segfault. If I remove the `if (0x400000 < dest)`, swap
the sign of the if, or add another print statement above the if, it will
work as intended. This doesn't happen on all programs, and I'm running
this on mipsel, if that's relevant. I believe I have removed everything
else from the pass -- I'm pretty sure the error lies here, although I
have no idea how that could be the case
The exact segfault I get is
```
==8333==
==8333== Process terminating with default action of signal 11 (SIGSEGV)
==8333== Access not within mapped region at address 0x0
==8333== at 0x48ED8B0: ioctl (in /lib/libuClibc-0.9.33.2.so)
==8333== by 0x4913D0C: tcgetattr (in /lib/libuClibc-0.9.33.2.so)
==8333== If you believe this happened as a result of a stack
==8333== overflow in your program's main thread (unlikely but
==8333== possible), you can try to
increase the size of the
==8333== main thread stack using the --main-stacksize= flag.
==8333== The main thread stack size used in this run was 8388608.
==8333==
[ 97.868000] beck-mips32-lin/8333: potentially unexpected fatal signal 11.
[ 97.868000]
[ 97.868000] Cpu 0
[ 97.868000] $ 0 : 00000000 3000a400 00000000 0000000b
[ 97.868000] $ 4 : 0000208d 0000000b 00000000 00000000
[ 97.868000] $ 8 : 41d1a010 00000000 420b5ac0 420b9ad8
[ 97.868000] $12 : 420b9adc 00060528 0000006f fffffffe
[ 97.868000] $16 : 428b8e50 428b8eec 428b8edc 428b8e88
[ 97.868000] $20 : 582aeac0 58a8c03c 00000000 00000000
[ 97.868000] $24 : 00064541 58015080
[ 97.868000] $28 : 582b5880 428b8dd8 58bdc328 58015198
[ 97.868000] Hi : 00000000
[ 97.868000] Lo : 00000000
[ 97.868000] epc : 58015088 0x58015088
[ 97.868000] Not tainted
[ 97.872000] ra : 58015198 0x58015198
[ 97.872000] Status: 0000a413 USER EXL IE
[ 97.872000] Cause : 10800020
[ 97.872000] PrId : 00019300 (MIPS 24Kc)
```
and the basic block it's crashing on is
New BB:
IRSB {
t0:I32 t1:I32 t2:I32 t3:I32 t4:I64 t5:I32 t6:I32 t7:I32
t8:I32 t9:I32 t10:I32 t11:I32 t12:I32 t13:I32 t14:I32 t15:I32
t16:I32
DIRTY 1:I1 ::: log_call{0x58000208}(0x3E8:I32)
------ IMark(0x4000B4C, 4, 0) ------
t6 = GET:I32(132)
t7 = GET:I32(40)
t5 = Sub32(t6,t7)
PUT(40) = t5
PUT(136) = 0x4000B50:I32
------ IMark(0x4000B50, 4, 0) ------
t9 = GET:I32(120)
t8 = Add32(t9,0xFFFF801C:I32)
t10 = LDle:I32(t8)
------ IMark(0x4000B54, 4, 0) ------
t11 = Add32(t10,0x4B44:I32)
------ IMark(0x4000B58, 4, 0) ------
t13 = Add32(t11,t5)
PUT(108) = t13
------ IMark(0x4000B5C, 4, 0) ------
PUT(132) = 0x4000B64:I32
------ IMark(0x4000B60, 4, 0) ------
PUT(136) = t13; exit-Call
}
If anyone has any advice on what's wrong with this code or suggestions
on how to debug it further, it would be very much appreciated!
|