diff options
author | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2009-07-13 10:00:06 +0000 |
---|---|---|
committer | sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2009-07-13 10:00:06 +0000 |
commit | b87a639f32adefb97c70079ee75e57d243bdc6de (patch) | |
tree | bf76342f5f86dd249d6e8ac5327eb8215595a11e /exp-ptrcheck/h_main.c | |
parent | d4f90d24fc0b3c70e427fee9d1700f58a4a5709d (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.c | 10 |
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 ); |