8177 Commits

Author SHA1 Message Date
Julian Seward
cb3fbb46d7 The amd64-linux unwinder rejects stacks of smaller than 512 bytes as
bogus, and produces essentially useless traces from them.  With
gcc-4.4 and later, some valid thread stacks really are smaller than
this.  Hence change the limit down to 256 bytes.  Investigated by
Evgeniy Stepanov, eugeni.stepanov@gmail.com.
See bug 243270 comment 21.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11403
2010-10-06 22:45:18 +00:00
Julian Seward
797fe272f2 amd64-linux: add suitable CFI annotations so that unwinding through
the CALL_FN_*_* macros works more reliably.  This is all very fiddly
and is described in a large comment in valgrind.h.  Fixes #243270.
(Evgeniy Stepanov, eugeni.stepanov@gmail.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11402
2010-10-06 22:07:06 +00:00
Bart Van Assche
e6ad90d0da ppc/jm-insns.c: Use proper integer types.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11401
2010-10-06 16:13:17 +00:00
Julian Seward
878207ebb9 Define VKI_SHMLBA for all supported Linux targets, thereby unbreaking
the breakage created by r11399.  Part of #222545.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11400
2010-10-06 15:55:59 +00:00
Julian Seward
566a25cf7e Make client sys_shmat work properly on arm-linux by taking into
account rounding requirements to SHMLBA.  Modified version of a patch
by Kirill Batuzov, batuzovk@ispras.ru.  This fixes the main bug in
#222545.  Temporarily breaks the build on all other platforms though.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11399
2010-10-06 15:24:39 +00:00
Julian Seward
12dd8bd181 get_shm_size(): pass VKI_IPC_64 to our shmctl call if it is available,
except on amd64-linux.  This fixes a secondary problem discussed
in bug 222545.  (Kirill Batuzov, batuzovk@ispras.ru)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11398
2010-10-06 12:59:44 +00:00
Julian Seward
c72198e061 When opening an mmaped file to see if it's an ELF file that we should
read debuginfo from, use VKI_O_LARGEFILE, so as to ensure the open
succeeds for large files on 32-bit systems.  Fixes #234064.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11397
2010-10-06 11:38:01 +00:00
Julian Seward
b01f20803e Handle mq_* syscalls. Fixes #243884. (David Fenger, dkfenger@gmail.com)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11396
2010-10-06 11:25:29 +00:00
Tom Hughes
f4ef177f4f When a memory block changes from unreachable to possibly or definitely
reachable, or from possibly reachable to definitely reachable, rescan
it so that any blocks it points to are also upgraded. Fixes #206600.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11395
2010-10-04 20:55:21 +00:00
Julian Seward
669d87bcc1 Support sys_readahead on Linux.
(Sean Bartell, wingedtachikoma@gmail.com)  Fixes #247894.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11394
2010-10-04 20:03:27 +00:00
Josef Weidendorfer
540efd6718 Make sure that string buffers for cost arrays are large enough.
17 64bit values fit into 512 bytes (but not 256...).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11393
2010-10-04 19:17:21 +00:00
Julian Seward
6414ba16e6 callgrind/main.c, finish(): 'Char buf[RESULTS_BUF_LEN]' can be overrun in
some cases.  Increase RESULTS_BUF_LEN accordingly.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11392
2010-10-03 12:35:03 +00:00
Julian Seward
f5e67f801d Make readdwarf.c big endianess safe to enable unwinding on big endian
systems.  (Christian Borntraeger, borntraeger@de.ibm.com).  Fixes
#248893.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11391
2010-09-30 15:11:01 +00:00
Julian Seward
d4a4b32e72 Don't assert when doing origin tracking for d16-31, f32-63
or q0-15.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11390
2010-09-29 21:40:44 +00:00
Julian Seward
7fe3927ff5 Test cases for amd64 PCLMULDQ (Emmanuel Thome, Emmanuel.Thome@gmail.com).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11389
2010-09-28 19:59:47 +00:00
Julian Seward
4d88144c11 When origin tracking, handle the new %RFLAGS.ACFLAG guest state
component introduced in vex r2050.  See #249943.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11388
2010-09-28 16:00:11 +00:00
Julian Seward
5f4ff74809 Add proper dependencies for pub/libvex_guest_offsets.h (Florian Krohm,
britzel@acm.org).  Fixes #246888.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11387
2010-09-28 15:09:47 +00:00
Julian Seward
552292d206 Add test cases for CMPXCHG reg, reg on amd64. (Vince Weaver,
vince@csl.cornell.edu).  See #246311.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11386
2010-09-28 14:58:03 +00:00
Julian Seward
5725aecb7a Add test cases for amd64 ADC Iv, eAX and SBB Iv, eAX (Jakub Jelinek,
jakub@redhat.com).  See #211410.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11385
2010-09-28 14:39:39 +00:00
Tom Hughes
00ae2c5c8c Calling VG_(am_relocate_nooverlap_client) will destroy the descriptor
for the old segment so we need to save the permissions from it before
the call so that we can use them when notifying tools of the new space
afterwards, or we will notify them of the wrong permissions.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11384
2010-09-27 15:08:34 +00:00
Nicholas Nethercote
fd11394abf Speed up the --cache-sim=no case.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11383
2010-09-27 02:20:38 +00:00
Nicholas Nethercote
3f6bcea6aa In Cachegrind, allow --cache-sim=no --branch-sim=no. Sometimes just getting
instruction counts is useful.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11382
2010-09-27 01:04:20 +00:00
Julian Seward
b132b8b282 Add tests for all encodings of REV and REV16 in both ARM and Thumb mode.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11381
2010-09-26 00:51:12 +00:00
Julian Seward
d1853b294d Add tests for ORN (immediate) and ORN (register).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11380
2010-09-25 22:07:01 +00:00
Julian Seward
82792e19c7 Test for RBIT in ARM mode.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11379
2010-09-24 23:51:42 +00:00
Julian Seward
70a3472d66 Partially make this work on arm-linux (for 32-bit incs), so as to give
a proper test for LDREX/STREX.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11378
2010-09-24 23:51:17 +00:00
Julian Seward
0bb6f49531 On arm-linux, add r7 to the set of registers that the CFI unwinder
knows how to unwind.  This is important when unwinding Thumb code
the CFA is often stated as being at some offset from r7.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11377
2010-09-23 22:05:59 +00:00
Julian Seward
4953c95227 DW_CFA_advance_loc{,1,2,4} fail to multiply the delta by
code_alignment_factor, thereby assuming it is 1.  This happens to be
OK on amd64-linux and s390x-linux because it really is 1, but on
arm-linux it is 2, and hence the boundaries between code-unwind areas
are simply wrong after any of DW_CFA_advance_loc{,1,2,4} are
processed.  This patch provides the obvious fix.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11376
2010-09-23 13:24:48 +00:00
Julian Seward
0bfbb21837 arm-linux: zero out the least significant bit of R15 that we
ptrace into the child, so as to be a legitimate instruction
address in both ARM and Thumb mode.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11375
2010-09-23 11:02:48 +00:00
Julian Seward
9258157b08 Add VFP test cases, as per bug 244493 comment 1. Minorly cleaned up
version of a patch by (Dmitry Zhurikhin, zhur@ispras.ru)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11374
2010-09-23 01:26:06 +00:00
Julian Seward
06d2a1e039 Enable --track-origins on ARM code which accesses CPSR.GE3/2/1/0.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11373
2010-09-22 22:27:41 +00:00
Julian Seward
0bbcbaab63 Add more test cases for {U,S}{ADD,SUB}16.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11372
2010-09-22 01:00:06 +00:00
Julian Seward
93a35b014f Handle new 32-bit SIMD integer primops introduced in vex r2037.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11371
2010-09-22 00:58:51 +00:00
Julian Seward
f63ccaefa1 Add test cases for SSUB8 and UHADD8.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11370
2010-09-21 09:05:20 +00:00
Julian Seward
1701d0550d Add tests for new insns in vex r2033 (SADD16, SSUB16, SASX, SMLAWB, SMLAWT)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11369
2010-09-20 22:54:25 +00:00
Bart Van Assche
75ac57dc3a Made timerfd-syscall test more robust by improving the time rounding algorithm.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11368
2010-09-19 17:21:31 +00:00
Bart Van Assche
3169936a1b Fixed a typo.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11367
2010-09-19 17:16:39 +00:00
Bart Van Assche
e7b5c2eb6e memcheck/tests/linux/timerfd-syscall: send output to stderr instead of stdout.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11366
2010-09-19 17:13:53 +00:00
Bart Van Assche
ecb0c51747 DRD: avoid unaligned reads.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11365
2010-09-19 11:14:31 +00:00
Bart Van Assche
006b3b1228 PowerPC: added expected output files for memcheck/tests/varinfo[1-6], based
on a patch supplied by Maynard Johnson. See also #247526.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11364
2010-09-18 13:34:23 +00:00
Bart Van Assche
94e48485ec PowerPC: corrected expected output for memcheck/tests/origin5-bz2. Patch
supplied by Maynard Johnson -- see also #247526.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11363
2010-09-18 10:45:27 +00:00
Bart Van Assche
921d72acf4 Follow-up for r11360.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11362
2010-09-18 09:37:07 +00:00
Bart Van Assche
4b91ff3b67 Build 32-bit exp-bbv tests as 32-bit. Patch supplied by Maynard Johnson
(see also #247526).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11361
2010-09-18 08:40:52 +00:00
Bart Van Assche
d4a0dd3995 Skip exp-ptrcheck regression tests on PowerPC and ARM. Based on a patch by
Maynard Johnson -- see also #247526.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11360
2010-09-18 08:34:33 +00:00
Bart Van Assche
3dac272dff Made power6_bcmp testcases pass - patch from Maynard Johnson. Closes #250777.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11359
2010-09-18 08:10:28 +00:00
Bart Van Assche
235c2a8df3 PowerPC, Altivec: avoid using typedefs in combination with the vector keyword.
Patch by Maynard Johnson (see also #247526).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11358
2010-09-14 15:33:00 +00:00
Bart Van Assche
e8063b7b3f Added configure test that checks whether the assembler supports the SSE4a instruction lzcnt.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11357
2010-09-14 10:53:57 +00:00
Bart Van Assche
2382e79f3d Avoid triggering AM_CFLAGS / AM_CXXFLAGS redefinition warnings.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11356
2010-09-13 17:44:51 +00:00
Bart Van Assche
c6cf2bb4ff Restored original code for other compilers than ppc gcc 4.3.0 such that at least one test invokes ANNOTATE_UNPROTECTED_READ().
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11355
2010-09-13 17:44:10 +00:00
Bart Van Assche
04c016c63b Second and last gcc 4.3.2 PowePC workaround.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11354
2010-09-11 10:07:56 +00:00