]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
23 years agoAhem, reverse comparison so that normal stack traces have more than one entry
Nicholas Nethercote [Wed, 2 Oct 2002 07:56:02 +0000 (07:56 +0000)] 
Ahem, reverse comparison so that normal stack traces have more than one entry
and 75% of regression tests don't fail.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1158

23 years agoImprove stack-switch-handling logic following discussion with John Regehr.
Julian Seward [Wed, 2 Oct 2002 01:38:40 +0000 (01:38 +0000)] 
Improve stack-switch-handling logic following discussion with John Regehr.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1157

23 years agoUpdate and add .cvsignore files.
Nicholas Nethercote [Tue, 1 Oct 2002 11:50:39 +0000 (11:50 +0000)] 
Update and add .cvsignore files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1156

23 years agoMoved `resolv' into the test-suite-proper.
Nicholas Nethercote [Tue, 1 Oct 2002 11:45:34 +0000 (11:45 +0000)] 
Moved `resolv' into the test-suite-proper.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1155

23 years agoVG_(handle_esp_assignment): reinstate kludge for detecting and
Julian Seward [Tue, 1 Oct 2002 09:09:23 +0000 (09:09 +0000)] 
VG_(handle_esp_assignment): reinstate kludge for detecting and
handling user-space stack switching.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1154

23 years agoIf the stack is ridiculously big, don't poke around ... but don't bomb
Julian Seward [Tue, 1 Oct 2002 09:02:47 +0000 (09:02 +0000)] 
If the stack is ridiculously big, don't poke around ... but don't bomb
out either.  Needed to make John Regehr's user-space threads package
work.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1153

23 years agoaddStr: don't segfault if si->strtab == NULL.
Julian Seward [Tue, 1 Oct 2002 08:59:36 +0000 (08:59 +0000)] 
addStr: don't segfault if si->strtab == NULL.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1152

23 years agoThis glibc (2.2.90 ?) seems to need another thread-specific key.
Julian Seward [Tue, 1 Oct 2002 02:09:39 +0000 (02:09 +0000)] 
This glibc (2.2.90 ?) seems to need another thread-specific key.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1151

23 years agoNamespace police.
Julian Seward [Tue, 1 Oct 2002 00:50:47 +0000 (00:50 +0000)] 
Namespace police.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1150

23 years agoPlacate gcc-3.2, which rather alarmingly complains that ...
Julian Seward [Tue, 1 Oct 2002 00:25:04 +0000 (00:25 +0000)] 
Placate gcc-3.2, which rather alarmingly complains that ...

vg_libpthread.c:1550: warning: weak declaration of `write' after
   first use results in unspecified behavior

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1149

23 years agoFix build problems on SuSE 8.1 -- -I.. not included in compile cmds
Julian Seward [Tue, 1 Oct 2002 00:18:22 +0000 (00:18 +0000)] 
Fix build problems on SuSE 8.1 -- -I.. not included in compile cmds
for .S files.  Possibly due to the presence of the following on this dist:

  autoconf (GNU Autoconf) 2.53
  automake (GNU automake) 1.6.3

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1148

23 years agoRemove comment that nobody can make sense of.
Julian Seward [Mon, 30 Sep 2002 23:22:54 +0000 (23:22 +0000)] 
Remove comment that nobody can make sense of.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1147

23 years agoGive weak global binding for fns which are to be superposed.
Julian Seward [Mon, 30 Sep 2002 23:17:49 +0000 (23:17 +0000)] 
Give weak global binding for fns which are to be superposed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1146

23 years agoRename VG_(kill) and VG_(sigpending) to VG_(kkill) and VG_(ksigpending)
Julian Seward [Mon, 30 Sep 2002 23:12:33 +0000 (23:12 +0000)] 
Rename VG_(kill) and VG_(sigpending)  to  VG_(kkill) and VG_(ksigpending)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1145

23 years agoAdd big comment explaining how the LDT simulation works.
Julian Seward [Mon, 30 Sep 2002 22:56:26 +0000 (22:56 +0000)] 
Add big comment explaining how the LDT simulation works.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1144

23 years agolayout wibble
Julian Seward [Mon, 30 Sep 2002 22:56:03 +0000 (22:56 +0000)] 
layout wibble

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1143

23 years agoClean up messages a bit.
Julian Seward [Mon, 30 Sep 2002 22:06:28 +0000 (22:06 +0000)] 
Clean up messages a bit.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1142

23 years agoTeach memcheck about instrumenting {GET,PUT,USE}SEG.
Julian Seward [Mon, 30 Sep 2002 21:52:50 +0000 (21:52 +0000)] 
Teach memcheck about instrumenting {GET,PUT,USE}SEG.

Also implement MOV Sw,Ew.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1141

23 years agowibble
Nicholas Nethercote [Mon, 30 Sep 2002 13:18:41 +0000 (13:18 +0000)] 
wibble

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1140

23 years agoSecond half of the LDT support. It basically works now.
Julian Seward [Mon, 30 Sep 2002 12:33:11 +0000 (12:33 +0000)] 
Second half of the LDT support.  It basically works now.

- New core uinstrs, GETSEG, PUTSEG (save and restore segment regs)

- New core uinstr USESEG, which takes a segment selector and a
  virtual address, and returns a linear address -- and also does
  a limit check.  This calls through to VG_(use_ldt) in vg_ldt.c.

- Insn parser (disAMode) made aware of segment override prefixes

- Obvious fixes to insn emitter and translators

None of the skins understand these new uinstrs, so only --skin=none
works with them at the mo.  This and some other rough edges still
need to be fixed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1139

23 years agoAdded profiling events for core/skin cheap/expensive sanity checks.
Nicholas Nethercote [Mon, 30 Sep 2002 11:24:00 +0000 (11:24 +0000)] 
Added profiling events for core/skin cheap/expensive sanity checks.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1138

23 years agoMakefile.am wibbles:
Nicholas Nethercote [Mon, 30 Sep 2002 10:48:07 +0000 (10:48 +0000)] 
Makefile.am wibbles:

  - added some missing SUBDIRS variables
  - removed unnecessary coregrind/demangle/ from some INCLUDES lists

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1137

23 years agoMade some debugging printf's only take place at verbosity > 1, because the
Nicholas Nethercote [Mon, 30 Sep 2002 10:47:35 +0000 (10:47 +0000)] 
Made some debugging printf's only take place at verbosity > 1, because the
output was causing some regression tests to fail.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1136

23 years agoConverted all functions visible from vg_skin.h with names in CamelCaps to
Nicholas Nethercote [Mon, 30 Sep 2002 10:23:54 +0000 (10:23 +0000)] 
Converted all functions visible from vg_skin.h with names in CamelCaps to
use_under_scores instead, to be consistent.

Also added some missing 'extern's on function declarations in vg_skin.h.

Also added a quick note in vg_regtest.in on the simplest way to run regression
tests.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1135

23 years agoGet rid of nvidia_moan(); soon we might not have anything to moan about.
Julian Seward [Mon, 30 Sep 2002 00:57:24 +0000 (00:57 +0000)] 
Get rid of nvidia_moan(); soon we might not have anything to moan about.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1134

23 years agoFirst half of the long-overdue support for segment override prefixes,
Julian Seward [Mon, 30 Sep 2002 00:53:10 +0000 (00:53 +0000)] 
First half of the long-overdue support for segment override prefixes,
LDTs and __NR_modify_ldt.

- Each thread has its own LDT.  Usually NULL, but if we need to
  change an entry, it is allocated.  LDTs are inherited from parents
  as one would expect.

- We intercept __NR_modify_ldt and update the calling thread's LDT
  accordingly.  This is done in coregrind/vg_ldt.c.  The kernel
  never sees these syscalls.

- New architectural state for %cs, %ss, %ds, %es, %fs and %gs.
  Probably overkill including %cs and %ss.  These are saved and
  restored in the usual way, _except_ at syscalls -- there's no
  point, since we are hiding all LDT operations from the kernel now.
  This does assume that no syscall implicitly looks at the
  segment registers, but I think that's safe.

Still only halfway there.  JITter is still unaware of seg regs
and override prefixes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1133

23 years agowibble
Nicholas Nethercote [Fri, 27 Sep 2002 11:45:30 +0000 (11:45 +0000)] 
wibble

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1126

23 years agoUpdate Cachegrind docs to refer to `cg_annotate' not `vg_annotate'.
Nicholas Nethercote [Fri, 27 Sep 2002 10:47:46 +0000 (10:47 +0000)] 
Update Cachegrind docs to refer to `cg_annotate' not `vg_annotate'.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1125

23 years agoMoved the OINK macro into vg_skin.h so that skins can use it.
Nicholas Nethercote [Fri, 27 Sep 2002 10:42:20 +0000 (10:42 +0000)] 
Moved the OINK macro into vg_skin.h so that skins can use it.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1124

23 years agoChanged test so the output doesn't depend on the order in which the parent and
Nicholas Nethercote [Fri, 27 Sep 2002 10:38:20 +0000 (10:38 +0000)] 
Changed test so the output doesn't depend on the order in which the parent and
child run;  this was random so the test was failing spuriously sometimes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1123

23 years agoAdded some reasonably thorough documentation on how to write skins. Also added
Nicholas Nethercote [Fri, 27 Sep 2002 10:29:51 +0000 (10:29 +0000)] 
Added some reasonably thorough documentation on how to write skins.  Also added
an example skin which is referred to in the documentation, and is designed to
be a template which can be copied.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1122

23 years agoLots of minor comment changes, etc, just to make it clearer to skin writers.
Nicholas Nethercote [Fri, 27 Sep 2002 10:24:48 +0000 (10:24 +0000)] 
Lots of minor comment changes, etc, just to make it clearer to skin writers.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1121

23 years agowibble
Nicholas Nethercote [Fri, 27 Sep 2002 10:12:45 +0000 (10:12 +0000)] 
wibble

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1120

23 years ago"Um, the cachegrind script doesn't exist in the head, and vg_annotate has
Julian Seward [Fri, 27 Sep 2002 09:40:52 +0000 (09:40 +0000)] 
"Um, the cachegrind script doesn't exist in the head, and vg_annotate has
 been renamed cg_annotate..."

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1119

23 years agoMoved vg_regtest to vg_regtest.in, using autoconf so vg_regtest now knows where
Nicholas Nethercote [Fri, 27 Sep 2002 08:44:17 +0000 (08:44 +0000)] 
Moved vg_regtest to vg_regtest.in, using autoconf so vg_regtest now knows where
the `valgrind' script is kept, so people who install valgrind in a directory
other than the one I do don't need to use the --valgrind option all the time.

As a consequence, vg_regtests is now installed in and run out of bin/, rather
than tests/.

Also added a GPL copyright notice to vg_regtests.in.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1118

23 years agoChanged the regression testing options --head and --eraser to --stable and
Nicholas Nethercote [Fri, 27 Sep 2002 08:26:27 +0000 (08:26 +0000)] 
Changed the regression testing options --head and --eraser to --stable and
--dev, because the old ones were now totally confusing (since --head no longer
applies to HEAD).  Had to change a couple of .vgtest "vgopt:" lines for this.
Unfortunately the --stable result files are still *.stderr.exp.hd" because
changing them via CVS is a pain.

Also improved documentation in script slightly.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1117

23 years agomerge rev 1.29.2.5:
Julian Seward [Fri, 27 Sep 2002 01:29:26 +0000 (01:29 +0000)] 
merge rev 1.29.2.5:

Implement primary opcode 0x10 (ADC Gb,Eb).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1116

23 years agomerge rev 1.7.2.3:
Julian Seward [Fri, 27 Sep 2002 01:26:34 +0000 (01:26 +0000)] 
merge rev 1.7.2.3:

valgrind's strcmp() implementation (to clients) treats char as signed
whereas the libc implementation it replaces treats char as unsigned.
Fix!  God knows how anything much ever worked before now.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1115

23 years agomerge rev 1.16.2.3:
Julian Seward [Fri, 27 Sep 2002 01:11:36 +0000 (01:11 +0000)] 
merge rev 1.16.2.3:

Fix bug in 108-byte load/stores.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1114

23 years agomerge rev 1.76.2.7:
Julian Seward [Fri, 27 Sep 2002 01:04:29 +0000 (01:04 +0000)] 
merge rev 1.76.2.7:

Increase VG_N_RWLOCKS from 50 to 500.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1113

23 years agomerge rev 1.8.2.1:
Julian Seward [Fri, 27 Sep 2002 00:58:10 +0000 (00:58 +0000)] 
merge rev 1.8.2.1:

Add as many suppressions as I reasonably can for SuSE 8.1.  There's
still a lot of junk, but that can only be fixed by a more direct
tackling of gcc-3.2's bad habits.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1112

23 years agomerge rev 1.29.2.3:
Julian Seward [Fri, 27 Sep 2002 00:46:59 +0000 (00:46 +0000)] 
merge rev 1.29.2.3:

Fix stupid bug in which vg_push_signal_frame/vg_pop_signal_frame assumed
that the handler wouldn't change the signal-number parameter it was passed.

Fixes this:
   vg_signals.c:1065 (vgPlain_signal_returns):
   Assertion `sigNo >= 1 && sigNo <= 64' failed.
and possibly arbitrary other mutancy in the signal handling too.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1111

23 years agomerge revs 1.2.2.2 and 1.2.2.3 (which probably don't make sense in
Julian Seward [Fri, 27 Sep 2002 00:42:41 +0000 (00:42 +0000)] 
merge revs 1.2.2.2 and 1.2.2.3 (which probably don't make sense in
the head, but still ..)

  Source is .tar.bz2 not .tar.gz

  Added cachegrind and vg_annotate to the spec file, as suggested by
  Rafael Garcia-Suarez <rgarciasuarez@free.fr>.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1110

23 years agoChange #include so that "make distcheck" works.
Nicholas Nethercote [Tue, 24 Sep 2002 11:23:50 +0000 (11:23 +0000)] 
Change #include so that "make distcheck" works.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1109

23 years agowibbles
Nicholas Nethercote [Mon, 23 Sep 2002 16:56:39 +0000 (16:56 +0000)] 
wibbles

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1104

23 years agowibble
Nicholas Nethercote [Mon, 23 Sep 2002 16:42:19 +0000 (16:42 +0000)] 
wibble

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1103

23 years agoAdded Makefile.am for tests/unused.
Nicholas Nethercote [Mon, 23 Sep 2002 16:32:40 +0000 (16:32 +0000)] 
Added Makefile.am for tests/unused.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1102

23 years agoWibble.
Nicholas Nethercote [Mon, 23 Sep 2002 16:27:35 +0000 (16:27 +0000)] 
Wibble.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1101

23 years agoChanged name of core/ to coregrind/, since 'core' files/dirs have a habit
Nicholas Nethercote [Mon, 23 Sep 2002 16:24:41 +0000 (16:24 +0000)] 
Changed name of core/ to coregrind/, since 'core' files/dirs have a habit
of being removed with extreme prejudice.

Also added a couple of necessary Makefile.am files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1100

23 years agoFixups to get "make dist" to work -- mostly involving regression test files.
Nicholas Nethercote [Mon, 23 Sep 2002 16:09:39 +0000 (16:09 +0000)] 
Fixups to get "make dist" to work -- mostly involving regression test files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1099

23 years agoUpdated.
Nicholas Nethercote [Mon, 23 Sep 2002 13:15:46 +0000 (13:15 +0000)] 
Updated.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1098

23 years agoRemoved cachegrind docs (now in cachegrind/docs/)
Nicholas Nethercote [Mon, 23 Sep 2002 13:13:45 +0000 (13:13 +0000)] 
Removed cachegrind docs (now in cachegrind/docs/)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1097

23 years agoRemoved files that are now elsewhere (in core/docs/ and memcheck/docs/),
Nicholas Nethercote [Mon, 23 Sep 2002 13:10:54 +0000 (13:10 +0000)] 
Removed files that are now elsewhere (in core/docs/ and memcheck/docs/),
setup basic skeleton linking to core + skin docs.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1096

23 years agoRemoved non-Cachegrind stuff from docs.
Nicholas Nethercote [Mon, 23 Sep 2002 11:50:39 +0000 (11:50 +0000)] 
Removed non-Cachegrind stuff from docs.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1094

23 years agoAdded cg_annotate.
Nicholas Nethercote [Mon, 23 Sep 2002 11:37:05 +0000 (11:37 +0000)] 
Added cg_annotate.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1093

23 years agoAdded .cvsignore file.
Nicholas Nethercote [Mon, 23 Sep 2002 11:36:39 +0000 (11:36 +0000)] 
Added .cvsignore file.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1092

23 years agoRemoved defunct .cvsignore files.
Nicholas Nethercote [Mon, 23 Sep 2002 11:33:13 +0000 (11:33 +0000)] 
Removed defunct .cvsignore files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1091

23 years agoChanged lots of files for the new core/ + skin/ directory structure:
Nicholas Nethercote [Mon, 23 Sep 2002 11:21:57 +0000 (11:21 +0000)] 
Changed lots of files for the new core/ + skin/ directory structure:

   - changed lots of Makefile.am files
   - changed configure.in
   - changed lots of #include lines for changed file names
   - changed lots of file headers n footers for changed file names
   - changed vg_regtest to handle new directory structure -- recursively
     traverses subdirectories for .vgtest test files
   - changed lots of paths in memcheck/ regression test expected outputs

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1090

23 years agoRemoved, not needed any more.
Nicholas Nethercote [Mon, 23 Sep 2002 10:14:50 +0000 (10:14 +0000)] 
Removed, not needed any more.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1089

23 years agoRemoving files for total repo restructuring; these files were moved elsewhere by...
Nicholas Nethercote [Mon, 23 Sep 2002 10:01:42 +0000 (10:01 +0000)] 
Removing files for total repo restructuring;  these files were moved elsewhere by *hacking the repository directly*

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1088

23 years agoFiles updated, added and removed in order to turn the ERASER branch into HEAD
Nicholas Nethercote [Mon, 23 Sep 2002 09:36:25 +0000 (09:36 +0000)] 
Files updated, added and removed in order to turn the ERASER branch into HEAD

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1086

23 years agoFix the permissions of the installed files, as suggested by Matthias
Frédéric Gobry [Mon, 2 Sep 2002 11:31:21 +0000 (11:31 +0000)] 
Fix the permissions of the installed files, as suggested by Matthias
Andree.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@855

23 years agoUndid the removal of INCEIPs during Cachegrind instrumentation. Although it
Nicholas Nethercote [Fri, 16 Aug 2002 10:41:53 +0000 (10:41 +0000)] 
Undid the removal of INCEIPs during Cachegrind instrumentation.  Although it
helped performance, it could cause problems.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@588

23 years agovg_from_ucode.c:
Nicholas Nethercote [Tue, 6 Aug 2002 20:56:40 +0000 (20:56 +0000)] 
vg_from_ucode.c:
  - Improves the code generation for arithmetic instructions.  Some arith
    instructions (ADC, SBB, RCR, RCL, some FPU) read EFLAGS -- integer ops for
    the carry flag, and FPU for ZCP (sometimes).  But the rest don't.

    Previously, the EFLAGS register was always being read before any arith
    instruction, even those for which it wasn't needed.  Now it's only done if
    needed.  This was done by splitting the anyFlagUse test used into
    readFlagUse and writeFlagUse.

    This results in reasonable decreases in time (3--5% for Valgrind, 12--14%
    with no instrumentation) and size of translations (2%, 5%).

vg_translate.c:
  - added CCALL_{1,2}_0 to a comment they were missing from.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@554

23 years agoTest case for resolver bug fixed by vg_libpthread.c rev 1.91. Thanks to
Julian Seward [Tue, 6 Aug 2002 09:09:53 +0000 (09:09 +0000)] 
Test case for resolver bug fixed by vg_libpthread.c rev 1.91.  Thanks to
Waldo Bastian for chasing this one into a corner.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@553

23 years agoSimulate resolver-specific state as per the real libpthread.so, wherein
Julian Seward [Tue, 6 Aug 2002 09:02:53 +0000 (09:02 +0000)] 
Simulate resolver-specific state as per the real libpthread.so, wherein
the root thread (tid 1) always uses _res as exported from libc.so as its
state.  This fixes the name lookup problems in KAtlantik.

MERGE TO STABLE

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@551

23 years agoCache simulation requires strict INCEIP updating so that the boundaries between
Nicholas Nethercote [Thu, 1 Aug 2002 08:09:51 +0000 (08:09 +0000)] 
Cache simulation requires strict INCEIP updating so that the boundaries between
individual x86 instructions can be found when instrumenting UCode.  However,
EIP is not needed during execution, because the x86 instr addresses are copied
into the cost-centres.  So now they INCEIPs are removed during the
instrumentation step once their task is done.

This reduces running times by about 3--7%, and translation sizes by about 9%
(code expansion reduced from about 11x to about 10x).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@550

23 years agoTrying to support the new C++ ABI of gcc 3.x
Dirk Mueller [Mon, 29 Jul 2002 20:42:39 +0000 (20:42 +0000)] 
Trying to support the new C++ ABI of gcc 3.x

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@549

23 years agoThis commit introduces two new UInstructions: CCALL_1_0, CCALL_2_0.
Nicholas Nethercote [Sun, 28 Jul 2002 09:53:34 +0000 (09:53 +0000)] 
This commit introduces two new UInstructions:  CCALL_1_0, CCALL_2_0.

These are the first of a generic family for calling C functions.  CCALL_M_N
calls a function with M word-sized arguments and N word-sized return values
(N == 0 or 1, of course).  All stack management is done automatically --
register saving, argument pushing, register restoring.  Rough timings show it's
marginally faster (~3%), probably because the instrumentation phase is slightly
simpler and translations are slighly more compact.

It was introduced because the way Cachegrind was calling its helper functions
was not really legitimate -- it involved pushing RealRegs at a point where
RealRegs shouldn't have been used.  This flukily worked for Cachegrind, but
caused obscure seg faults when I tried using the same technique for the DIDUCE
stuff.  Hence this more general approach.

CCALL_M_N where M+N <= 3 are easy.  More args might be done by abusing spare
fields in the UInstr struct, if really necessary.  But it's not, yet.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@546

23 years agoWibbles for 1.0.0.
Julian Seward [Fri, 26 Jul 2002 11:34:39 +0000 (11:34 +0000)] 
Wibbles for 1.0.0.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@540

23 years agoOnly run __libc_freeres() when valgrinding. It may do invalid free()s
Julian Seward [Fri, 26 Jul 2002 10:52:48 +0000 (10:52 +0000)] 
Only run __libc_freeres() when valgrinding.  It may do invalid free()s
which cause the low-level memory manager to crash.  When valgrinding
that's all protected, but not when cachegrinding etc.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@537

23 years agoFinal caveats for 1.0.0.
Julian Seward [Thu, 25 Jul 2002 22:45:35 +0000 (22:45 +0000)] 
Final caveats for 1.0.0.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@536

23 years ago--> 1.0.0 (yay!)
Julian Seward [Thu, 25 Jul 2002 22:42:06 +0000 (22:42 +0000)] 
--> 1.0.0 (yay!)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@535

23 years agoPrint more helpful message on JIT failure to handle insns starting with 0x0F.
Julian Seward [Thu, 25 Jul 2002 22:41:40 +0000 (22:41 +0000)] 
Print more helpful message on JIT failure to handle insns starting with 0x0F.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@532

23 years agoSuppressions for R H Limbo (7.3.92)
Julian Seward [Thu, 25 Jul 2002 02:21:53 +0000 (02:21 +0000)] 
Suppressions for R H Limbo (7.3.92)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@531

23 years agoImplement __NR_getxattr.
Julian Seward [Thu, 25 Jul 2002 01:41:01 +0000 (01:41 +0000)] 
Implement __NR_getxattr.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@530

23 years agoTrack ELF frame changes as appearing in Red Hat Limbo (7.3.92).
Julian Seward [Thu, 25 Jul 2002 00:49:51 +0000 (00:49 +0000)] 
Track ELF frame changes as appearing in Red Hat Limbo (7.3.92).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@525

23 years agoCompile fixes for Red Hat Limbo (7.3.92).
Julian Seward [Wed, 24 Jul 2002 09:41:52 +0000 (09:41 +0000)] 
Compile fixes for Red Hat Limbo (7.3.92).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@522

23 years agoSome jokers apparently like setting the CPU's AC (Alignment Check) flag
Julian Seward [Wed, 24 Jul 2002 09:36:36 +0000 (09:36 +0000)] 
Some jokers apparently like setting the CPU's AC (Alignment Check) flag
for god-knows-why reasons.  This causes VG_{READ,WRITE}_MISALIGNED_WORD
to give bus errors.  Redefine them to do the obvious byte-by-byte loads/
stores.  Fortunately they are not performance critical.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@519

23 years agoAssume PUTF modifies %EFLAGS in a completely arbitrary manner, and so
Julian Seward [Wed, 24 Jul 2002 09:33:52 +0000 (09:33 +0000)] 
Assume PUTF modifies %EFLAGS in a completely arbitrary manner, and so
be completely pessimistic if it is encountered during the redundant-flag-
save/restore-elimination pass.  This fixes the following mysterious
failure:

 insane instruction
           27: PUTFL     %ecx

 valgrind: vg_from_ucode.c:2600 (vgPlain_emit_code): Assertion `sane' failed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@516

23 years agoSupport for x86 insn fldenv.
Julian Seward [Tue, 23 Jul 2002 18:48:39 +0000 (18:48 +0000)] 
Support for x86 insn fldenv.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@515

24 years agoSkip directly to 1.0pre6 to avoid confusing me.
Julian Seward [Tue, 16 Jul 2002 02:13:30 +0000 (02:13 +0000)] 
Skip directly to 1.0pre6 to avoid confusing me.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@514

24 years agoAdd a suppression to deal with calling __libc_freeres().
Julian Seward [Tue, 16 Jul 2002 02:11:51 +0000 (02:11 +0000)] 
Add a suppression to deal with calling __libc_freeres().

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@513

24 years agoDocument probs with gcc-3.1 false positives.
Julian Seward [Tue, 16 Jul 2002 01:49:22 +0000 (01:49 +0000)] 
Document probs with gcc-3.1 false positives.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@512

24 years agoAt request of Ulrich Drepper, call __libc_freeres() after final __NR_exit
Julian Seward [Tue, 16 Jul 2002 01:43:15 +0000 (01:43 +0000)] 
At request of Ulrich Drepper, call __libc_freeres() after final __NR_exit
so as to free memory allocated by glibc.  This reduces the leaks reported
in glibc, but causes a stack of read/write-after-free errors which have
to be suppressed :-(

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@507

24 years agopossible fix for valgrinding problem on longer running kernels (2.4.18-SuSE, update...
Dirk Mueller [Mon, 15 Jul 2002 19:39:51 +0000 (19:39 +0000)] 
possible fix for valgrinding problem on longer running kernels (2.4.18-SuSE, update 17 days)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@506

24 years agoSuppress errors in __rawmemchr when called from anywhere at all.
Julian Seward [Sun, 14 Jul 2002 13:04:38 +0000 (13:04 +0000)] 
Suppress errors in __rawmemchr when called from anywhere at all.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@505

24 years agoMention kernel probs with R H "Limbo" public beta (hacked 2.4.18).
Julian Seward [Sun, 14 Jul 2002 10:45:21 +0000 (10:45 +0000)] 
Mention kernel probs with R H "Limbo" public beta (hacked 2.4.18).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@504

24 years agoDocument some limitations.
Julian Seward [Sat, 13 Jul 2002 14:09:35 +0000 (14:09 +0000)] 
Document some limitations.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@503

24 years ago---> 1.0pre5
Julian Seward [Sat, 13 Jul 2002 13:45:28 +0000 (13:45 +0000)] 
---> 1.0pre5

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@502

24 years agoget_caches(): ensure caches are initialised on targets where
Julian Seward [Sat, 13 Jul 2002 13:31:20 +0000 (13:31 +0000)] 
get_caches(): ensure caches are initialised on targets where
get_caches_from_CPUID fails.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@501

24 years agoCopy pthread_rwlockattr_setpshared verbatim from LinuxThreads.
Julian Seward [Sat, 13 Jul 2002 12:58:44 +0000 (12:58 +0000)] 
Copy pthread_rwlockattr_setpshared verbatim from LinuxThreads.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@498

24 years agoAdd __NR_quotactl.
Julian Seward [Sat, 13 Jul 2002 12:58:08 +0000 (12:58 +0000)] 
Add __NR_quotactl.
Allow NULL 3rd arg in __NR_sendfile.
("Didier")

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@497

24 years agoInclude valgrind.spec and valgrind.spec.in in tarballs.
Julian Seward [Sat, 13 Jul 2002 12:37:28 +0000 (12:37 +0000)] 
Include valgrind.spec and valgrind.spec.in in tarballs.
Also add a line to the description in the .spec.in.
(Shlomi Fish)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@494

24 years ago(Tim Rowley, verbatim)
Julian Seward [Sat, 13 Jul 2002 12:32:16 +0000 (12:32 +0000)] 
(Tim Rowley, verbatim)

The Intel p4 manual suggests inserting a pause instruction in
spin-wait loops as a hint to what the code is doing.  In other
respects it acts just like a nop.  Pause (0xF3 0x90) currently
causes valgrind to panic.  The patch below keeps things running.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@493

24 years agoImplement fnstenv (store FPU environment, but not regs AIUI)
Julian Seward [Sat, 13 Jul 2002 12:27:12 +0000 (12:27 +0000)] 
Implement fnstenv (store FPU environment, but not regs AIUI)
(Jeff Epler)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@492

24 years agoPrint additional useful information immediately prior to
Julian Seward [Sat, 13 Jul 2002 12:20:35 +0000 (12:20 +0000)] 
Print additional useful information immediately prior to
   VG_(panic)("VG_(mash_LD_PRELOAD_and_LD_LIBRARY_PATH) failed\n");

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@491

24 years agovg_signals.c: vg_oursignalhandler(): don't longjmp() on fatal signal if
Julian Seward [Sat, 13 Jul 2002 12:12:56 +0000 (12:12 +0000)] 
vg_signals.c: vg_oursignalhandler(): don't longjmp() on fatal signal if
the scheduler's jmp_buf is not valid.  This might avoid at least some
of the following:
   vg_scheduler.c:479 (run_thread_for_a_while): Assertion `trc == 0'
   failed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@490

24 years agoMake sigsuspend() work well enough to keep zsh hackers happy.
Julian Seward [Sat, 13 Jul 2002 11:05:45 +0000 (11:05 +0000)] 
Make sigsuspend() work well enough to keep zsh hackers happy.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@489

24 years agoMake VG_USERREQ__PTHREAD_YIELD actually yield the thread. This used
Julian Seward [Fri, 12 Jul 2002 22:30:51 +0000 (22:30 +0000)] 
Make VG_USERREQ__PTHREAD_YIELD actually yield the thread.  This used
to work but was broken in a subtle way by the cleanup of rev 1.70.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@488