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
(32) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
1
(1) |
|
2
(28) |
3
(21) |
4
(27) |
5
(22) |
6
(24) |
7
(25) |
8
(21) |
|
9
(18) |
10
(20) |
11
(10) |
12
(36) |
13
(18) |
14
(18) |
15
(29) |
|
16
(17) |
17
(7) |
18
(11) |
19
(17) |
20
(18) |
21
(12) |
22
(13) |
|
23
(9) |
24
(8) |
25
(7) |
26
(22) |
27
(18) |
28
(9) |
29
(15) |
|
30
(13) |
31
(7) |
|
|
|
|
|
|
From: Tom H. <th...@cy...> - 2005-10-02 22:58:01
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-10-02 03:05:06 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: <sv...@va...> - 2005-10-02 22:55:35
|
Author: njn Date: 2005-10-02 16:53:19 +0100 (Sun, 02 Oct 2005) New Revision: 208 Log: wibble wobble Modified: trunk/gallery/users.html trunk/info/about.html Modified: trunk/gallery/users.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/gallery/users.html 2005-09-30 15:19:10 UTC (rev 207) +++ trunk/gallery/users.html 2005-10-02 15:53:19 UTC (rev 208) @@ -159,7 +159,7 @@ <ul> =20 <li><a href=3D"http://marsrovers.jpl.nasa.gov/home/">NASA Mars=20 - Exploration Rover</a> Navigation and vision systems.</li> + Exploration Rover:</a> Navigation and vision systems.</li> =20 <li><a href=3D"http://atlas.web.cern.ch/Atlas/Welcome.html">Atlas</a>=20 and <a href=3D"http://cmsinfo.cern.ch/Welcome.html">CMS</a>=20 Modified: trunk/info/about.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/info/about.html 2005-09-30 15:19:10 UTC (rev 207) +++ trunk/info/about.html 2005-10-02 15:53:19 UTC (rev 208) @@ -61,7 +61,8 @@ of programmers across the world. We have received feedback from users in over 30 countries, including: Belgium, Czech Republic, Denmark, Finland, France, Germany, Greece, Hungary, Iceland, Italy, The -Netherlands, Norway, Poland, Portugal, Russia, Sweden, Switzerland, UK, +Netherlands, Norway, Poland, Portugal, Russia, Slovenia,=20 +Sweden, Switzerland, UK, Argentina, Brazil, Canada, USA, Australia, China, India, Japan, New Zeal= and, Singapore, South Africa and Israel.</li> =20 |
|
From: <sv...@va...> - 2005-10-02 22:53:48
|
Author: njn
Date: 2005-10-02 15:48:09 +0100 (Sun, 02 Oct 2005)
New Revision: 4843
Log:
Make the dispatch files platform-specific, not just arch-specific,
as requested by Greg Parker. (The ppc32/Darwin dispatch loop is
different to the ppc32/Linux one, for example.)
Added:
trunk/coregrind/m_dispatch/dispatch-amd64-linux.S
trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S
trunk/coregrind/m_dispatch/dispatch-x86-linux.S
Removed:
trunk/coregrind/m_dispatch/dispatch-amd64.S
trunk/coregrind/m_dispatch/dispatch-ppc32.S
trunk/coregrind/m_dispatch/dispatch-x86.S
Modified:
trunk/coregrind/Makefile.am
Modified: trunk/coregrind/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/Makefile.am 2005-10-02 13:10:41 UTC (rev 4842)
+++ trunk/coregrind/Makefile.am 2005-10-02 14:48:09 UTC (rev 4843)
@@ -18,7 +18,7 @@
=20
# Remember to include all the arch-specific files in the distribution.
EXTRA_DIST =3D \
- $(addsuffix .S,$(addprefix m_dispatch/dispatch-,$(VG_ARCH_ALL)))=
\
+ $(addsuffix .S,$(addprefix m_dispatch/dispatch-,$(VG_PLATFORM_AL=
L))) \
$(addsuffix .c,$(addprefix m_sigframe/sigframe-,$(VG_PLATFORM_AL=
L))) \
$(addsuffix .S,$(addprefix m_syswrap/syscall-,$(VG_PLATFORM_ALL)=
)) \
$(addsuffix .c,$(addprefix m_syswrap/syswrap-,$(VG_OS_ALL))) \
@@ -142,7 +142,7 @@
m_demangle/demangle.c \
m_demangle/dyn-string.c \
m_demangle/safe-ctype.c \
- m_dispatch/dispatch-@VG_ARCH@.S \
+ m_dispatch/dispatch-@VG_PLATFORM@.S \
m_replacemalloc/replacemalloc_core.c \
m_scheduler/scheduler.c \
m_scheduler/sema.c \
@@ -156,9 +156,9 @@
libreplacemalloc_toolpreload_a_SOURCES =3D m_replacemalloc/vg_replace_ma=
lloc.c
libreplacemalloc_toolpreload_a_CFLAGS =3D $(PIC_AM_CFLAGS)
=20
-m_dispatch/dispatch-@VG_ARCH@.S: libvex_guest_offsets.h
-m_syswrap/syscall-@VG_PLATFORM@.S: libvex_guest_offsets.h
-m_syswrap/syswrap-main.c: libvex_guest_offsets.h
+m_dispatch/dispatch-@VG_PLATFORM@.S: libvex_guest_offsets.h
+m_syswrap/syscall-@VG_PLATFORM@.S: libvex_guest_offsets.h
+m_syswrap/syswrap-main.c: libvex_guest_offsets.h
=20
libvex_guest_offsets.h:
$(MAKE) -C @VEX_DIR@ pub/libvex_guest_offsets.h
Copied: trunk/coregrind/m_dispatch/dispatch-amd64-linux.S (from rev 4842,=
trunk/coregrind/m_dispatch/dispatch-amd64.S)
Deleted: trunk/coregrind/m_dispatch/dispatch-amd64.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_dispatch/dispatch-amd64.S 2005-10-02 13:10:41 UTC (=
rev 4842)
+++ trunk/coregrind/m_dispatch/dispatch-amd64.S 2005-10-02 14:48:09 UTC (=
rev 4843)
@@ -1,217 +0,0 @@
-
-##--------------------------------------------------------------------##
-##--- The core dispatch loop, for jumping to a code address. ---##
-##--- dispatch-amd64.S ---##
-##--------------------------------------------------------------------##
-
-/*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
-
- Copyright (C) 2000-2005 Julian Seward=20
- js...@ac...
-
- 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, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-#include "pub_core_basics_asm.h"
-#include "pub_core_dispatch_asm.h"
-#include "pub_core_transtab_asm.h"
-#include "libvex_guest_offsets.h" /* for OFFSET_amd64_RIP */
-
-
-/*------------------------------------------------------------*/
-/*--- The dispatch loop. ---*/
-/*------------------------------------------------------------*/
-
-/* signature: UWord VG_(run_innerloop) ( void* guest_state ) */
-
-.globl VG_(run_innerloop)
-VG_(run_innerloop):
- /* %rdi holds guest_state */
-=09
- /* ----- entry point to VG_(run_innerloop) ----- */
- pushq %rbx
- pushq %rcx
- pushq %rdx
- pushq %rsi
- pushq %rbp
- pushq %r8
- pushq %r9
- pushq %r10
- pushq %r11
- pushq %r12
- pushq %r13
- pushq %r14
- pushq %r15
- pushq %rdi
-
- movq VG_(dispatch_ctr)@GOTPCREL(%rip), %rsi
- pushq (%rsi)
-
- /* 8(%rsp) holds cached copy of guest_state */
- /* 0(%rsp) holds cached copy of VG_(dispatch_ctr) */
-
- /* Set up the guest state pointer */
- movq %rdi, %rbp
-=09
- /* fetch %RIP into %rax */
- movq OFFSET_amd64_RIP(%rbp), %rax
-
- /* set host FPU control word to the default mode expected=20
- by VEX-generated code. See comments in libvex.h for
- more info. */
- finit
- pushq $0x027F
- fldcw (%rsp)
- addq $8, %rsp
-=09
- /* set host SSE control word to the default mode expected=20
- by VEX-generated code. */
- pushq $0x1F80
- ldmxcsr (%rsp)
- addq $8, %rsp
-
- /* set dir flag to known value */
- cld
-
- /* fall into main loop */
-
- /* Here, %rax is the only live (real) register. The entire
- simulated state is saved in the ThreadState. */
-
-dispatch_boring:
- /* save the jump address in the guest state */
- movq %rax, OFFSET_amd64_RIP(%rbp)
-
- /* Are we out of timeslice? If yes, defer to scheduler. */
- subl $1, 0(%rsp)
- jz counter_is_zero
-
- /* try a fast lookup in the translation cache */
- movq %rax, %rbx
- andq $VG_TT_FAST_MASK, %rbx
- movq VG_(tt_fast)@GOTPCREL(%rip), %rcx
- movq (%rcx,%rbx,8), %rcx
- cmpq %rax, (%rcx)
- jnz fast_lookup_failed
- /* increment bb profile counter */
- movq VG_(tt_fastN)@GOTPCREL(%rip), %rdx
- movq (%rdx,%rbx,8), %rdx
- incl (%rdx)
-
- /* Found a match. Call tce[1], which is 8 bytes along, since
- each tce element is a 64-bit int. */
- addq $8, %rcx
- call *%rcx
-
- /*=20
- %rax holds destination (original) address.
- %rbp indicates further details of the control transfer
- requested to the address in %rax.
-=09
- If rbp is unchanged (=3D=3D * 8(%rsp)), just jump next to %rax.
-
- Otherwise fall out, back to the scheduler, and let it
- figure out what to do next.
- */
-
- cmpq 8(%rsp), %rbp
- jz dispatch_boring
-
- jmp dispatch_exceptional
-
-
-
-/* All exits from the dispatcher go through here. %rax holds
- the return value.=20
-*/
-run_innerloop_exit:=20
- /* We're leaving. Check that nobody messed with
- %mxcsr or %fpucw. We can't mess with %rax here as it
- holds the tentative return value, but any other is OK. */
- pushq $0
- fstcw (%rsp)
- cmpl $0x027F, (%rsp)
- popq %r11 /* get rid of the word without trashing %eflags */
- jnz invariant_violation
- pushq $0
- stmxcsr (%rsp)
- andl $0xFFFFFFC0, (%rsp) /* mask out status flags */
- cmpl $0x1F80, (%rsp)
- popq %r11
- jnz invariant_violation
- /* otherwise we're OK */
- jmp run_innerloop_exit_REALLY
-
-invariant_violation:
- movq $VG_TRC_INVARIANT_FAILED, %rax
- jmp run_innerloop_exit_REALLY
-
-run_innerloop_exit_REALLY:
- movq VG_(dispatch_ctr)@GOTPCREL(%rip), %rsi
- popq (%rsi)
- popq %rdi
- popq %r15
- popq %r14
- popq %r13
- popq %r12
- popq %r11
- popq %r10
- popq %r9
- popq %r8
- popq %rbp
- popq %rsi
- popq %rdx
- popq %rcx
- popq %rbx
- ret=09
-
-=09
-=09
-/* Other ways of getting out of the inner loop. Placed out-of-line to
- make it look cleaner.=20
-*/
-dispatch_exceptional:
- /* this is jumped to only, not fallen-through from above */
-
- /* save %rax in %RIP and defer to sched */
- movq 8(%rsp), %rdi
- movq %rax, OFFSET_amd64_RIP(%rdi)
- movq %rbp, %rax
- jmp run_innerloop_exit
-
-fast_lookup_failed:
- /* %RIP is up to date here since dispatch_boring dominates */
- addl $1, 0(%rsp)
- movq $VG_TRC_INNER_FASTMISS, %rax
- jmp run_innerloop_exit
-
-counter_is_zero:
- /* %RIP is up to date here since dispatch_boring dominates */
- addl $1, 0(%rsp)
- movq $VG_TRC_INNER_COUNTERZERO, %rax
- jmp run_innerloop_exit
-
-
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
-##--------------------------------------------------------------------##
-##--- end ---##
-##--------------------------------------------------------------------##
Copied: trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S (from rev 4842,=
trunk/coregrind/m_dispatch/dispatch-ppc32.S)
Deleted: trunk/coregrind/m_dispatch/dispatch-ppc32.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_dispatch/dispatch-ppc32.S 2005-10-02 13:10:41 UTC (=
rev 4842)
+++ trunk/coregrind/m_dispatch/dispatch-ppc32.S 2005-10-02 14:48:09 UTC (=
rev 4843)
@@ -1,276 +0,0 @@
-
-##--------------------------------------------------------------------##
-##--- The core dispatch loop, for jumping to a code address. ---##
-##--- dispatch-ppc32.S ---##
-##--------------------------------------------------------------------##
-
-/*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
-
- Copyright (C) 2005 Cerion Armour-Brown <ce...@op...>
-
- 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, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-#include "pub_core_basics_asm.h"
-#include "pub_core_dispatch_asm.h"
-#include "pub_core_transtab_asm.h"
-#include "libvex_guest_offsets.h" /* for OFFSET_ppc32_CIA */
-
-
-/*------------------------------------------------------------*/
-/*--- The dispatch loop. ---*/
-/*------------------------------------------------------------*/
-
-/* signature: UWord VG_(run_innerloop) ( void* guest_state ) */
-
- .globl VG_(run_innerloop)
-VG_(run_innerloop):
- /* ----- entry point to VG_(run_innerloop) ----- */
-
- /* Save lr, sp */
- mflr 0
- stw 0,4(1)
-
- /* New stack frame: save callee-saved regs */
- stwu 1,-88(1)
- stw 31,84(1)
- stw 30,80(1)
- stw 29,76(1)
- stw 28,72(1)
- stw 27,68(1)
- stw 26,64(1)
- stw 25,60(1)
- stw 24,56(1)
- stw 23,52(1)
- stw 22,48(1)
- stw 21,44(1)
- stw 20,40(1)
- stw 19,36(1)
- stw 18,32(1)
- stw 17,28(1)
- stw 16,24(1)
- stw 15,20(1)
- stw 14,16(1)
-
- /* r3 holds guest_state */
- mr 31,3
- stw 3,12(1) /* spill orig guest_state ptr */
-
-// CAB TODO: Use a caller-saved reg for orig guest_state ptr
-// - rem to set non-allocateable in isel.c
-
- /* hold dispach_ctr in ctr reg */
- lis 17,VG_(dispatch_ctr)@ha
- lwz 17,VG_(dispatch_ctr)@l(17)
- mtctr 17
-
- /* fetch %CIA into r30 */
- lwz 30,OFFSET_ppc32_CIA(31)
-
- /* set host FPU control word to the default mode expected=20
- by VEX-generated code. See comments in libvex.h for
- more info. */
- fsub 3,3,3 /* generate zero */
- mtfsf 0xFF,3
-
- /* set host AltiVec control word to the default mode expected=20
- by VEX-generated code. */
- lis 3,VG_(have_altivec_ppc32)@ha
- lwz 3,VG_(have_altivec_ppc32)@l(3)
- cmplwi 3,0
- beq L1
- /* generate vector {0x0,0x0,0x0,0x00010000} */
- vspltisw 3,0x1 /* 4x 0x00000001 */
- vspltisw 4,0x0 /* generate zero */
- vsldoi 3,4,3,0x6 /* v3 =3D v3 >> 10 bytes */
- mtvscr 3
-L1:
- /* make a stack frame for the code we are calling */
- stwu 1,-16(1)
-
- /* fall into main loop */
-
-/* Live regs:
- r1 (=3Dsp)
- r30 (=3DCIA =3D jump address)
- r31 (=3Dguest_state)
- ctr (=3Ddispatch_ctr)
- Stack state:
- 28(r1) (=3Dorig guest_state)
-*/
-
-dispatch_boring:
- /* save the jump address in the guest state */
- stw 30,OFFSET_ppc32_CIA(31)
-
- /* Are we out of timeslice? If yes, defer to scheduler. */
- bdz counter_is_zero /* decrements ctr reg */
-
- /* try a fast lookup in the translation cache */
- rlwinm 4,30,2,VG_TT_FAST_MASK<<2 /* r4=3D((r30<<2) & (MASK<<2)=
) */
-// CAB: use a caller-saved reg for this ?
- addis 5,4,VG_(tt_fast)@ha
- lwz 5,VG_(tt_fast)@l(5)
- lwz 6,4(5) /* big-endian, so comparing 2nd 32bit word */
- cmpw 30,6
- bne fast_lookup_failed
-
- /* increment bb profile counter */
-// CAB: use a caller-saved reg for this ?
- addis 6,4,VG_(tt_fastN)@ha
- lwz 7,VG_(tt_fastN)@l(6)
- lwz 8,0(7)
- addi 8,8,1
- stw 8,0(7)
-
- /* Found a match. Call tce[1], which is 8 bytes along, since
- each tce element is a 64-bit int. */
- addi 8,5,8
- mtlr 8
-
- /* stop ctr being clobbered */
-// CAB: use a caller-saved reg for this ?
-// but then (bdz) =3D> (decr, cmp, bc)... still better than a stw?
- mfctr 9
- stw 9,24(1)
-
- blrl
-
-
- /* On return from guest code:
- r3 holds destination (original) address.
-
- r31 may be unchanged (guest_state), or may indicate further
- details of the control transfer requested to *r3.
-
- If r31 is unchanged (=3D=3D 28(r1)), just jump next to r3.
-
- Otherwise fall out, back to the scheduler, and let it
- figure out what to do next.
- */
-
- /* reinstate clobbered ctr */
- lwz 9,24(1)
- mtctr 9
-
- mr 30,3 /* put CIA (=3Dr3) in r30 */
- lwz 16,28(1) /* original guest_state ptr */
- cmpw 16,31
- beq dispatch_boring /* r31 unchanged... */
-
- mr 3,31 /* put return val (=3Dr31) in r3 */
- b dispatch_exceptional
-
-/* All exits from the dispatcher go through here.
- r3 holds the return value.=20
-*/
-run_innerloop_exit:=20
- /* We're leaving. Check that nobody messed with
- %mxcsr or %fpucw. We can't mess with %eax here as it
- holds the tentative return value, but any other is OK. */
-// CAB: TODO
-=09
-//.. pushl $0
-//.. fstcw (%esp)
-//.. cmpl $0x027F, (%esp)
-//.. popl %esi /* get rid of the word without trashing %eflags */
-//.. jnz invariant_violation
-
-//.. pushl $0
-//.. stmxcsr (%esp)
-//.. andl $0xFFFFFFC0, (%esp) /* mask out status flags */
-//.. cmpl $0x1F80, (%esp)
-//.. popl %esi
-//.. jnz invariant_violation
-=09
- /* otherwise we're OK */
- b run_innerloop_exit_REALLY
-
-
-invariant_violation:
- li 3,VG_TRC_INVARIANT_FAILED
- b run_innerloop_exit_REALLY
-
-run_innerloop_exit_REALLY:
- /* r3 holds VG_TRC_* value to return */
-
- addi 1,1,16
-
- mfctr 17
- lis 18,VG_(dispatch_ctr)@ha
- stw 17,VG_(dispatch_ctr)@l(18)
-
- lwz 14,16(1)
- lwz 15,20(1)
- lwz 16,24(1)
- lwz 17,28(1)
- lwz 18,32(1)
- lwz 19,36(1)
- lwz 20,40(1)
- lwz 21,44(1)
- lwz 22,48(1)
- lwz 23,52(1)
- lwz 24,56(1)
- lwz 25,60(1)
- lwz 26,64(1)
- lwz 27,68(1)
- lwz 28,72(1)
- lwz 29,76(1)
- lwz 30,80(1)
- lwz 31,84(1)
- lwz 0,92(1)
- mtlr 0
- addi 1,1,88
- blr
-
-
-/* Other ways of getting out of the inner loop. Placed out-of-line to
- make it look cleaner.=20
-*/
-dispatch_exceptional:
- /* this is jumped to only, not fallen-through from above */
- /* save r30 in %CIA and defer to sched */
- lwz 16,28(1)
- stw 30,OFFSET_ppc32_CIA(16)
- b run_innerloop_exit
-
-fast_lookup_failed:
- /* %CIA is up to date here since dispatch_boring dominates */
- mfctr 17
- addi 17,17,1
- mtctr 17
- li 3,VG_TRC_INNER_FASTMISS
- b run_innerloop_exit
- =20
-
-counter_is_zero:
- /* %CIA is up to date here since dispatch_boring dominates */
- mfctr 17
- addi 17,17,1
- mtctr 17
- li 3,VG_TRC_INNER_COUNTERZERO
- b run_innerloop_exit
-
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
-##--------------------------------------------------------------------##
-##--- end ---##
-##--------------------------------------------------------------------##
Copied: trunk/coregrind/m_dispatch/dispatch-x86-linux.S (from rev 4842, t=
runk/coregrind/m_dispatch/dispatch-x86.S)
Deleted: trunk/coregrind/m_dispatch/dispatch-x86.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_dispatch/dispatch-x86.S 2005-10-02 13:10:41 UTC (re=
v 4842)
+++ trunk/coregrind/m_dispatch/dispatch-x86.S 2005-10-02 14:48:09 UTC (re=
v 4843)
@@ -1,200 +0,0 @@
-
-##--------------------------------------------------------------------##
-##--- The core dispatch loop, for jumping to a code address. ---##
-##--- dispatch-x86.S ---##
-##--------------------------------------------------------------------##
-
-/*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
-
- Copyright (C) 2000-2005 Julian Seward=20
- js...@ac...
-
- 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, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
-
- The GNU General Public License is contained in the file COPYING.
-*/
-
-#include "pub_core_basics_asm.h"
-#include "pub_core_dispatch_asm.h"
-#include "pub_core_transtab_asm.h"
-#include "libvex_guest_offsets.h" /* for OFFSET_x86_EIP */
-
-
-/*------------------------------------------------------------*/
-/*--- The dispatch loop. ---*/
-/*------------------------------------------------------------*/
-
-/* signature: UWord VG_(run_innerloop) ( void* guest_state ) */
-
-.globl VG_(run_innerloop)
-VG_(run_innerloop):
- /* 4(%esp) holds guest_state */
-=09
- /* ----- entry point to VG_(run_innerloop) ----- */
- pushl %ebx
- pushl %ecx
- pushl %edx
- pushl %esi
- pushl %edi
- pushl %ebp
-=09
- /* 28(%esp) holds guest_state */
-
- /* Set up the guest state pointer */
- movl 28(%esp), %ebp
-=09
- /* fetch %EIP into %eax */
- movl OFFSET_x86_EIP(%ebp), %eax
-
- /* set host FPU control word to the default mode expected=20
- by VEX-generated code. See comments in libvex.h for
- more info. */
- finit
- pushl $0x027F
- fldcw (%esp)
- addl $4, %esp
-=09
- /* set host SSE control word to the default mode expected=20
- by VEX-generated code. */
- cmpl $0, VG_(have_mxcsr_x86)
- jz L1
- pushl $0x1F80
- ldmxcsr (%esp)
- addl $4, %esp
-L1:
- /* set dir flag to known value */
- cld
-=09
- /* fall into main loop */
-
- /* Here, %eax is the only live (real) register. The entire
- simulated state is saved in the ThreadState. */
-
-dispatch_boring:
- /* save the jump address in the guest state */
- movl %eax, OFFSET_x86_EIP(%ebp)
-
- /* Are we out of timeslice? If yes, defer to scheduler. */
- subl $1, VG_(dispatch_ctr)
- jz counter_is_zero
-
- /* try a fast lookup in the translation cache */
- movl %eax, %ebx
- andl $VG_TT_FAST_MASK, %ebx
- movl VG_(tt_fast)(,%ebx,4), %ecx
- cmpl %eax, (%ecx)
- jnz fast_lookup_failed
- /* increment bb profile counter */
- movl VG_(tt_fastN)(,%ebx,4), %edx
- incl (%edx)
-
- /* Found a match. Call tce[1], which is 8 bytes along, since
- each tce element is a 64-bit int. */
- addl $8, %ecx
- call *%ecx
-=09
- /*=20
- %eax holds destination (original) address.
- %ebp indicates further details of the control transfer
- requested to the address in %eax.
-=09
- If ebp is unchanged (=3D=3D * 28(%esp)), just jump next to %eax.
-
- Otherwise fall out, back to the scheduler, and let it
- figure out what to do next.
- */
-
- cmpl 28(%esp), %ebp
- jz dispatch_boring
-
- jmp dispatch_exceptional
-
-=09
-
-/* All exits from the dispatcher go through here. %eax holds
- the return value.=20
-*/
-run_innerloop_exit:=20
- /* We're leaving. Check that nobody messed with
- %mxcsr or %fpucw. We can't mess with %eax here as it
- holds the tentative return value, but any other is OK. */
-/* This fails for self-hosting, so skip in that case */
-#ifndef ENABLE_INNER
- pushl $0
- fstcw (%esp)
- cmpl $0x027F, (%esp)
- popl %esi /* get rid of the word without trashing %eflags */
- jnz invariant_violation
- cmpl $0, VG_(have_mxcsr_x86)
- jz L2
-#endif
- pushl $0
- stmxcsr (%esp)
- andl $0xFFFFFFC0, (%esp) /* mask out status flags */
- cmpl $0x1F80, (%esp)
- popl %esi
- jnz invariant_violation
-L2: /* otherwise we're OK */
- jmp run_innerloop_exit_REALLY
-
-invariant_violation:
- movl $VG_TRC_INVARIANT_FAILED, %eax
- jmp run_innerloop_exit_REALLY
-
-run_innerloop_exit_REALLY:
- popl %ebp
- popl %edi
- popl %esi
- popl %edx
- popl %ecx
- popl %ebx
- ret=09
-
-
-
-/* Other ways of getting out of the inner loop. Placed out-of-line to
- make it look cleaner.=20
-*/
-dispatch_exceptional:
- /* this is jumped to only, not fallen-through from above */
-
- /* save %eax in %EIP and defer to sched */
- movl 28(%esp), %edi
- movl %eax, OFFSET_x86_EIP(%edi)
- movl %ebp, %eax
- jmp run_innerloop_exit
-
-fast_lookup_failed:
- /* %EIP is up to date here since dispatch_boring dominates */
- addl $1, VG_(dispatch_ctr)
- movl $VG_TRC_INNER_FASTMISS, %eax
- jmp run_innerloop_exit
-
-counter_is_zero:
- /* %EIP is up to date here since dispatch_boring dominates */
- addl $1, VG_(dispatch_ctr)
- movl $VG_TRC_INNER_COUNTERZERO, %eax
- jmp run_innerloop_exit
-
-=09
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
-##--------------------------------------------------------------------##
-##--- end ---##
-##--------------------------------------------------------------------##
|
|
From: Tom H. <th...@cy...> - 2005-10-02 22:44:57
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-10-01 03:10:12 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-02 22:39:57
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-10-02 03:10:06 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-02 22:19:44
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-10-01 03:00:03 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 165 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/tls (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-02 21:48:55
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-10-02 03:10:06 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 187 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-02 21:33:29
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-10-01 03:05:12 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: Nicholas N. <nj...@cs...> - 2005-10-02 21:30:09
|
On Wed, 31 Aug 2005, Jeroen N. Witmond wrote: > Dinner brought inspiration, and I think you'll like the result (in the > attached tarball). I also added a comment to README.txt about the > possibility of specifying the desired output width on the command line. I've committed this to SVN, it will be in 3.1.0 when it comes out. Thanks again for this, it is much appreciated. No more double maintenance of FAQ.txt and FAQ.xml :) Nick |
|
From: Nicholas N. <nj...@cs...> - 2005-10-02 21:17:12
|
On Fri, 30 Sep 2005, Greg Parker wrote: >> I think OffT should stay as word-sized, since it's meant to be a drop-in >> replacement for off_t which is word-sized. We could introduce LOffT (in >> pub_core_basics.h) which would be 64 bits. > > Note that some 32-bit platforms like Darwin and maybe FreeBSD > use a 64-bit off_t. Huh, interesting. Well, we use vki_off_t in syscall wrappers, and that definition comes from the appropriate vki-*.h header. OffT is more for our internal use, so hopefully it won't be a problem. I like the idea of SizeT and OffT being the same size. Nick |
|
From: Doug R. <df...@nl...> - 2005-10-02 21:15:04
|
On Saturday 01 October 2005 02:09, Greg Parker wrote: > Nicholas Nethercote writes: > > On Fri, 30 Sep 2005, Tom Hughes wrote: > > > Absolutely, and that is the current situation, modulo changing > > > the type of the offset argument and the question of whether or > > > not we want to rely on mmap2. > > > > I think OffT should stay as word-sized, since it's meant to be a > > drop-in replacement for off_t which is word-sized. We could > > introduce LOffT (in pub_core_basics.h) which would be 64 bits. > > Note that some 32-bit platforms like Darwin and maybe FreeBSD > use a 64-bit off_t. All 4.4BSD derived systems (*BSD, Darwin) use 64-bit off_t on both 32-bit and 64-bit platforms. |
|
From: Tom H. <th...@cy...> - 2005-10-02 20:45:39
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-10-02 03:15:05 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 187 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 187 tests, 16 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/yield (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Oct 2 03:22:10 2005 --- new.short Sun Oct 2 03:28:22 2005 *************** *** 8,10 **** ! == 187 tests, 16 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 187 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) *************** *** 25,27 **** none/tests/x86/int (stderr) - none/tests/x86/yield (stdout) --- 25,26 ---- |
|
From: Tom H. <th...@cy...> - 2005-10-02 20:28:25
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-10-01 03:10:12 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 187 tests, 4 stderr failures, 1 stdout failure ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/yield (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 187 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Oct 1 03:19:15 2005 --- new.short Sat Oct 1 03:25:33 2005 *************** *** 8,10 **** ! == 187 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) --- 8,10 ---- ! == 187 tests, 4 stderr failures, 1 stdout failure ================= memcheck/tests/mempool (stderr) *************** *** 13,14 **** --- 13,15 ---- none/tests/x86/int (stderr) + none/tests/x86/yield (stdout) |
|
From: Josef W. <Jos...@gm...> - 2005-10-02 20:23:54
|
Hi, finally, I have a version which should work quite well with VG 3.0.x, both on x86 and AMD64. Please try it out from http://kcachegrind.sourceforge.net/callgrind-0.9.13-VG30-beta1.tar.gz I'm very interested in any feedback. Note that recently, I released a standalone KCachegrind bugfix version, which should compile fine on AMD64. Fixes: * Correct Ir counts (when cache simulation is switched off) and correct generation of jump arrow info. You can check this out with callgrind --dump-instr=yes --collect-jumps=yes <app> and look at KCachegrinds assembler annotation. E.g. "_dl_elf_hash" should look fine now (a BB of this function is an example of VEX generating a BB with 5 exits). * Correct handling of REP instructions (first in the history of Callgrind!). Example of REP on x86 (and probably on x86_64, too) can be found in memcpy. E.g. if cx=0 for a repz with memory access, the simulator will show Ir=1, but D=0. For this, I added a few more simulator calls (like 0I1Dr). * Better call graph generation with calls into the runtime linker, avoiding cycles (this previously went wrong on x86_64; the hack for x86 is removed). This works with special handling for "_dl_runtime_resolve": this function gets a flag "simulate a jump into another function via RET and CALL" (short: "pop-on-jump"). Checking for this function name does not work with newer glibc, as this function is not exported any more. When running callgrind/KCachegrind, and you do not see this function (but big cycles), look for the caller of "__libc_start_main". This should look like "0x0000000000ABCDEF". For further callgrind run, use "--pop-on-jump=0x0000000000ABCDEF" as further argument. Better would be to use GOT[1], as John Reiser pointed out, as this has to contain a pointer to runtime_resolve, according to the ABI. I will look into this before the release. Josef |
|
From: Tom H. <to...@co...> - 2005-10-02 19:14:22
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-10-02 03:30:05 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 188 tests, 9 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_creat (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 188 tests, 8 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Oct 2 03:35:21 2005 --- new.short Sun Oct 2 03:40:31 2005 *************** *** 8,10 **** ! == 188 tests, 8 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 188 tests, 9 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) *************** *** 16,17 **** --- 16,18 ---- none/tests/faultstatus (stderr) + none/tests/fdleak_creat (stderr) none/tests/x86/int (stderr) |
|
From: Julian S. <js...@ac...> - 2005-10-02 19:04:31
|
I've been looking a little at ML_(fd_allowed), in syswrap-generic.c.
This function decides which fds syscalls are allowed to create/use,
so that V's own fds don't get trashed.
This is a good thing; however I'm not sure I understand the logic.
- the first conditional reads
if ( (fd < 0 || fd >= VG_(fd_hard_limit) || fd == VG_(clo_log_fd))
&& VG_(showing_core_errors)() ) {
... stuff ...
return False;
}
which seems to imply that some part of the decision rests on
what VG_(showing_core_errors)() produces, iow on what sounds
like a setting in the error-displaying options. That seems a
little odd.
- what does the "Bool soft" parameter mean?
Can anyone clarify?
J
|
|
From: Tom H. <th...@cy...> - 2005-10-02 18:00:59
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-10-02 03:00:03 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 165 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) |
|
From: <sv...@va...> - 2005-10-02 17:50:35
|
Author: njn Date: 2005-10-02 18:50:31 +0100 (Sun, 02 Oct 2005) New Revision: 4846 Log: compile fix for an Ubuntu box I just tried Modified: trunk/coregrind/m_demangle/demangle.h Modified: trunk/coregrind/m_demangle/demangle.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/m_demangle/demangle.h 2005-10-02 17:33:07 UTC (rev 48= 45) +++ trunk/coregrind/m_demangle/demangle.h 2005-10-02 17:50:31 UTC (rev 48= 46) @@ -21,7 +21,7 @@ #ifndef DEMANGLE_H #define DEMANGLE_H =20 -#include <ansidecl.h> +#include "ansidecl.h" =20 #define current_demangling_style VG_(current_demangling_style) =20 |
|
From: <sv...@va...> - 2005-10-02 17:33:20
|
Author: sewardj
Date: 2005-10-02 18:33:07 +0100 (Sun, 02 Oct 2005)
New Revision: 4845
Log:
Unbreak compilation. Duh.
Modified:
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-10-02 17:01:41 U=
TC (rev 4844)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-10-02 17:33:07 U=
TC (rev 4845)
@@ -889,7 +889,7 @@
unsigned long, fd, unsigned long, offset);
=20
r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5,=20
- VKI_PAGE_SIZE * (Of64T)ARG6 );
+ VKI_PAGE_SIZE * (Off64T)ARG6 );
SET_STATUS_from_SysRes(r);
}
=20
|
|
From: <sv...@va...> - 2005-10-02 17:01:48
|
Author: sewardj
Date: 2005-10-02 18:01:41 +0100 (Sun, 02 Oct 2005)
New Revision: 4844
Log:
Plumb 64-bit file offsets throughout the address space manager.
Untested.
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr.c
trunk/coregrind/m_syswrap/priv_syswrap-generic.h
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
trunk/coregrind/pub_core_aspacemgr.h
trunk/include/pub_tool_basics.h
Modified: trunk/coregrind/m_aspacemgr/aspacemgr.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-10-02 14:48:09 UTC (rev =
4843)
+++ trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-10-02 17:01:41 UTC (rev =
4844)
@@ -225,9 +225,10 @@
// UNLESS YOU KNOW WHAT YOU ARE DOING.
=20
SysRes VG_(am_do_mmap_NO_NOTIFY)( Addr start, SizeT length, UInt prot,=20
- UInt flags, UInt fd, OffT offset)
+ UInt flags, UInt fd, Off64T offset)
{
SysRes res;
+ aspacem_assert(VG_IS_PAGE_ALIGNED(offset));
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
res =3D VG_(do_syscall6)(__NR_mmap2, (UWord)start, length,
prot, flags, fd, offset / VKI_PAGE_SIZE);
@@ -1785,7 +1786,7 @@
=20
Bool
VG_(am_notify_client_mmap)( Addr a, SizeT len, UInt prot, UInt flags,
- Int fd, SizeT offset )
+ Int fd, Off64T offset )
{
HChar buf[VKI_PATH_MAX];
UInt dev, ino;
@@ -1795,6 +1796,7 @@
aspacem_assert(len > 0);
aspacem_assert(VG_IS_PAGE_ALIGNED(a));
aspacem_assert(VG_IS_PAGE_ALIGNED(len));
+ aspacem_assert(VG_IS_PAGE_ALIGNED(offset));
=20
/* Discard is needed if any of the just-trashed range had T. */
needDiscard =3D any_Ts_in_range( a, len );
@@ -1921,7 +1923,7 @@
segment array accordingly. */
=20
SysRes VG_(am_mmap_file_fixed_client)
- ( Addr start, SizeT length, UInt prot, Int fd, SizeT offset )
+ ( Addr start, SizeT length, UInt prot, Int fd, Off64T offset )
{
SysRes sres;
NSegment seg;
@@ -1932,7 +1934,9 @@
HChar buf[VKI_PATH_MAX];
=20
/* Not allowable. */
- if (length =3D=3D 0 || !VG_IS_PAGE_ALIGNED(start))
+ if (length =3D=3D 0=20
+ || !VG_IS_PAGE_ALIGNED(start)
+ || !VG_IS_PAGE_ALIGNED(offset))
return VG_(mk_SysRes_Error)( VKI_EINVAL );
=20
/* Ask for an advisory. If it's negative, fail immediately. */
@@ -2172,7 +2176,7 @@
mapping in object files to read their debug info. */
=20
SysRes VG_(am_mmap_file_float_valgrind) ( SizeT length, UInt prot,=20
- Int fd, SizeT offset )
+ Int fd, Off64T offset )
{
SysRes sres;
NSegment seg;
@@ -2183,7 +2187,7 @@
HChar buf[VKI_PATH_MAX];
=20
/* Not allowable. */
- if (length =3D=3D 0)
+ if (length =3D=3D 0 || !VG_IS_PAGE_ALIGNED(offset))
return VG_(mk_SysRes_Error)( VKI_EINVAL );
=20
/* Ask for an advisory. If it's negative, fail immediately. */
@@ -2791,6 +2795,7 @@
=20
static Int readhex ( const Char* buf, UWord* val )
{
+ /* Read a word-sized hex number. */
Int n =3D 0;
*val =3D 0;
while (hexdigit(*buf) >=3D 0) {
@@ -2800,6 +2805,18 @@
return n;
}
=20
+static Int readhex64 ( const Char* buf, ULong* val )
+{
+ /* Read a potentially 64-bit hex number. */
+ Int n =3D 0;
+ *val =3D 0;
+ while (hexdigit(*buf) >=3D 0) {
+ *val =3D (*val << 4) + hexdigit(*buf);
+ n++; buf++;
+ }
+ return n;
+}
+
static Int readdec ( const Char* buf, UInt* val )
{
Int n =3D 0;
@@ -2877,7 +2894,8 @@
UChar* filename;
UChar rr, ww, xx, pp, ch, tmp;
UInt ino, prot;
- UWord foffset, maj, min;
+ UWord maj, min;
+ ULong foffset;
=20
read_procselfmaps_into_buf();
=20
@@ -2917,7 +2935,7 @@
j =3D readchar(&procmap_buf[i], &ch);
if (j =3D=3D 1 && ch =3D=3D ' ') i +=3D j; else goto syntaxerror;
=20
- j =3D readhex(&procmap_buf[i], &foffset);
+ j =3D readhex64(&procmap_buf[i], &foffset);
if (j > 0) i +=3D j; else goto syntaxerror;
=20
j =3D readchar(&procmap_buf[i], &ch);
Modified: trunk/coregrind/m_syswrap/priv_syswrap-generic.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-10-02 14:48:09 =
UTC (rev 4843)
+++ trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-10-02 17:01:41 =
UTC (rev 4844)
@@ -242,7 +242,7 @@
extern void ML_(generic_PRE_sys_shmctl) ( TId, UW, UW, UW );
extern void ML_(generic_POST_sys_shmctl) ( TId, UW, UW, UW, UW );
=20
-extern SysRes ML_(generic_PRE_sys_mmap) ( TId, UW, UW, UW, UW, U=
W, UW );
+extern SysRes ML_(generic_PRE_sys_mmap) ( TId, UW, UW, UW, UW, U=
W, Off64T );
=20
#undef TId
#undef UW
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-10-02 14:48:09 UTC (=
rev 4843)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-10-02 17:01:41 UTC (=
rev 4844)
@@ -143,7 +143,7 @@
*/
void=20
ML_(notify_aspacem_and_tool_of_mmap) ( Addr a, SizeT len, UInt prot,=20
- UInt flags, Int fd, ULong offset =
)
+ UInt flags, Int fd, Off64T offset=
)
{
Bool rr, ww, xx, d;
=20
@@ -1741,7 +1741,7 @@
SysRes
ML_(generic_PRE_sys_mmap) ( ThreadId tid,
UWord arg1, UWord arg2, UWord arg3,
- UWord arg4, UWord arg5, UWord arg6 )
+ UWord arg4, UWord arg5, Off64T arg6 )
{
Addr advised;
SysRes sres;
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-10-02 14:48:09 U=
TC (rev 4843)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-10-02 17:01:41 U=
TC (rev 4844)
@@ -869,7 +869,8 @@
unsigned long, prot, unsigned long, flags,
unsigned long, fd, unsigned long, offset);
=20
- r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, A=
RG6 );
+ r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5,=20
+ (Off64T)ARG6 );
SET_STATUS_from_SysRes(r);
}
=20
@@ -887,7 +888,8 @@
unsigned long, prot, unsigned long, flags,
unsigned long, fd, unsigned long, offset);
=20
- r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, A=
RG6 * VKI_PAGE_SIZE );
+ r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5,=20
+ VKI_PAGE_SIZE * (Of64T)ARG6 );
SET_STATUS_from_SysRes(r);
}
=20
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-10-02 14:48:09 UTC=
(rev 4843)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-10-02 17:01:41 UTC=
(rev 4844)
@@ -1483,7 +1483,7 @@
PRINT("old_mmap ( %p, %llu, %d, %d, %d, %d )",
a1, (ULong)a2, a3, a4, a5, a6 );
=20
- r =3D ML_(generic_PRE_sys_mmap)( tid, a1, a2, a3, a4, a5, a6 );
+ r =3D ML_(generic_PRE_sys_mmap)( tid, a1, a2, a3, a4, a5, (Off64T)a6 =
);
SET_STATUS_from_SysRes(r);
}
=20
@@ -1502,7 +1502,8 @@
unsigned long, prot, unsigned long, flags,
unsigned long, fd, unsigned long, offset);
=20
- r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, A=
RG6 * VKI_PAGE_SIZE );
+ r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5,=20
+ VKI_PAGE_SIZE * (Off64T)ARG6 );
SET_STATUS_from_SysRes(r);
}
=20
Modified: trunk/coregrind/pub_core_aspacemgr.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/pub_core_aspacemgr.h 2005-10-02 14:48:09 UTC (rev 484=
3)
+++ trunk/coregrind/pub_core_aspacemgr.h 2005-10-02 17:01:41 UTC (rev 484=
4)
@@ -153,7 +153,7 @@
True, the caller should immediately discard translations from the
specified address range. */
extern Bool VG_(am_notify_client_mmap)
- ( Addr a, SizeT len, UInt prot, UInt flags, Int fd, SizeT offset );
+ ( Addr a, SizeT len, UInt prot, UInt flags, Int fd, Off64T offset );
=20
/* Notifies aspacem that an mprotect was completed successfully. The
segment array is updated accordingly. Note, as with
@@ -181,7 +181,7 @@
USE IT UNLESS YOU UNDERSTAND the request-notify model used by
aspacem. In short, DO NOT USE THIS FUNCTION. */
extern SysRes VG_(am_do_mmap_NO_NOTIFY)
- ( Addr start, SizeT length, UInt prot, UInt flags, UInt fd, OffT offs=
et);
+ ( Addr start, SizeT length, UInt prot, UInt flags, UInt fd, Off64T of=
fset);
=20
=20
//--------------------------------------------------------------
@@ -195,7 +195,7 @@
/* Map a file at a fixed address for the client, and update the
segment array accordingly. */
extern SysRes VG_(am_mmap_file_fixed_client)
- ( Addr start, SizeT length, UInt prot, Int fd, SizeT offset );
+ ( Addr start, SizeT length, UInt prot, Int fd, Off64T offset );
=20
/* Map anonymously at a fixed address for the client, and update
the segment array accordingly. */
@@ -215,7 +215,7 @@
segment array accordingly. This is used by V for transiently
mapping in object files to read their debug info. */
extern SysRes VG_(am_mmap_file_float_valgrind)
- ( SizeT length, UInt prot, Int fd, SizeT offset );
+ ( SizeT length, UInt prot, Int fd, Off64T offset );
=20
/* Unmap the given address range and update the segment array
accordingly. This fails if the range isn't valid for the client.
Modified: trunk/include/pub_tool_basics.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/pub_tool_basics.h 2005-10-02 14:48:09 UTC (rev 4843)
+++ trunk/include/pub_tool_basics.h 2005-10-02 17:01:41 UTC (rev 4844)
@@ -81,6 +81,8 @@
=20
typedef Word OffT; // 32 64
=20
+typedef ULong Off64T; // 64 64
+
#if !defined(NULL)
# define NULL ((void*)0)
#endif
|
|
From: Greg P. <gp...@us...> - 2005-10-01 01:37:52
|
Nicholas Nethercote writes: > On Fri, 30 Sep 2005, Tom Hughes wrote: > > Absolutely, and that is the current situation, modulo changing the > > type of the offset argument and the question of whether or not we want > > to rely on mmap2. > > I think OffT should stay as word-sized, since it's meant to be a drop-in > replacement for off_t which is word-sized. We could introduce LOffT (in > pub_core_basics.h) which would be 64 bits. Note that some 32-bit platforms like Darwin and maybe FreeBSD use a 64-bit off_t. -- Greg Parker gp...@us... |