Commit Graph

942 Commits

Author SHA1 Message Date
Dirk Mueller
6a392dfd92 unbreak make regtest again
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1661
2003-06-01 19:06:03 +00:00
Julian Seward
a6ab350947 Add some more SSE insns.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1660
2003-06-01 18:49:12 +00:00
Nicholas Nethercote
6cae340b5e comments only
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1659
2003-05-30 09:37:26 +00:00
Dirk Mueller
7607301e2e some ignores
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1658
2003-05-28 01:02:46 +00:00
Julian Seward
a625667e03 Fix a design flaw in the SSE decoder. Remove duplication and
generally rationalise it as the structure of Intel's encoding scheme
becomes more apparent.  Add a bunch more instructions.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1657
2003-05-27 00:46:28 +00:00
Dirk Mueller
daf6538cd9 minor code simplification
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1656
2003-05-27 00:21:30 +00:00
Dirk Mueller
05a4a721a6 add glibc 2.3 suppression file before I loose it again :(
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1655
2003-05-27 00:19:52 +00:00
Dirk Mueller
bbe105208a compiler warning cleanups
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1654
2003-05-27 00:18:49 +00:00
Julian Seward
474d73ecf5 Teach memcheck about the SSE UInstrs generated thus far. So now the
Qt GL demos run on memcheck.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1653
2003-05-26 09:17:41 +00:00
Julian Seward
0facd982d2 Implement enough SSE/SSE2 insns so that all the GL demos in qt-3.1.0
work, when running on a P4 with an NVidia Vanta card and using
NVidia-supplied libGL.so.1.0.3123.  Surprisingly this seems to require
only a minimal set of instructions.  So far this is only with
--skin=none.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1652
2003-05-26 08:47:27 +00:00
Julian Seward
5777e313ad Implement a few SSE instructions, enough to run bzip2 when compiled
with the Intel C compiler (7.1.009) with vectorisation for SSE engaged
(-xK).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1651
2003-05-25 01:07:34 +00:00
Nicholas Nethercote
469bb403a8 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1650
2003-05-22 16:17:53 +00:00
Nicholas Nethercote
aa063e628c Using __PRETTY_FUNCTION__ and some macros, removed 148 lines of very repetitive
code (also removing the perennial problem of matching the error strings to the
functions they were in).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1649
2003-05-21 10:48:24 +00:00
Nicholas Nethercote
009b8db7bb wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1648
2003-05-21 10:13:39 +00:00
Nicholas Nethercote
5d5fbb5309 Fixed up docs a bit: did the core/skin split properly for suppressions.
Client requests still need to be fixed, though.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1647
2003-05-20 18:24:54 +00:00
Nicholas Nethercote
a2c7da2ae8 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1646
2003-05-20 17:42:26 +00:00
Nicholas Nethercote
d870c8df8e Minor addition.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1645
2003-05-20 17:41:24 +00:00
Nicholas Nethercote
c4e8c61d5a Minor docs fixups.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1644
2003-05-20 17:32:21 +00:00
Nicholas Nethercote
40571c6f66 Added VALGRIND_MALLOCLIKE_BLOCK and VALGRIND_FREELIKE_BLOCK which allow you to
use a custom-allocator and detect almost as many errors as you could detect if
you used malloc/new/new[].  (eg. leaks detected, free errors, free mismatch,
etc).

Had to fiddle with mac_malloc_wrappers.c a bit to factor out the appropriate
code to be called from the client request handling code.  Also had to add a
new element `MAC_AllocCustom' to the MAC_AllocKind type.

Also added a little documentation, and a regression test.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1643
2003-05-20 16:38:24 +00:00
Nicholas Nethercote
136a5e69d5 This commit fixes up the handling of shadow registers quite a bit.
Removed the SK_(written_shadow_regs_values)() function.  Instead, skins that
use shadow regs can track the `post_regs_write_init' event, and set the shadow
regs from within it.  This is much more flexible, since it allows each shadow
register to be set to a separate value if necessary.  It also matches the new
shadow-reg-change events described below.

In the core, there were some places where the shadow regs were changed, and
skins had no way of knowing about it, which was a problem for some skins.
So I added a bunch of new events to notify skins about these:

  post_reg_write_syscall_return
  post_reg_write_deliver_signal
  post_reg_write_pthread_return
  post_reg_write_clientreq_return
  post_reg_write_clientcall_return

Any skin that uses shadow regs should almost certainly track these events.  The
post_reg_write_clientcall_return allows a skin to tailor the shadow reg of the
return value of a CLIENTCALL'd function appropriately;  this is especially
useful when replacing malloc() et al.

Defined some macros that should be used *whenever the core changes the value of
a shadow register* :

  SET_SYSCALL_RETVAL
  SET_SIGNAL_EDX          (maybe should be SET_SIGNAL_RETVAL? ... not sure)
  SET_SIGNAL_ESP
  SET_CLREQ_RETVAL
  SET_CLCALL_RETVAL
  SET_PTHREQ_ESP
  SET_PTHREQ_RETVAL

These replace all the old SET_EAX and SET_EDX macros, and are added in a few
places where the shadow-reg update was missing.

Added shadow registers to the machine state saved/restored when signal handlers
are pushed/popped (they were missing).

Added skin-callable functions VG_(set_return_from_syscall_shadow)() and
VG_(get_exit_status_shadow)() which are useful and abstract away from which
registers the results are in.

Also, poll() changes %ebx (it's first argument) sometimes, I don't know why.
So we notify skins about that too (with the `post_reg_write_syscall_return'
event, which isn't ideal I guess...)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1642
2003-05-19 15:04:06 +00:00
Nicholas Nethercote
1048641855 improved comments only
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1641
2003-05-19 11:16:50 +00:00
Nicholas Nethercote
7a043c3360 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1640
2003-05-19 08:38:23 +00:00
Julian Seward
77cf0ff5e8 Add UCode opcodes for SSE/SSE2.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1639
2003-05-18 11:56:39 +00:00
Julian Seward
07258f73de gcc-3.3 as supplied with SuSE 8.2 ("gcc version 3.3 20030226
(prerelease) (SuSE Linux)") seems to complain about signed-vs-unsigned
comparisons, when -Wall is on.  This commit fixes (most of) those
complaints.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1638
2003-05-18 10:05:38 +00:00
Julian Seward
b9f41dceee Back out symlinking of libpthread.so in coregrind; it causes build
problems on many modern distros.  Not sure how to resolve this properly.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1637
2003-05-17 11:53:46 +00:00
Nicholas Nethercote
32791c71c1 Minor type fixups.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1636
2003-05-14 14:04:39 +00:00
Nicholas Nethercote
33b4e7c995 undo last change (stupid)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1635
2003-05-14 12:56:36 +00:00
Nicholas Nethercote
7e375f4bcc wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1634
2003-05-14 12:54:47 +00:00
Nicholas Nethercote
2a20132bc9 Removed statement with no effect.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1633
2003-05-14 12:52:21 +00:00
Nicholas Nethercote
a0c31b6f2f wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1632
2003-05-14 12:42:14 +00:00
Nicholas Nethercote
d7f0b75201 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1631
2003-05-14 09:11:53 +00:00
Nicholas Nethercote
975948b452 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1630
2003-05-14 09:08:49 +00:00
Nicholas Nethercote
97ea509cc9 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1629
2003-05-12 21:41:30 +00:00
Nicholas Nethercote
96c3404d77 Fixed suppression reading so that you can specify up to four "fun:" or "obj:"
lines (it was 3 due to a bug).

Also removed VG_(get_suppressions)() which wasn't being used, and changed
VG_(exitcode) to an Int, as it should be.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1628
2003-05-12 20:40:13 +00:00
Nicholas Nethercote
11b1b43780 whoops
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1627
2003-05-12 08:48:49 +00:00
Nicholas Nethercote
c0f715e9ef These client requests were moved to include/vg_skin.h a while ago, but I forgot
to delete them from here.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1626
2003-05-12 08:47:57 +00:00
Julian Seward
ecee893b06 Improve threaded handling of errno:
- Change various incorrect direct references to errno into
  *(__errno_location()).

- In __errno_location and __h_errno_location, treat the tid==1 case
  (root thread) specially, as with __res_state().

This seems to fix a bug in threaded handling of errno on R H 9 and SuSE8.2,
and almost makes OpenOffice work again on R H 9.

MERGE TO STABLE, if it doesn't break anything.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1625
2003-05-09 23:40:34 +00:00
Nicholas Nethercote
b4894b2b23 Added a suppression for a leak in Valgrind's own libpthread.so :(
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1624
2003-05-08 07:53:52 +00:00
Julian Seward
2cdb93b219 Merge patch from JosefW:
Hi,

recently I found that there is sometimes cost attributed to some
strange lines (with cachegrind/calltree) with GCC 3.x (using the
DWARF2 debug info format).

I had time to look at this. There is a bug in the DWARF2 debug line
info loader when instructions following each other have source lines
far from each other (e.g. with inlined functions).

MERGE TO STABLE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1619
2003-05-05 22:18:17 +00:00
Julian Seward
c8997a2ad1 Finalise for 1.9.6.
MERGE TO STABLE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1618
2003-05-05 22:15:35 +00:00
Julian Seward
8ab5a6a18f Whoops, forgot this on last commit.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1617
2003-05-05 16:33:53 +00:00
Julian Seward
46aa527659 Fixed problems with reg tests for frames below main(), which were different
under some setups.

Also fixed problem with Cachegrind tests, by filtering out P4s'
warning message.

Also fixed 'mismatches'.

------------------------------------------------------------


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1616
2003-05-05 16:18:51 +00:00
Nicholas Nethercote
705542afcc Added README_DEVELOPERS file.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1615
2003-05-05 13:04:49 +00:00
Nicholas Nethercote
ba72812e02 This commit allows Valgrind to be run in-place from the source tree, without
requiring "make install".  This is good for two reasons:

1. shorter compile times ("make" instead of "make install")
2. don't need to install before running the regression tests

Changes:
 - root Makefile now builds a libpthread.so.0 symlink to libpthread.so, which
   was needed.

 - startup script accepts a --in-place=<dir> option for running a non-installed
   version, where <dir> is the root of the src tree

 - VG_(mash_LD_PRELOAD_and_LD_LIBRARY_PATH) had to be fiddled with a bit

 - tests/vg_regtest now uses the --in-place option to test the non-installed
   version


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1614
2003-05-05 12:47:25 +00:00
Dirk Mueller
77f71065e1 fix regression test run failure. appears to be a glibc bug
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1613
2003-05-05 11:04:37 +00:00
Nicholas Nethercote
d43c0e3942 Made 'tronical' and 'pushfpopf' less likely to fail by filtering their stderr
output more vigorously.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1612
2003-05-05 09:23:12 +00:00
Nicholas Nethercote
9b3ef6f767 Improved filtering so that 'overlap' test less likely to fail.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1611
2003-05-05 09:09:08 +00:00
Julian Seward
7674ae56e4 Document 1.9.6 fixes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1608
2003-05-05 01:05:09 +00:00
Julian Seward
f30706b105 Grrr, I made new changes to this on 2_0_BRANCH. Pull them into head
(details of what changed in 1.9.5).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1607
2003-05-05 00:23:42 +00:00
Julian Seward
c82b1c580f Increase VG_N_CLEANUPSTACK to 16.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1588
2003-05-04 13:02:10 +00:00