Lines Matching refs:addr
21 uptr addr, uptr size, in TryTraceMemoryAccess() argument
39 ev->addr = CompressAddr(addr); in TryTraceMemoryAccess()
50 evex->addr = CompressAddr(addr); in TryTraceMemoryAccess()
57 uptr addr, uptr size, in TryTraceMemoryAccessRange() argument
72 ev->addr = CompressAddr(addr); in TryTraceMemoryAccessRange()
78 void TraceMemoryAccessRange(ThreadState *thr, uptr pc, uptr addr, uptr size, in TraceMemoryAccessRange() argument
80 if (LIKELY(TryTraceMemoryAccessRange(thr, pc, addr, size, typ))) in TraceMemoryAccessRange()
83 UNUSED bool res = TryTraceMemoryAccessRange(thr, pc, addr, size, typ); in TraceMemoryAccessRange()
95 void TraceMutexLock(ThreadState *thr, EventType type, uptr pc, uptr addr, in TraceMutexLock() argument
108 ev.addr = CompressAddr(addr); in TraceMutexLock()
112 void TraceMutexUnlock(ThreadState *thr, uptr addr) { in TraceMutexUnlock() argument
120 ev.addr = CompressAddr(addr); in TraceMutexUnlock()
175 void MemoryAccessImpl1(ThreadState *thr, uptr addr, int kAccessSizeLog, in MemoryAccessImpl1() argument
239 void UnalignedMemoryAccess(ThreadState *thr, uptr pc, uptr addr, uptr size, in UnalignedMemoryAccess() argument
247 if (size >= 8 && (addr & ~7) == ((addr + 7) & ~7)) { in UnalignedMemoryAccess()
250 } else if (size >= 4 && (addr & ~7) == ((addr + 3) & ~7)) { in UnalignedMemoryAccess()
253 } else if (size >= 2 && (addr & ~7) == ((addr + 1) & ~7)) { in UnalignedMemoryAccess()
257 MemoryAccess(thr, pc, addr, kAccessSizeLog, kAccessIsWrite, kIsAtomic); in UnalignedMemoryAccess()
258 addr += size1; in UnalignedMemoryAccess()
350 ALWAYS_INLINE USED void MemoryAccess(ThreadState *thr, uptr pc, uptr addr, in MemoryAccess() argument
353 RawShadow *shadow_mem = MemToShadow(addr); in MemoryAccess()
357 (int)thr->fast_state.tid(), (void *)pc, (void *)addr, in MemoryAccess()
362 if (!IsAppMem(addr)) { in MemoryAccess()
363 Printf("Access to non app mem %zx\n", addr); in MemoryAccess()
364 DCHECK(IsAppMem(addr)); in MemoryAccess()
367 Printf("Bad shadow addr %p (%zx)\n", shadow_mem, addr); in MemoryAccess()
384 cur.SetAddr0AndSizeLog(addr & 7, kAccessSizeLog); in MemoryAccess()
400 MemoryAccessImpl1(thr, addr, kAccessSizeLog, kAccessIsWrite, kIsAtomic, in MemoryAccess()
405 ALWAYS_INLINE USED void MemoryAccessImpl(ThreadState *thr, uptr addr, in MemoryAccessImpl() argument
414 MemoryAccessImpl1(thr, addr, kAccessSizeLog, kAccessIsWrite, kIsAtomic, in MemoryAccessImpl()
418 static void MemoryRangeSet(ThreadState *thr, uptr pc, uptr addr, uptr size, in MemoryRangeSet() argument
425 uptr offset = addr % kShadowCell; in MemoryRangeSet()
430 addr += offset; in MemoryRangeSet()
433 DCHECK_EQ(addr % 8, 0); in MemoryRangeSet()
436 if (!IsAppMem(addr) || !IsAppMem(addr + size - 1)) in MemoryRangeSet()
443 RawShadow *p = MemToShadow(addr); in MemoryRangeSet()
454 RawShadow *begin = MemToShadow(addr); in MemoryRangeSet()
475 void MemoryResetRange(ThreadState *thr, uptr pc, uptr addr, uptr size) { in MemoryResetRange() argument
476 MemoryRangeSet(thr, pc, addr, size, 0); in MemoryResetRange()
479 void MemoryRangeFreed(ThreadState *thr, uptr pc, uptr addr, uptr size) { in MemoryRangeFreed() argument
487 MemoryAccessRange(thr, pc, addr, size, true); in MemoryRangeFreed()
498 MemoryRangeSet(thr, pc, addr, size, s.raw()); in MemoryRangeFreed()
501 void MemoryRangeImitateWrite(ThreadState *thr, uptr pc, uptr addr, uptr size) { in MemoryRangeImitateWrite() argument
510 MemoryRangeSet(thr, pc, addr, size, s.raw()); in MemoryRangeImitateWrite()
513 void MemoryRangeImitateWriteOrResetRange(ThreadState *thr, uptr pc, uptr addr, in MemoryRangeImitateWriteOrResetRange() argument
516 MemoryRangeImitateWrite(thr, pc, addr, size); in MemoryRangeImitateWriteOrResetRange()
518 MemoryResetRange(thr, pc, addr, size); in MemoryRangeImitateWriteOrResetRange()
521 void MemoryAccessRange(ThreadState *thr, uptr pc, uptr addr, uptr size, in MemoryAccessRange() argument
526 RawShadow *shadow_mem = MemToShadow(addr); in MemoryAccessRange()
528 (void *)pc, (void *)addr, (int)size, is_write); in MemoryAccessRange()
531 if (!IsAppMem(addr)) { in MemoryAccessRange()
532 Printf("Access to non app mem %zx\n", addr); in MemoryAccessRange()
533 DCHECK(IsAppMem(addr)); in MemoryAccessRange()
535 if (!IsAppMem(addr + size - 1)) { in MemoryAccessRange()
536 Printf("Access to non app mem %zx\n", addr + size - 1); in MemoryAccessRange()
537 DCHECK(IsAppMem(addr + size - 1)); in MemoryAccessRange()
540 Printf("Bad shadow addr %p (%zx)\n", shadow_mem, addr); in MemoryAccessRange()
545 addr + size - 1); in MemoryAccessRange()
565 bool unaligned = (addr % kShadowCell) != 0; in MemoryAccessRange()
568 for (; addr % kShadowCell && size; addr++, size--) { in MemoryAccessRange()
572 cur.SetAddr0AndSizeLog(addr & (kShadowCell - 1), kAccessSizeLog); in MemoryAccessRange()
573 MemoryAccessImpl(thr, addr, kAccessSizeLog, is_write, false, shadow_mem, in MemoryAccessRange()
579 for (; size >= kShadowCell; addr += kShadowCell, size -= kShadowCell) { in MemoryAccessRange()
584 MemoryAccessImpl(thr, addr, kAccessSizeLog, is_write, false, shadow_mem, in MemoryAccessRange()
589 for (; size; addr++, size--) { in MemoryAccessRange()
593 cur.SetAddr0AndSizeLog(addr & (kShadowCell - 1), kAccessSizeLog); in MemoryAccessRange()
594 MemoryAccessImpl(thr, addr, kAccessSizeLog, is_write, false, shadow_mem, in MemoryAccessRange()