summaryrefslogtreecommitdiff
path: root/exp-ptrcheck/h_main.c
diff options
context:
space:
mode:
authorsewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2009-07-13 10:00:06 +0000
committersewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9>2009-07-13 10:00:06 +0000
commitb87a639f32adefb97c70079ee75e57d243bdc6de (patch)
treebf76342f5f86dd249d6e8ac5327eb8215595a11e /exp-ptrcheck/h_main.c
parentd4f90d24fc0b3c70e427fee9d1700f58a4a5709d (diff)
Fix breakage on ppc{32,64}-linux in post_reg_write_nonptr following
r10084 and also update a comment. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10439 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'exp-ptrcheck/h_main.c')
-rw-r--r--exp-ptrcheck/h_main.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/exp-ptrcheck/h_main.c b/exp-ptrcheck/h_main.c
index f02bf3e0..e5b0284b 100644
--- a/exp-ptrcheck/h_main.c
+++ b/exp-ptrcheck/h_main.c
@@ -1954,9 +1954,17 @@ static void post_reg_write_nonptr ( ThreadId tid, PtrdiffT offset, SizeT size )
//
if (is_integer_guest_reg( (Int)offset, (Int)size )) {
put_guest_intreg( tid, 1, offset, size, (UWord)NONPTR );
- } else {
+ }
+ else
+ if (size == 1 || size == 2) {
+ /* can't possibly be an integer guest reg. Ignore. */
+ }
+ else {
// DDD: on Darwin, this assertion fails because we currently do a
// 'post_reg_write' on the 'guest_CC_DEP1' pseudo-register.
+ // JRS 2009July13: we should change is_integer_guest_reg()
+ // to accept guest_CC_DEP* and guest_CC_NDEP
+ // as legitimate pointer-holding registers
tl_assert(0);
}
// VG_(set_thread_shadow_archreg)( tid, reg, (UInt)NONPTR );