ed39800a83baf5bffbe391f3974eb2af0f415f80 |
|
21-Jun-2017 |
Elliott Hughes <enh@google.com> |
Upgrade to valgrind 3.13.0 (15 June 2017). Release 3.13.0 (15 June 2017) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.13.0 is a feature release with many improvements and the usual collection of bug fixes. This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12. * ==================== CORE CHANGES =================== * The translation cache size has been increased to keep up with the demands of large applications. The maximum number of sectors has increased from 24 to 48. The default number of sectors has increased from 16 to 32 on all targets except Android, where the increase is from 6 to 12. * The amount of memory that Valgrind can use has been increased from 64GB to 128GB. In particular this means your application can allocate up to about 60GB when running on Memcheck. * Valgrind's default load address has been changed from 0x3800'0000 to 0x5800'0000, so as to make it possible to load larger executables. This should make it possible to load executables of size at least 1200MB. * A massive spaceleak caused by reading compressed debuginfo files has been fixed. Valgrind should now be entirely usable with gcc-7.0 "-gz" created debuginfo. * The C++ demangler has been updated. * Support for demangling Rust symbols has been added. * A new representation of stack traces, the "XTree", has been added. An XTree is a tree of stacktraces with data associated with the stacktraces. This is used by various tools (Memcheck, Helgrind, Massif) to report on the heap consumption of your program. Reporting is controlled by the new options --xtree-memory=none|allocs|full and --xtree-memory-file=<file>. A report can also be produced on demand using the gdbserver monitor command 'xtmemory [<filename>]>'. The XTree can be output in 2 formats: 'callgrind format' and 'massif format. The existing visualisers for these formats (e.g. callgrind_annotate, KCachegrind, ms_print) can be used to visualise and analyse these reports. Memcheck can also produce XTree leak reports using the Callgrind file format. For more details, see the user manual. * ================== PLATFORM CHANGES ================= * ppc64: support for ISA 3.0B and various fixes for existing 3.0 support * amd64: fixes for JIT failure problems on long AVX2 code blocks * amd64 and x86: support for CET prefixes has been added * arm32: a few missing ARMv8 instructions have been implemented * arm64, mips64, mips32: an alternative implementation of Load-Linked and Store-Conditional instructions has been added. This is to deal with processor implementations that implement the LL/SC specifications strictly and as a result cause Valgrind to hang in certain situations. The alternative implementation is automatically enabled at startup, as required. You can use the option --sim-hints=fallback-llsc to force-enable it if you want. * Support for OSX 10.12 has been improved. * On Linux, clone handling has been improved to honour CLONE_VFORK that involves a child stack. Note however that CLONE_VFORK | CLONE_VM is handled like CLONE_VFORK (by removing CLONE_VM), so applications that depend on CLONE_VM exact semantics will (still) not work. * The TileGX/Linux port has been removed because it appears to be both unused and unsupported. * ==================== TOOL CHANGES ==================== * Memcheck: - Memcheck should give fewer false positives when running optimised Clang/LLVM generated code. - Support for --xtree-memory and 'xtmemory [<filename>]>'. - New command line options --xtree-leak=no|yes and --xtree-leak-file=<file> to produce the end of execution leak report in a xtree callgrind format file. - New option 'xtleak' in the memcheck leak_check monitor command, to produce the leak report in an xtree file. * Massif: - Support for --xtree-memory and 'xtmemory [<filename>]>'. - For some workloads (typically, for big applications), Massif memory consumption and CPU consumption has decreased significantly. * Helgrind: - Support for --xtree-memory and 'xtmemory [<filename>]>'. - addition of client request VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN, useful for Ada gnat compiled applications. * ==================== OTHER CHANGES ==================== * For Valgrind developers: in an outer/inner setup, the outer Valgrind will append the inner guest stacktrace to the inner host stacktrace. This helps to investigate the errors reported by the outer, when they are caused by the inner guest program (such as an inner regtest). See README_DEVELOPERS for more info. * To allow fast detection of callgrind files by desktop environments and file managers, the format was extended to have an optional first line that uniquely identifies the format ("# callgrind format"). Callgrind creates this line now, as does the new xtree functionality. * File name template arguments (such as --log-file, --xtree-memory-file, ...) have a new %n format letter that is replaced by a sequence number. * "--version -v" now shows the SVN revision numbers from which Valgrind was built. * ==================== FIXED BUGS ==================== The following bugs have been fixed or resolved. Note that "n-i-bz" stands for "not in bugzilla" -- that is, a bug that was reported to us but never got a bugzilla entry. We encourage you to file bugs in bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather than mailing the developers (or mailing lists) directly -- bugs that are not entered into bugzilla tend to get forgotten about or ignored. To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX where XXXXXX is the bug number as listed below. 162848 --log-file output isn't split when a program forks 340777 Illegal instruction on mips (ar71xx) 341481 MIPS64: Iop_CmpNE32 triggers false warning on MIPS64 platforms 342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones to a different stack. 344139 x86 stack-seg overrides, needed by the Wine people 344524 store conditional of guest applications always fail - observed on Octeon3(MIPS) 348616 Wine/valgrind: noted but unhandled ioctl 0x5390 [..] (DVD_READ_STRUCT) 352395 Please provide SVN revision info in --version -v 352767 Wine/valgrind: noted but unhandled ioctl 0x5307 [..] (CDROMSTOP) 356374 Assertion 'DRD_(g_threadinfo)[tid].pt_threadid != INVALID_POSIX_THREADID' failed 358213 helgrind/drd bar_bad testcase hangs or crashes with new glibc pthread barrier implementation 358697 valgrind.h: Some code remains even when defining NVALGRIND 359202 Add musl libc configure/compile 360415 amd64 instructions ADCX and ADOX are not implemented in VEX == 372828 (vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10) 360429 unhandled ioctl 0x530d with no size/direction hints (CDROMREADMODE1) 362223 assertion failed when .valgrindrc is a directory instead of a file 367543 bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags 367942 Segfault vgPlain_do_sys_sigaction (m_signals.c:1138) 368507 can't malloc chunks larger than about 34GB 368529 Android arm target link error, missing atexit and pthread_atfork 368863 WARNING: unhandled arm64-linux syscall: 100 (get_robust_list) 368865 WARNING: unhandled arm64-linux syscall: 272 (kcmp) 368868 disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8) 368917 WARNING: unhandled arm64-linux syscall: 218 (request_key) 368918 WARNING: unhandled arm64-linux syscall: 127 (sched_rr_get_interval) 368922 WARNING: unhandled arm64-linux syscall: 161 (sethostname) 368924 WARNING: unhandled arm64-linux syscall: 84 (sync_file_range) 368925 WARNING: unhandled arm64-linux syscall: 130 (tkill) 368926 WARNING: unhandled arm64-linux syscall: 97 (unshare) 369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr) 370028 Reduce the number of compiler warnings on MIPS platforms 370635 arm64 missing syscall getcpu 371225 Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64 371227 Clean AArch64 syscall table 371412 Rename wrap_sys_shmat to sys_shmat like other wrappers 371471 Valgrind complains about non legit memory leaks on placement new (C++) 371491 handleAddrOverrides() is [incorrect] when ASO prefix is used 371503 disInstr(arm64): unhandled instruction 0xF89F0000 371869 support '%' in symbol Z-encoding 371916 execution tree xtree concept 372120 c++ demangler demangles symbols which are not c++ 372185 Support of valgrind on ARMv8 with 32 bit executable 372188 vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10 0x10 0x48 (PCMPxSTRx $0x10) 372195 Power PC, xxsel instruction is not always recognized. 372504 Hanging on exit_group 372600 process loops forever when fatal signals are arriving quickly 372794 LibVEX (arm32 front end): 'Assertion szBlg2 <= 3' failed 373046 Stacks registered by core are never deregistered 373069 memcheck/tests/leak_cpp_interior fails with GCC 5.1+ 373086 Implement additional Xen hypercalls 373192 Calling posix_spawn in glibc 2.24 completely broken 373488 Support for fanotify API on ARM64 architecture == 368864 WARNING: unhandled arm64-linux syscall: 262 (fanotify_init) 373555 Rename BBPTR to GSPTR as it denotes guest state pointer only 373938 const IRExpr arguments for matchIRExpr() 374719 some spelling fixes 374963 increase valgrind's load address to prevent mmap failure 375514 valgrind_get_tls_addr() does not work in case of static TLS 375772 +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_(find_rx_mapping)() 375806 Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24 375839 Temporary storage exhausted, with long sequence of vfmadd231ps insns == 377159 "vex: the `impossible' happened" still present == 375150 Assertion 'tres.status == VexTransOK' failed == 378068 valgrind crashes on AVX2 function in FFmpeg 376142 Segfaults on MIPS Cavium Octeon boards 376279 disInstr(arm64): unhandled instruction 0xD50320FF 376455 Solaris: unhandled syscall lgrpsys(180) 376518 Solaris: unhandled fast trap getlgrp(6) 376611 ppc64 and arm64 don't know about prlimit64 syscall 376729 PPC64, remove R2 from the clobber list == 371668 376956 syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses to be wrongly marked as addressable 377066 Some Valgrind unit tests fail to compile on Ubuntu 16.10 with PIE enabled by default 377376 memcheck/tests/linux/getregset fails with glibc2.24 377427 PPC64, lxv instruction failing on odd destination register 377478 PPC64: ISA 3.0 setup fixes 377698 Missing memory check for futex() uaddr arg for FUTEX_WAKE and FUTEX_WAKE_BITSET, check only 4 args for FUTEX_WAKE_BITSET, and 2 args for FUTEX_TRYLOCK_PI 377717 Fix massive space leak when reading compressed debuginfo sections 377891 Update Xen 4.6 domctl wrappers 377930 fcntl syscall wrapper is missing flock structure check 378524 libvexmultiarch_test regression on s390x and ppc64 378535 Valgrind reports INTERNAL ERROR in execve syscall wrapper 378673 Update libiberty demangler 378931 Add ISA 3.0B additional isnstructions, add OV32, CA32 setting support 379039 syscall wrapper for prctl(PR_SET_NAME) must not check more than 16 bytes 379094 Valgrind reports INTERNAL ERROR in rt_sigsuspend syscall wrapper 379371 UNKNOWN task message [id 3444, to mach_task_self(), reply 0x603] (task_register_dyld_image_infos) 379372 UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603] (task_register_dyld_shared_cache_image_info) 379390 unhandled syscall: mach:70 (host_create_mach_voucher_trap) 379473 MIPS: add support for rdhwr cycle counter register 379504 remove TileGX/Linux port 379525 Support more x86 nop opcodes 379838 disAMode(x86): not an addr! 379703 PC ISA 3.0 fixes: stxvx, stxv, xscmpexpdp instructions 379890 arm: unhandled instruction: 0xEBAD 0x1B05 (sub.w fp, sp, r5, lsl #4) 379895 clock_gettime does not execute POST syscall wrapper 379925 PPC64, mtffs does not set the FPCC and C bits in the FPSCR correctly 379966 WARNING: unhandled amd64-linux syscall: 313 (finit_module) 380200 xtree generated callgrind files refer to files without directory name 380202 Assertion failure for cache line size (cls == 64) on aarch64. 380397 s390x: __GI_strcspn() replacement needed n-i-bz Fix pub_tool_basics.h build issue with g++ 4.4.7. (3.13.0.RC1: 2 June 2017, vex r3386, valgrind r16434) (3.13.0.RC2: 9 June 2017, vex r3389, valgrind r16443) (3.13.0: 14 June 2017, vex r3396, valgrind r16446) Bug: N/A Test: manual Change-Id: Id4498a49f462c3689cbcb35c15f96a8c7e3cea17
/external/valgrind/memcheck/mc_translate.c
|
a0664b9ca67b594bd6f570a61d3301167a24750c |
|
19-Apr-2017 |
Elliott Hughes <enh@google.com> |
Upgrade to valgrind 3.12.0. Release 3.12.0 (20 October 2016) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.12.0 is a feature release with many improvements and the usual collection of bug fixes. This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX 10.10 and AMD64/MacOSX 10.10. There is also preliminary support for X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux. * ================== PLATFORM CHANGES ================= * POWER: Support for ISA 3.0 has been added * mips: support for O32 FPXX ABI has been added. * mips: improved recognition of different processors * mips: determination of page size now done at run time * amd64: Partial support for AMD FMA4 instructions. * arm, arm64: Support for v8 crypto and CRC instructions. * Improvements and robustification of the Solaris port. * Preliminary support for MacOS 10.12 (Sierra) has been added. Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64) where possible. Valgrind's support for 32-bit x86 has stagnated in recent years and has fallen far behind that for 64-bit x86 instructions. By contrast 64-bit x86 is well supported, up to and including AVX2. * ==================== TOOL CHANGES ==================== * Memcheck: - Added meta mempool support for describing a custom allocator which: - Auto-frees all chunks assuming that destroying a pool destroys all objects in the pool - Uses itself to allocate other memory blocks - New flag --ignore-range-below-sp to ignore memory accesses below the stack pointer, if you really have to. The related flag --workaround-gcc296-bugs=yes is now deprecated. Use --ignore-range-below-sp=1024-1 as a replacement. * DRD: - Improved thread startup time significantly on non-Linux platforms. * DHAT - Added collection of the metric "tot-blocks-allocd" * ==================== OTHER CHANGES ==================== * Replacement/wrapping of malloc/new related functions is now done not just for system libraries by default, but for any globally defined malloc/new related function (both in shared libraries and statically linked alternative malloc implementations). The dynamic (runtime) linker is excluded, though. To only intercept malloc/new related functions in system libraries use --soname-synonyms=somalloc=nouserintercepts (where "nouserintercepts" can be any non-existing library name). This new functionality is not implemented for MacOS X. * The maximum number of callers in a suppression entry is now equal to the maximum size for --num-callers (500). Note that --gen-suppressions=yes|all similarly generates suppressions containing up to --num-callers frames. * New and modified GDB server monitor features: - Valgrind's gdbserver now accepts the command 'catch syscall'. Note that you must have GDB >= 7.11 to use 'catch syscall' with gdbserver. * New option --run-cxx-freeres=<yes|no> can be used to change whether __gnu_cxx::__freeres() cleanup function is called or not. Default is 'yes'. * Valgrind is able to read compressed debuginfo sections in two formats: - zlib ELF gABI format with SHF_COMPRESSED flag (gcc option -gz=zlib) - zlib GNU format with .zdebug sections (gcc option -gz=zlib-gnu) * Modest JIT-cost improvements: the cost of instrumenting code blocks for the most common use case (x86_64-linux, Memcheck) has been reduced by 10%-15%. * Improved performance for programs that do a lot of discarding of instruction address ranges of 8KB or less. * The C++ symbol demangler has been updated. * More robustness against invalid syscall parameters on Linux. * ==================== FIXED BUGS ==================== The following bugs have been fixed or resolved. Note that "n-i-bz" stands for "not in bugzilla" -- that is, a bug that was reported to us but never got a bugzilla entry. We encourage you to file bugs in bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather than mailing the developers (or mailing lists) directly -- bugs that are not entered into bugzilla tend to get forgotten about or ignored. To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX where XXXXXX is the bug number as listed below. 191069 Exiting due to signal not reported in XML output 199468 Suppressions: stack size limited to 25 while --num-callers allows more frames 212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM) 278744 cvtps2pd with redundant RexW 303877 valgrind doesn't support compressed debuginfo sections. 345307 Warning about "still reachable" memory when using libstdc++ from gcc 5 348345 Assertion fails for negative lineno 351282 V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1 351692 Dumps created by valgrind are not readable by gdb (mips32 specific) 351804 Crash on generating suppressions for "printf" call on OS X 10.10 352197 mips: mmap2() not wrapped correctly for page size > 4096 353083 arm64 doesn't implement various xattr system calls 353084 arm64 doesn't support sigpending system call 353137 www: update info for Supported Platforms 353138 www: update "The Valgrind Developers" page 353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine == 365325 == 357873 353384 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x62 (pcmpXstrX $0x62) 353398 WARNING: unhandled amd64-solaris syscall: 207 353660 XML in auxwhat tag not escaping reserved symbols properly 353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN 353727 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x72 (pcmpXstrX $0x72) 353802 ELF debug info reader confused with multiple .rodata sections 353891 Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed 353917 unhandled amd64-solaris syscall fchdir(120) 353920 unhandled amd64-solaris syscall: 170 354274 arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3) 354392 unhandled amd64-solaris syscall: 171 354797 Vbit test does not include Iops for Power 8 instruction support 354883 tst->os_state.pthread - magic_delta assertion failure on OSX 10.11 == 361351 == 362920 == 366222 354933 Fix documentation of --kernel-variant=android-no-hw-tls option 355188 valgrind should intercept all malloc related global functions 355454 do not intercept malloc related symbols from the runtime linker 355455 stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained 356044 Dwarf line info reader misinterprets is_stmt register 356112 mips: replace addi with addiu 356393 valgrind (vex) crashes because isZeroU happened == 363497 == 364497 356676 arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min) 356678 arm64-linux: unhandled syscall 232 (mincore) 356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND 356823 Unsupported ARM instruction: stlex 357059 x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state 357338 Unhandled instruction for SHA instructions libcrypto Boring SSL 357673 crash if I try to run valgrind with a binary link with libcurl 357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+ 357871 pthread_spin_destroy not properly wrapped 357887 Calls to VG_(fclose) do not close the file descriptor 357932 amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm. 358030 support direct socket calls on x86 32bit (new in linux 4.3) 358478 drd/tests/std_thread.cpp doesn't build with GCC6 359133 Assertion 'eltSzB <= ddpa->poolSzB' failed 359181 Buffer Overflow during Demangling 359201 futex syscall "skips" argument 5 if op is FUTEX_WAIT_BITSET 359289 s390x: popcnt (B9E1) not implemented 359472 The Power PC vsubuqm instruction doesn't always give the correct result 359503 Add missing syscalls for aarch64 (arm64) 359645 "You need libc6-dbg" help message could be more helpful 359703 s390: wire up separate socketcalls system calls 359724 getsockname might crash - deref_UInt should call safe_to_deref 359733 amd64 implement ld.so strchr/index override like x86 359767 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5 359829 Power PC test suite none/tests/ppc64/test_isa_2_07.c uses uninitialized data 359838 arm64: Unhandled instruction 0xD5033F5F (clrex) 359871 Incorrect mask handling in ppoll 359952 Unrecognised PCMPESTRM variants (0x70, 0x19) 360008 Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used 360035 POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits 360378 arm64: Unhandled instruction 0x5E280844 (sha1h s4, s2) 360425 arm64 unsupported instruction ldpsw == 364435 360519 none/tests/arm64/memory.vgtest might fail with newer gcc 360571 Error about the Android Runtime reading below the stack pointer on ARM 360574 Wrong parameter type for an ashmem ioctl() call on Android and ARM64 360749 kludge for multiple .rodata sections on Solaris no longer needed 360752 raise the number of reserved fds in m_main.c from 10 to 12 361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5 361226 s390x: risbgn (EC59) not implemented 361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create' 361354 ppc64[le]: wire up separate socketcalls system calls 361615 Inconsistent termination for multithreaded process terminated by signal 361926 Unhandled Solaris syscall: sysfs(84) 362009 V dumps core on unimplemented functionality before threads are created 362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5 362894 missing (broken) support for wbit field on mtfsfi instruction (ppc64) 362935 [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed 362953 Request for an update to the Valgrind Developers page 363680 add renameat2() support 363705 arm64 missing syscall name_to_handle_at and open_by_handle_at 363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at 363858 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5 364058 clarify in manual limitations of array overruns detections 364413 pselect sycallwrapper mishandles NULL sigmask 364728 Power PC, missing support for several HW registers in get_otrack_shadow_offset_wrk() 364948 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5 365273 Invalid write to stack location reported after signal handler runs 365912 ppc64BE segfault during jm-insns test (RELRO) 366079 FPXX Support for MIPS32 Valgrind 366138 Fix configure errors out when using Xcode 8 (clang 8.0.0) 366344 Multiple unhandled instruction for Aarch64 (0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060) 367995 Integration of memcheck with custom memory allocator 368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer 368412 False positive result for altivec capability check 368416 Add tc06_two_races_xml.exp output for ppc64 368419 Perf Events ioctls not implemented 368461 mmapunmap test fails on ppc64 368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target 369000 AMD64 fma4 instructions unsupported. 369169 ppc64 fails jm_int_isa_2_07 test 369175 jm_vec_isa_2_07 test crashes on ppc64 369209 valgrind loops and eats up all memory if cwd doesn't exist. 369356 pre_mem_read_sockaddr syscall wrapper can crash with bad sockaddr 369359 msghdr_foreachfield can crash when handling bad iovec 369360 Bad sigprocmask old or new sets can crash valgrind 369361 vmsplice syscall wrapper crashes on bad iovec 369362 Bad sigaction arguments crash valgrind 369383 x86 sys_modify_ldt wrapper crashes on bad ptr 369402 Bad set/get_thread_area pointer crashes valgrind 369441 bad lvec argument crashes process_vm_readv/writev syscall wrappers 369446 valgrind crashes on unknown fcntl command 369439 S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER 369468 Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter) 370265 ISA 3.0 HW cap stuff needs updating 371128 BCD add and subtract instructions on Power BE in 32-bit mode do not work n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64 n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap n-i-bz false positive leaks due to aspacemgr merging heap & non heap segments n-i-bz Fix ppoll_alarm exclusion on OS X n-i-bz Document brk segment limitation, reference manual in limit reached msg. n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737] n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206] n-i-bz amd64: memcheck false positive with shr %edx n-i-bz arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]" n-i-bz ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D} n-i-bz DHAT: added collection of the metric "tot-blocks-allocd" (3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094) (3.12.0.RC2: 20 October 2016, vex r3282, valgrind r16096) (3.12.0: 21 October 2016, vex r3282, valgrind r16098) Bug: http://b/37470713 Bug: http://b/29251682 Test: ran runtests-arm(64)?.sh and the bug reporter's specific binary (32- and 64-bit) Change-Id: I43ccbea946d89fc4ae9f355181ac5061d6ce4453
/external/valgrind/memcheck/mc_translate.c
|
72e4640ec92ff566dbba01f69197865016cfeb84 |
|
05-Sep-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changes related to new IROp Iop_RoundF128toInt. See VEX r3183. s390: Add testcase for fixbr. Patch by Andreas Arnez <arnez@linux.vnet.ibm.com>. Part of fixing BZ #350290. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15629 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
2672faefb066656b3c757a711c7eda4189aa2c89 |
|
01-Sep-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rename the new option --expensive-definedness-check introduced in r15594 to --expensive-definedness-checks. (Pluralised it, iow.) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15611 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9ee20ebd0a2f2872b9fc4d93648e044ede2f2d87 |
|
27-Aug-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
New memcheck command line option: --expensive-definedness-check Pertains to BZ #340392 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15594 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b3a1e4bffbdbbf38304f216af405009868f43628 |
|
21-Aug-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates, to include 2015. No functional change. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15577 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9dc5dd68225707ddec0aa432eb3d47e12efa6a4a |
|
21-Aug-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
When scanning the statement list for bogus literals we can stop once the first such literal was found. No need to scan further. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15574 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
290b9cabbd2b2c42db10cd79921403cc231e4f7c |
|
12-Aug-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new ILGop_IdentV128 introduced by vex r3169. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15522 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ad4e979f408239dabbaae955d8ffcb84a51a5c85 |
|
05-Jul-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix typos in source code. Patch by Dmitriy (olshevskiy87@bk.ru). Fixes BZ #349874 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15394 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d4dc5fc0e4091cead54ebbcdfddc60e0f3ff8081 |
|
01-May-2015 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This patch adds a function that allows to directly properly size an xarray when the size is known in advance. 3 places identified where this function can be used trivially. The result is a reduction of 'realloc' operations in core arena, and a small reduction in ttaux arena (it is the nr of operations that decreases, the memory usage itself stays the same (ignoring some 'rounding' effects). E.g. for perf/bigcode 0, we change from core 1085742/ 216745904 totalloc-blocks/bytes, 1085733 searches ttaux 5348/ 6732560 totalloc-blocks/bytes, 5326 searches to core 712666/ 190998592 totalloc-blocks/bytes, 712657 searches ttaux 5319/ 6731808 totalloc-blocks/bytes, 5296 searches For bz2, we switch from core 50285/ 32383664 totalloc-blocks/bytes, 50256 searches ttaux 670/ 245160 totalloc-blocks/bytes, 669 searches to core 32564/ 29971984 totalloc-blocks/bytes, 32535 searches ttaux 605/ 243280 totalloc-blocks/bytes, 604 searches Performance wise, on amd64, this improves memcheck performance on perf tests by 0.0, 0.1 or 0.2 seconds depending on the test. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15173 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7222f649c0dab0f50f5a60f841accc64a127856e |
|
07-Apr-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r3120, that changed the type of Iop_Sqrt64x2 and Iop_Sqrt32x4. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15074 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1f4b1ebde67b0277f4f61ee3a00f8f47163f0678 |
|
06-Apr-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Memcheck: add support for recently added IROps: Iop_F64toF16 Iop_F32toF16 Iop_F16toF64 Iop_F16toF32 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15070 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
143507687feede3a6ff901684859e1e0db3c4f98 |
|
24-Feb-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new IROps added in vex r3092: Iop_RecipStep64Fx2, Iop_RSqrtStep64Fx2 Iop_RSqrtEst64Fx2, Iop_RecipEst64Fx2 Iop_RecpExpF64, Iop_RecpExpF32 --This line, and those below, will be ignored-- M memcheck/mc_translate.c git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14959 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
be9d235a4fa09afd7a3384b335eac5cae9251b1e |
|
28-Jan-2015 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new value ILGop_Ident64 in enum type IRLoadGOp. This tracks vex r3074. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14892 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
f466eef8e53aafcb617997e1ca18b7c829168db8 |
|
02-Jan-2015 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track the IMark changes in VEX r3055. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14844 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
f837aa7d6dfed0424b23b9c46d7fadbc6af2a060 |
|
20-Nov-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
isBogusAtom: handle missing case Ico_F32. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14740 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
3c0c94777f547bcb5eadbe8cb4328debf0f51875 |
|
24-Sep-2014 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Ripple from constifying parameters of instrumentation functions and callbacks from VexTranslateArgs. See VEX r2958. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14564 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7b7b1cbe53ee541a803e1e00b58d58fcee65aa97 |
|
01-Sep-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r2939 (renaming and arg-order change for Iop_Extract{64,V128}). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14404 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
bfd03f8a6388bf367e61b7b2523f34eb215a8168 |
|
26-Aug-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle the new IROps introduced to support ARM64 SIMD. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14362 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
147865ccf6e5711cd910f2b1532da59ad1d78bb9 |
|
26-Aug-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Iop_Rol64x2 was handled as if it were a 32x4 case. This moves it to the right place. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14361 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ee6bb779947e3e5350a083d5e87efa18ffddedcf |
|
24-Aug-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track renaming of {reciprocal, reciprocal sqrt}{estimate, step} primops in vex r2932. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14350 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e541e222ef15d58e1a61f97fcf729468628efa54 |
|
15-Aug-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r2924 (Renaming of Iop_QSalN*, Iop_QShlN* and Iop_QShlN*S) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14282 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4d6ce849ad8534867072dbc7ed31464019e23396 |
|
21-Jul-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r2907, which amongst other things, renamed Iop_QDMulLong* to Iop_QDMull*. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14178 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
55404925be52fe200bf22e31959573df7ba870a4 |
|
26-Jun-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r2890 (renaming of vector subparts-of-lanes-reversal IROps) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14103 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
2e4d5af35b4e326fef32e503d210f3bcc25238cf |
|
26-Jun-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r2889 (rename vector Cls/Clz primops) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14102 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
87a5bad8b2742f75dd60ba505d9f8d660cde3aba |
|
15-Jun-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new IROp Iop_Abs64x2. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14043 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
c46e6ccde63cd661f1f781d78054ef8cd86f8536 |
|
10-Mar-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle IROps introduced by the arm64 port: Iop_ZeroHI64ofV128, Iop_ZeroHI96ofV128, Iop_ZeroHI112ofV128, Iop_ZeroHI120ofV128, Iop_Abs64Fx2, Iop_Neg64Fx2 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13860 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1eb272f53fadb410dd27fb38fb1be75af84868d0 |
|
26-Jan-2014 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle and instrument an extra rounding-mode argument as added by vex r2809 to the following primops: Iop_Add32Fx4, Iop_Sub32Fx4, Iop_Mul32Fx4, Iop_Div32Fx4, Iop_Add64Fx2, Iop_Sub64Fx2, Iop_Mul64Fx2, Iop_Div64Fx2, Iop_Add64Fx4, Iop_Sub64Fx4, Iop_Mul64Fx4, Iop_Div64Fx4, Iop_Add32Fx8, Iop_Sub32Fx8, Iop_Mul32Fx8, Iop_Div32Fx8, git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13781 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a150fe951e31f5bfde41e5c12e65f5a48f07779a |
|
11-Dec-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Select expensive add/sub/cmp interpretations for blocks containing Iop_GetMSBs8x16, since the presence of those usually implies PMOVMSKB instructions in the block, which can mean "inlined string operations". Reduces the noise level a lot in some icc12 -O2 generated sequences. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13757 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 |
|
18-Oct-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates (20XY-2012 ==> 20XY-2013) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e6bd3e49c6f37b871974c3b5212476f1eed3fb77 |
|
18-Oct-2013 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This commit adds testing support for the following instructions: vaddcuq, vadduqm, vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm, vbpermq and vgbbd. The completes adding the Power ISA 2.07 support. Bugzilla 325816 VEX commit id 2790 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13653 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
24e40de8f2127d70117ed9af3bc4474cbc29cb8a |
|
15-Oct-2013 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Power 8 support, phase 5 This commit adds the testcases for the following instructions: vpmsumb, vpmsumh, vpmsumw, vpmsumd, vpermxor, vcipher, vcipherlast, vncipher, vncipherlast, vsbox, vclzb, vclzw, vclzh, vclzd, vpopcntb, vpopcnth, vpopcntw, vpopcntd, vnand, vorc, veqv, vshasigmaw, vshasigmad, bcdadd, bcdsub The VEX commit that added the support for the above instructions was commit 2789. The patch is for Bugzilla 325628 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13646 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6277067119ad816282b8e57727295b3adee14075 |
|
01-Oct-2013 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add tests for the phase 3 ISA 2.07 code patch This patch adds testcases to an existing testcase source file to test the new instructions which were added to VEX support in the phase 3 ISA 2.07 code patch. The patch also makes a small change to memcheck's vbit tester code to allow successful execution. Signed-off-by: Maynard Johnson <maynardj@us.ibm.com> Bugzilla 324894. Corresponding VEX commit 2779 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13594 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6756454dd872134b243a7a4ff43b953c5bb309ee |
|
16-Aug-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for direct V256 shadow helper returns -- memcheck side. (Patrick J. LoPresti, lopresti@gmail.com). Bug 294285. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13500 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a5c3ecb923e27dcd995ba763d436b477e1e2a61e |
|
15-Aug-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Followup to VEX r2742 which eliminates IRExprP__VECRET and IRExprP__BBPTR and adds Iex_VECRET and Iex_BBPTR. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13498 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
dfbf294f08ac004a60cb3b528d544cb7d0404eb0 |
|
12-Aug-2013 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Initial ISA 2.07 support for POWER8-tuned libc The IBM Power ISA 2.07 has been published on power.org, and IBM's new POWER8 processor is under development to implement that ISA. This patch provides initial runtime and testsuite support for running Valgrind on POWER8 systems running a soon-to-be released Linux distribution. This Linux distro will include a POWER8-tuned libc that uses a subset of the new instructions from ISA 2.07. Since virtually all applications link with libc, it would be impossible to run an application under Valgrind on this distro without adding support for these new instructions to Valgrind, so that's the intent of this patch. Note that applications built on this distro will *not* employ new POWER8 instructions by default. There are roughly 150 new instructions in the Power ISA 2.07, including hardware transaction management (HTM). Support for these new instructions (modulo the subset included in this bug) will be added to Valgrind in a phased approach, similar to what we did for Power ISA 2.06. Bugzilla 322294, VEX commit 2740 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13494 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
21a5f8cd6b05e19a644ee9a9f8623f0be1d4badc |
|
08-Aug-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix # 294285: --partial-loads-ok does not work for 16-byte SSE loads (core fixes for the memcheck handling of 128 bit loads) (Patrick J. LoPresti, lopresti@gmail.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7a3706554059125b018dcd12267db8d9c3e9176f |
|
04-Jul-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle Iop_QAdd16Ux2. Needed for recent ARM v6media additions committed in vex r2731. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13446 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ba5693c7155e28fc5d2cbe1be751a77fb2097d02 |
|
17-Jun-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
valgrind side changes to support the new IRops introduced in VEX r2727 (conversion ops between binary floating point and decimal floating point). Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com). Part of fixing BZ 307113. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13428 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
054684ff9ed37d70584d6a954df3382edd8b9729 |
|
06-Jun-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
More comment only changes as the "DFP rounding mode" has been removed. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13421 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
733b4db9e2385911103f8b10ec2a5a72f9329941 |
|
06-Jun-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Comment only changes: IRRoundingModeDFP -> IRRoundingMode. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13419 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b9e6d244e474c971ea88181de1f83a30057db9da |
|
11-May-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
complainIfUndefined: reinstate the 3rd argument (guard) so as to make the definedness check and possible shadow temp set-to-defined be optional. Use this to properly instrument IRLoadG and IRStoreG, so that if the load/store does not happen, not only is the validity of the address not checked, neither is the definedness. This fixes a regression introduced by the COMEM branch on ARM, in which conditional loads/stores with addresses which are undefined at runtime and with guards which are false, would generate false errors. Also extensively re-checked the check-generation machinery and updated a bunch of comments. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13386 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
39b08d85652c321c2779a0256027d66144847c3c |
|
05-May-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
valgrind side support for Iop_F64toD64, Iop_D64toF64 Iop_F64toD128, Iop_D128toF64, Iop_F128toD128, Iop_D128toF128 Companion patch of VEX r2717. Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com). Part of fixing BZ #307113 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13382 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a2f309566f7bdd7ac8e2347ef50e873894f95498 |
|
27-Mar-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Memcheck fixes for new IR ops introduced by r2702 (which added support for AVX2, BMI1, BMI2 and FMA instructions). Part of #305728. (Jakub Jelinek, jakub@redhat.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13338 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
07bfda2113275e92f0eacf9aaf5d6944a75fe86e |
|
29-Jan-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Non functional change (formatting, comments) related to newly created Iex_ITE. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13276 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a28c43c3aac5a8b1c5cdf4e47acab1b1f79de778 |
|
29-Jan-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix the mkLazy3 case for I32 x I8 x I128 -> I128. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13275 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
5686b2d7e97a6f65e436531dac999a52a3d3dac9 |
|
29-Jan-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Infrastructure cleanup part 2. valgrind side changes. Replace Iex_Mux0X with Iex_ITE (if-then-else). Companion patch to VEX r2668. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13273 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
cc9616506450cb02944b62dc07774c29462bfefc |
|
26-Jan-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changes to track r2664, which changed the type of the condition field of Mux0X from Ity_I8 to Ity_I1. Patch from Florian Krohm. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13267 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
fb583cbc61a1d82a4a970887a6d54737038b71b6 |
|
22-Jan-2013 |
carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix implementation of the DFP integer operands. The implementation of integer operands doesn't really match the documentation for the Iop. Take for example Iop_ExtractExpD64. It is documented as D64 -> I64 but the implementation of the UNARY is defined as UNARY(Ity_D64, Ity_D64). The result is an integer that is stored in an integer format in a floating point register. On the IBM s390 however, the architecture stores the integer value in a general purpose register (GPR) not a floating point register. This issue exists with the implementation of 11 Iops where the PPC implementation has either a source or destination whose value is an integer but the value is stored in a floating point register in an integer format. After reviewing the PPC implementation with the s390 developer, it was agreed the cleanest way to fix this is to change the PPC implementation. The BINOP will be changed to be consistent with the Iop description. This means the PPC instruction implementation of the PPC instruction in guest_ppc_toIR.c will need to reinterpret integer source operands as integers which will move the value from a floating point register to an integer register before calling binop(). The underlying PPC implementation of the unop() for the specific Iop will also need to change to move the value from the integer register back to the floating point register so the native instruction can be issued with the integer value in a floating point register. It was decided that making the changed in PPC, rather then having the s390 reinterpret integers as DFP and then move the value back to an integer register, was preferable as it makes the implementation of the unop(), binops(), triop() consistent with the definition of the Iop. This patch also includes the needed changes for the vbit tester. The Iop definitions in memcheck/tests/vbit-test/util.c had to be updated to be consitent with the changes in the Iops as documented below. Also, the function mkLazy3() in memcheck/mc_translate.c had to be updated to handle the I32 x I8 x I64 -> I64 and I32 x I8 x I128 -> I128 cases. The specific list of changes are as follows: Iop name in pub/libvex_ir.h documented type type of UNARY/BINARY/TERNARY in priv/ir_defs.c ------------------------------------------------------- Iop_ExtractExpD64 D64 -> I64 UNARY(Ity_D64, Ity_D64); (current) UNARY(Ity_D64, Ity_I64); (fix) Iop_ExtractExpD128 D128 -> I64 UNARY(Ity_D128, Ity_D64); (current) UNARY(Ity_D128, Ity_I64); (fix) Iop_InsertExpD64 I64 x I64 -> D64 I64 x D64 -> D64 (fix definition) BINARY(Ity_D64,Ity_D64, Ity_D64); (current) BINARY(Ity_I64,Ity_D64, Ity_D64); (fix) Iop_InsertExpD128 I64 x I128 -> D128 I64 x D128 -> D128 (fix definition) BINARY(Ity_D64,Ity_D128, Ity_D128); (current) BINARY(Ity_I64,Ity_D128, Ity_D128); (fix) Iop_I64StoD128 I64S -> D128 UNARY(Ity_D64, Ity_D128); (current) UNARY(Ity_I64, Ity_D128); (fix) Iop_D64toI64S IRRoundingModeDFP(I32) x D64 -> I64 BINARY(ity_RMode, Ity_D64, Ity_D64) (current) BINARY(ity_RMode, Ity_D64, Ity_I64) (fix) Iop_D128toI64S IRRoundingModeDFP(I32) x D128 -> I64 BINARY(ity_RMode, Ity_D128, Ity_D64); (current) BINARY(ity_RMode, Ity_D128, Ity_I64); (fix) Iop_I64StoD64 IRRoundingModeDFP(I32) x I64 -> D64 BINARY(ity_RMode, Ity_D64, Ity_D64); (current) BINARY(ity_RMode, Ity_I64, Ity_D64); (fix) Iop_SignificanceRoundD64 IRRoundingModeDFP(I32) x I8 x D64 -> D64 TERNARY(ity_RMode,Ity_D64,Ity_D64, Ity_D64); (current) TERNARY(ity_RMode,Ity_I8,Ity_D64, Ity_D64); (fix) Iop_SignificanceRoundD128 IRRoundingModeDFP(I32) x I8 x D128 -> D128 TERNARY(ity_RMode,Ity_D128,Ity_D128, Ity_D128); (current) TERNARY(ity_RMode,Ity_I8,Ity_D128, Ity_D128); (fix) The patch is for bugzilla 311100 VEX Committed revision 2652 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13260 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6c0aa2cf8701e2ab6c4cc69db30654c24afc7dd5 |
|
21-Jan-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
In mc_translate a NULL guard expression is sometimes passed around functions to indicate a "true" expression. That caused some confusion and led people to believe believe, that IRDirty::guard could be NULL. It cannot. This confusion was indirectly spotted by coverity's checker who figured out that IRDirty::guard was sometimes unconditionally dereferenced and sometimes compared against NULL. Cleaning this up... git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13250 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
cafe50502ae73d6d6d0f214e06a4619e6cb1b278 |
|
17-Jan-2013 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge, from branches/COMEM, revisions 13139 to 13235. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13236 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
53eb2a0f3b35eafb8fa713566ca5b4e6e4f3490c |
|
12-Jan-2013 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add memcheck support for the IROps added in VEX r2631. Adapt vbit-tester. Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com). Part of fixing BZ 307113. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13224 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
974b409a9c293f1341f26bb2cfc13982af76b19b |
|
27-Dec-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
valgrind-side support for Iop_ExtractSigD64 and Iop_ExtractSigD128. See also companion patch VEX r2621. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13211 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
29a36b99ad14c9c5a9aa5e89ff3e0d8274fc0339 |
|
26-Dec-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
valgrind side changes to support Iop_CmpExpD64 and Iop_CmpExpD128. VEX buddy patch is r2617. Enhance testcase for CEDTR and CEXTR. Adapt vbit tester. Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com). This is part of fixing BZ 307113. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13203 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
f4bed371e207f1bb0e52b796ac5f81d93a88245f |
|
21-Dec-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix mc_translate for Iop_D64toD32. Spotted and fixed by Maran Pakkirisamy (maranp@linux.vnet.ibm.com). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13193 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
f517634b4a879b7653efa40d60c62fa3419809ed |
|
13-Dec-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Valgrind-side changes for new primop Iop_GetMSBs8x16, introduced in vex r2590. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13179 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6bd9dc18c043927c1196caba20a327238a179c42 |
|
23-Nov-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changes to allow compilation with -Wwrite-strings. That compiler option is not used for testcases, just for valgrind proper. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13137 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4cfa81b027d5952bfa9cc0ca05638483fde2eb9a |
|
08-Nov-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improve accuracy of definedness tracking through the x86 PMOVMSKB and BSF instructions, as the lack of it causes false positives (Valgrind side). Fixes #308627. (Patrick J. LoPresti <lopresti@gmail.com>) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13108 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a5f894c271248c13e0bb387e5ca33fa122b4819c |
|
21-Oct-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
First round of Char/HChar fixes for memcheck. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13071 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
11f3cc844c38a8388063230bbf7deb69fdf2b812 |
|
21-Oct-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Followup to constification of VEX's external interface (VEX r2555). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13066 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ca503be79ca377d89b1692c37c97a06ed14dad3b |
|
07-Oct-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This is the 2nd installment of the cache info reorganisation. The host's VexArchInfo is passed to the tool instrumentation functions. Purely mechanic patch. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13031 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9fb31093cfbaeba9ebb965b318d07fb344120666 |
|
17-Sep-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle Iop_QSub16Ux2, needed in fix for #304035. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12980 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1b9609aa2638e4c81f3eb0d27fdaa4c944aaf33e |
|
01-Sep-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
s390: Valgrind-side changes to fixing bugzilla #274695: Testcase, vbit tester update, memcheck support for the new IROps, NEWS announcement and opcode list update. Patch by Christian Borntraeger (borntraeger@de.ibm.com). Vbit tester tweaks by myself. Fixes bugzilla #274695. See also companion patch VEX r2496. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12921 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1943eb58b7e3a5c7b7108d33765b810192cda32c |
|
22-Aug-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix propagation of undefinedness for Iop_DPBtoBCD and Iop_BCDtoDPB. Any undefined input bit will cause all output bits to be undefined. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12885 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
537ed2d090e7472a6cb2ee80239d4780551a5f19 |
|
20-Aug-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle the following IRops as they may get generated: Iop_Mul8, Iop_Sar8, Iop_CmpwNEZ32, and Iop_8HLto16. With this change mc_translate now handles all IR ops which are architecture independent, except Iop_LeftXYZ and Iop_Max32U. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12884 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7eb17a827d03c3f7c83f75b6634ea15cbdfede5a |
|
18-Aug-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove memcheck support for IR op Iop_I16StoF32 which is unused. See also VEX r2471. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12877 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
03f8d3fc25f5a45c5826259d1b33b7f310117279 |
|
05-Aug-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to include 2012. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
434ffae63b5e5460c0475dc24cd0383bc63fe1b8 |
|
19-Jul-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Observe guards on dirty helpers in memcheck. This means, that any guest state and/or memory accesses of the helper (and complaints about those) only occur if the guard expression is true at runtime. Definedness of parameters that the helper might have is *always* checked, as parameters are evaluated regardless of the guard expression. New functions: expr2vbits_guarded_Load and gen_guarded_load_b. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12762 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
2157b2c139946c0b70c0e5e2ae2a38de57a43954 |
|
11-Jul-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
RM: Implement QADD and QSUB (valgrind side fixes). Fixes #286917. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12727 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
bd43bfa3f1672bae00037a1a213d8e452735af64 |
|
29-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Generate type-correct IR (always a good thing :-) when instrumenting 256 bit stores with --undef-value-errors=no. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12684 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
350e8f7a0ef0b83d7e9cf2d699284668e5b146f5 |
|
25-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add handling of 256-bit vector FP arithmetic ops, so as to support AVX. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12673 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
cda994be0e7356b10ad5771ffec348e42569762f |
|
08-Jun-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Amend do_shadow_Dirty and do_origins_Dirty so they no longer assert if the helper call touches an odd number of bytes in memory. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12624 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
457cba665b03815e2f375abd093aac35aaab303a |
|
03-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
POWER Processor decimal FP support, part 5. (Valgrind side). Bug #299694. (Carl Love, carll@us.ibm.com and Maynard Johnson, maynardj@us.ibm.com) This patch adds support for Power Decimal Floating Point (DFP) . This is the fifth patch set in the series of five to add the DFP instruction support to Valgrind. Adds support for the ddedpd, ddedpdq, denbcd, denbcdq, dtstsf, and dtstsfq instructions. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12603 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
26441746bda788fc0327527a62427ca562f25311 |
|
02-Jun-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rippled from VEX r2366. Part of reducing size of IRExpr. These are the valgrind bits. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12602 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e2ab2974c8bcaf3863956ba2d5368092a54e0703 |
|
01-Jun-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Ripple from VEX r2363. Part of reducing size of IRExpr. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12599 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
2eecb74d4a8816485c97ae8e535ce25511460bc8 |
|
01-Jun-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track the change to IRDirty guest state effect annotations introduced in vex r2362. mc_translate.c: also do PCast 64->32 a bit more efficiently. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12598 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d39b02261c40ae7b51bd2cdf56f8abf93c87bd46 |
|
31-May-2012 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Reduce size of an IRStmt from 40 bytes to 32 bytes on LP64 by allocating the details of a PutI statement into a struct of its own and link to that (as is being done for Dirty and CAS). These are the valgrind bits (see also VEX r2361). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12596 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
45fa9f4bd1819c7ac0d9469df4e35cee0c130153 |
|
21-May-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add initial support for Intel AVX instructions (Valgrind side). Tracker bug is #273475. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12569 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0892b8268c61648ba031eba3dc83db8f4b036613 |
|
29-Apr-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Test cases for POWER Power Decimal Floating Point (DFP) test class, test group and test exponent instructions dtstdc, dtstdcq, dtstdg, dtstdgq, dtstex and dtstexq. Bug #298862. (Carl Love, carll@us.ibm.com and Maynard Johnson, maynardj@us.ibm.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12546 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
18c72faa664f18877f33a40c8b429f3aa41dc5e2 |
|
23-Apr-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
POWER Processor decimal floating point instruction support, part 3 -- test cases. (Carl Love, carll@us.ibm.com). Bug 298080. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12541 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ea8b02f730f184b4edb9ebe1ad07a5d823ef8155 |
|
12-Apr-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
POWER Processor decimal floating point instruction support: part 2 (bug #297497) (Carl Love, carll@us.ibm.com) (Valgrind side, mostly tests) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12500 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b0ccb4d09a74c94a712b2edf9894b408f270493a |
|
02-Apr-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Initial support for POWER Processor decimal floating point instruction support -- VEX side changes. See #295221. This patch adds test cases. Also adds some minor Memcheck instrumentation tweaks necessitated by the IR changes. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12476 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
54eac25a54a255d5deaa228547d2ef145590929b |
|
27-Mar-2012 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
/* Do expensive interpretation for Iop_Add32 and Iop_Add64 on Darwin. 10.7 is mostly built with LLVM, which uses these for bitfield inserts, and we get a lot of false errors if the cheap interpretation is used, alas. Could solve this much better if we knew which of such adds came from x86/amd64 LEA instructions, since these are the only ones really needing the expensive interpretation, but that would require some way to tag them in the _toIR.c front ends, which is a lot of faffing around. So for now just use the slow and blunt-instrument solution. */ Pertains to, although does not completely solve, #242137. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12467 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6643e96a72e8530a7c8830c02ffb2fb4aee74c88 |
|
17-Jan-2012 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fixes 282230 group allocator for small fixed size, use it for MC_Chunk/SEc vbit * new files include/pub_tool_groupalloc.h and coregrind/m_groupalloc.c implementing a group allocator (based on helgrind group alloc). * include/Makefile.am coregrind/Makefile.am : added pub_tool_groupalloc.h and m_groupalloc.c * helgrind/libhb_core.c : use pub_tool_groupalloc.h/m_groupalloc.c instead of the local implementation. * include/pub_tool_oset.h coregrind/m_oset.c : new function allowing to create an oset that will use a pool allocator. new function allowing to clone an oset (so as to share the pool alloc) * memcheck/tests/unit_oset.c drd/tests/unit_bitmap.c : modified so that it compiles with the new m_oset.c * memcheck/mc_main.c : use group alloc for MC_Chunk memcheck/mc_include.h : declare the MC_Chunk group alloc * memcheck/mc_main.c : use group alloc for the nodes of the secVBitTable OSet * include/pub_tool_hashtable.h coregrind/m_hashtable.c : pass the free node function in the VG_(HT_destruct). (needed as the hashtable user can allocate a node with its own alloc, the hash table destroy must be able to free the nodes with the user own free). * coregrind/m_gdbserver/m_gdbserver.c : pass free function to VG_(HT_destruct) * memcheck/mc_replace_strmem.c memcheck/mc_machine.c memcheck/mc_malloc_wrappers.c memcheck/mc_leakcheck.c memcheck/mc_errors.c memcheck/mc_translate.c : new include needed due to group alloc. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12341 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ec062e8d96a361af9905b5447027819dfbfee01a |
|
23-Oct-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update all copyright dates, from 20xy-2010 to 20xy-2011. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b5a2923ecd25ae8ef4dc412e6af8de28c0b69b23 |
|
22-Oct-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Change and simplify the way that Memcheck instruments saturating narrowing operations. The previous scheme was simply wrong and could cause false negatives, by causing some narrowing operations to have a defined output even when the inputs are undefined. This was what #279698 reported. This patch is a fix for that bug. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12190 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9a2afe98c754faafb035b165bf844733dd896731 |
|
19-Oct-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new Iop_CmpEQ64x2 introduced in vex r2218. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12165 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
169ac048e00bacd4dd5e16843404be9a958832ba |
|
05-Sep-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for new primops added in vex r2199. See Bug 279994 comment 1. (Maynard Johnson, maynardj@us.ibm.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12006 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a201c45bddd4b13c00c171d707ad58b102569f41 |
|
24-Jul-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for IBM Power ISA 2.06 -- stage 2 (handle new primops in Memcheck). Bug 276784. (Maynard Johnson, maynardj@us.ibm.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11907 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6e9de463ef677f093e9f24f126e1b11c28cf59fd |
|
28-Jun-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Delete the AIX5 port. The last release this worked for is 3.4.1, and then only on AIX 5.2 and 5.3. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7ee7d85cd336a7c3486b1e82306ef4bb248c82e0 |
|
16-Jun-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r2163 (en-mass renaming of vector narrowing and widening primops) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11819 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
bb0f6f4dbd082d75928f12e90a13a5d5a4a86d96 |
|
15-Jun-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Unbreak Altivec code following vex r2159 (renaming of vector saturating narrowing primops) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11817 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
2a258897a1f1af8f5c7f0035a546971bce5c00b0 |
|
15-Jun-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Valgrind-side fixes and tests for PACKUSDW, to track r2160. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11816 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9beeb0a25c3734e90926731e9c207c2dfc7cf11f |
|
15-Jun-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track renaming of vector saturating narrowing primops in r2159. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11814 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9943003f546be63b208d02ab57fd31b1c00b8aba |
|
04-May-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
mkLazyN: fix incorrect type decl for 'mergeTy64', as spotted by IBM's BEAM checker. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11726 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
f34eb496099507090f26dcf94bb780da8b3894e5 |
|
15-Apr-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for IBM Power ISA 2.06 -- stage 1. Valgrind-side changes and test cases. Bug #267630 and followup fix #270794. (Maynard Johnson, maynardj@us.ibm.com) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11697 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b5b87408c0c99f9f6938d8cd921e2a5f420577c4 |
|
07-Mar-2011 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind side components. (Florian Krohm <britzel@acm.org> and Christian Borntraeger <borntraeger@de.ibm.com>). Fixes #243404. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
5af0506e418c4b28e7538f8ad7991bb02a206fa7 |
|
18-Oct-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new Iop_Sad8Ux4 introduced in vex r2067. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11452 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
c678b85d7eb4e40d1ccb247a8d879ebde0a09aff |
|
22-Sep-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new 32-bit SIMD integer primops introduced in vex r2037. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11371 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
57f92b0326e164124201034afc0c51dcd8db6d07 |
|
22-Aug-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge from branches/THUMB: tool-side handling of new primops required for NEON support. Requires further checking. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11277 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d376a769d87c219f48bf180546af80bd6a9476f4 |
|
27-Jun-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new primop Iop_RoundF32toInt, needed by SSE4 ROUNDSS (vex r1986). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11189 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b823b8531aedef4c8abff2544ea12aa0795e914d |
|
18-Jun-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Valgrind-side changes needed to go with vex r1984 (Implement SSE4 insns: CMPGTQ PMAXUD PMINUD PMAXSB PMINSB PMULLD) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11181 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9eecbbb9a9cbbd30b903c09a9e04d8efc20bda33 |
|
03-May-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates to 2010. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
aec1be3a7092715756648cf7e62466af5eab73c2 |
|
03-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle Iop_SqrtF32. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11001 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
59570ffbe31930ab4d678754daaeec0715117a3d |
|
01-Jan-2010 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge from branches/ARM, all parts of the ARM-Linux port except for the changes to do with reading and using ELF and DWARF3 info. This breaks all targets except amd64-linux and x86-linux. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10982 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
06f96d01b9471616c142af3b9f4298cb265973cd |
|
31-Dec-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track changes in the names of a few IR primops to do with int<->fp conversions, as introduced in vex r1949. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10980 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
db5907d7b94ce492f29a96c95e186fdcda23a149 |
|
26-Nov-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r1930 (Change the IR representation of load linked and store conditional.) Completes the fix of #215771. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10957 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
afed4c5c73996f3039bf7dddc9cbe3fa105b68f9 |
|
12-Jul-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r1907 (introduce Iop_CmpCas{EQ,NE}{8,16,32,64} and use them for CAS-success? tests). Detailed background and rationale in memcheck/mc_translate, comment "COMMENT_ON_CasCmpEQ". This commit changes the Memcheck instrumentation of IRCAS so as not to do a definedness check on the success/failure indication. Also, by being able to identify via the Iop_CasCmpEQ primitives any such checks independently created by front ends, it can avoid instrumenting these too. All this is to avoid reporting new false positives observed on Fedora 7 (x86?) and openSUSE 10.2 (x86) following the recent merge of branches/DCAS. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10432 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1c0ce7a9edf8772773f6216dbad4bb04317d23b6 |
|
01-Jul-2009 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in branches/DCAS. This branch adds proper support for atomic instructions, proper in the sense that the atomicity is preserved through the compilation pipeline, and thus in the instrumented code. These changes track the IR changes added by vex r1901. They primarily update the instrumentation functions in all tools to handle the changes, with the exception of exp-ptrcheck, which needs some further work in order to be able to run threaded code. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10392 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4c245e595b9f6300d3120408ca873f7115d9cc7d |
|
16-Mar-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix all the non-VEX problems identified with the Clang Static Analyzer. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9f207460d70d38c46c9e81996a3dcdf90961c6db |
|
10-Mar-2009 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Updated copyright years. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
17b4743b17a25cade63cdd72c8f5a558d412c39b |
|
17-Dec-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add another magic constant to the Iex_Const case in isBogusAtom, as seen in glibc on ppc32. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8828 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
8c93fcc1247c3c9fc3ac0617c607825a27c46c9d |
|
30-Oct-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Origin tracking: handle 16-bit excess in guest state reads/writes. This gets rid of the messages "Approx: do_origins_Dirty(R): missed %d bytes\n" and "Approx: do_origins_Dirty(W): missed %d bytes\n". git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8719 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9c606bd8634cd6b67bb41fa645b5c639668cfa2d |
|
18-Sep-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge all remaining changes from branches/PTRCHECK. These are some relatively minor extensions to m_debuginfo, a major overhaul of m_debuginfo/readdwarf3.c to get its space usage under control, and changes throughout the system to enable heap-use profiling. The majority of the merged changes were committed into branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and 8161. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
dead90ad64759d1c800951ea2372949d43b29cc5 |
|
08-Aug-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new IR ops Iop_RoundF64toF64_*. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8520 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
afa617b9d5792ae31fc201b3549da3e3288bb37d |
|
22-Jul-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Origin-tracking fix: make sure that we have a shadow-origin (B) temporary defined for every (original) temp used in the block's IR preamble, as is already done of the shadow-definedness (V) temporaries. Otherwise we can end up generating references to B temporaries that have no assigned value, which causes the IR sanity checker to complain. Only observed (and even then rarely) on the complex preambles sometimes used for TOC-afflicted platforms. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8450 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7cf4e6b6aed533af53339f36099ed244dc4a5b7f |
|
01-May-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge branches/OTRACK_BY_INSTRUMENTATION into the trunk. This adds support to Memcheck for tracking the origin of uninitialised values, if you use the --track-origins=yes flag. This currently causes some Memcheck regression tests to fail, because they now print an extra line of advisory text in their output. This will be fixed. The core-tool interface is slightly changed. The version number for the interface needs to be incremented. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7982 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4d474d086188fd1f29fa97dbd84d8ea2e589a9b8 |
|
11-Feb-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates ("200X-2007" --> "200X-2008"). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
114a917710310985f421b0c4748d9788164fdfc3 |
|
09-Feb-2008 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Tool-side support for the new primops required by SSSE3 instructions. I think this is all that is required on the tools side. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7384 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
72d75132068882b52b67dddc9af85ffaae5ac14f |
|
10-Nov-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r1793: make all tools able to handle the new IR memory bus event statement (Ist_MBE). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7119 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
81651dc1ae8cc13a5c857a0fb4137304ed17aa43 |
|
28-Aug-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge, from CGTUNE branch, a cleaned up version of r6742: Another optimisation: allow tools to provide a final_tidy function which they can use to mess with the final post-tree-built IR before it is handed off to instruction selection. In memcheck, use this to remove redundant calls to MC_(helperc_value_check0_fail) et al. Gives a 6% reduction in code size for Memcheck on x86 and a smaller (3% ?) speedup. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6787 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4cc684b9b2bc521d3a6f1f415dbe8d77f91401fd |
|
26-Aug-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge from CGTUNE branch: r6736: Hook up Memcheck to the new Left and CmpwNEZ primops defined in vex r1769. r6737: Track vex r1770 (removal of Iop_Neg64/32/16/8 primops) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6779 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6665ea2a7d2b734965d491bc6bc2e35c1a4a6f8a |
|
25-May-2007 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a comment with a definitive account of when Memcheck does (and does not, but should do) undefined value checks. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6750 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9ebd6e0c607fa30301b1325874eb8de871c21cc5 |
|
08-Jan-2007 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
03809aeba113248d22eb6161bb7b7606aad56844 |
|
27-Dec-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle new primop Iop_SarN8x8 introduced in vex r1702. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6441 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0b9d74abd0a663b530d290b2b788ddeda46e5400 |
|
24-Dec-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Non-functional commit: track IR renaming in vex r1689. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6416 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9a807e021bdfbcfb86cb0051e0e6e8a88e9eba5f |
|
17-Dec-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add missing case, apparently not very popular :-) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6406 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
149aed8dbfb2432fcc4785219f4620de5b8a8e10 |
|
25-Nov-2006 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Use the newly-added dopyIRBBExceptStmts() in tools. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6372 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
f1962d3683b9bc0b8ba361e3d0194590fde7090b |
|
19-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix bug in memcheck's instrumenter introduced in r6319. Big comment in the code explains it. Sigh. Why can't anything be simple? git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6322 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a087148a278b59856ec2247361d1902524c68f95 |
|
18-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Observe the rule that requires all instrumenters to copy verbatim any IR preamble preceding the first IMark. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6319 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
634ba77657e28bd4568744eb1dcc0b2cb7108e5e |
|
15-Oct-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
wibble git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6235 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e4b0bf07b0ee0a18eacc5aba91686ab5fc1d327b |
|
06-Jun-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright dates. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1d0825ff46d57f0ce83c3fa88538a42f67022eee |
|
27-Mar-2006 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in the COMPVBITS branch to the trunk. This is a big change to Memcheck, replacing the 9-bits-per-byte shadow memory representation to a 2-bits-per-byte representation (with possibly a little more on the side) by taking advantage of the fact that extremely few memory bytes are partially defined. For the SPEC2k benchmarks with "test" inputs, this speeds up Memcheck by a (geometric mean) factor of 1.20, and reduces the size of shadow memory by a (geometric mean) factor of 4.26. At the same time, Addrcheck is removed. It hadn't worked for quite some time, and with these improvements in Memcheck its raisons-d'etre have shrivelled so much that it's not worth the effort to keep around. Hooray! Nb: this code hasn't been tested on PPC. If things go wrong, look first in the fast stack-handling functions (eg. mc_new_mem_stack_160, MC_(helperc_MAKE_STACK_UNINIT)). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5791 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
453e8f85186bf9f35c870059d5f4decf65f9e0aa |
|
09-Feb-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Get rid of general case in mkLazy3 and instead add new cases as they appear. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5621 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e91cea71129edc807428c8228d0d9f5b13894a5a |
|
08-Feb-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r1573 (introduction of 4-arg IR primops for ppc fmadd/fmsub). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5619 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d6075ebbdce70888ee82eaff9c1b53f04cbeb9f0 |
|
04-Feb-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Tidy up a couple more x86-related primops following rounding changes. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5608 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
22ac5f4e9561d5349d6864c42e7dddafb95e59a6 |
|
03-Feb-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Followup to r5605: fixes for x86 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5607 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ed69fdb48673f1aaaa5ce3ff1997fb50d1e15e40 |
|
03-Feb-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
* Track introduction of IR ternary primops and rounding modes, at least as to the extent needed to make ppc32 work. * As a result, remove the replacements for glibc's floor/ceil fns on ppc32/64, since vex can now correctly simulate the real ones. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5605 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4f3e0f2d879e9f86896bfce4a4cc90fae8b936b6 |
|
27-Jan-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track vex r1553 (addition of Iop_Est8FRecip, case Iop_Est5FRSqrt) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5596 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
461df9c36f6a07e4f0c14ae068e8e8e9bd383b26 |
|
17-Jan-2006 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
These files all speak about instrumentation functions. Instrumentation functions now take a callback closure structure (VgCallbackClosure*), so this commit changes the signatures accordingly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5535 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b00944a4fc5320f4f9313d2090c32f6d36fd0d10 |
|
23-Dec-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle ppc64-related primops. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5420 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
53ee1fc8a2968c7e4d1eb75b89a8d4ff6908483c |
|
23-Dec-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Deal with function pointer vs function entry crazyness on ppc64-linux. Memcheck is done, but any tool which generates IR helper calls will need to be similarly adulterated. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5418 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1bc8210aff6581dd3b48b72b6c27fdbbc6669e70 |
|
23-Dec-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle CmpORD64{U,S} as ppc64 requires those. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5415 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
13a49267f232b09c9b4a8edd01b2ac1b9d0724b9 |
|
19-Dec-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove remaining profiling gunk from Memcheck. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5387 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
176cb4c42c42d4f126237eedbf324fdd3469eeb5 |
|
16-Nov-2005 |
cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Added fp vector conversion/rounding irops to memcheck git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5149 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e78ba2a7c5a7d33f461626a0f84c3faaf2e43950 |
|
14-Nov-2005 |
cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Couple more irops for memcheck. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
cbf8be74534db8c0a875185cb583502f0c113744 |
|
10-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Oops. Track primop renamings. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5074 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
43d607580781d902dd06b2c1175da5416f07581a |
|
10-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle IR primops arising from running Altivec code. It seems Altivec is stronger in the vector integer area than SSE, but weaker in the vector FP area. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5073 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
545663e151401958e8f5d0bf21843bcff3e62f1c |
|
05-Nov-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle vector FP unordered compares. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5013 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
620eb5bbfb2d16c432ec7fdedad0eaa898d0df5e |
|
22-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle a few more primops result from running Altivec code. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4964 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4ba057cce1d81a949f5a899b5abb99e90a731bcc |
|
18-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Change the core-tool interface so that tools are fully aware of both the guest extents for the presented translation and also its original un-redirected guest address. These changes are needed in particular to make cachegrind's code cache management work properly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4943 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a9e62a9997a442eecd38f81479c15792bca201ea |
|
07-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
ppc32 only: improve handling of CmpORD32S, so as to avoid false positives from ppc code of the form "cmpi %reg,0 ; branch-if-negative .." where the top bit of %reg is defined but not all of the other bits are (common-ish enough to cause a considerable number of false positives if not done right). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4890 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
992dff97aa9c074f86f831a76367fb55e0541da2 |
|
07-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix the handling of CmpORD32{S,U} which was completely bogus and would have caused ppc32 to miss many uninitialised value errors. (Change affects ppc32 only). Also add reference to the Usenix paper. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4888 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
aaddbc281556387b2a16009e058f785fb4d5c576 |
|
07-Oct-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix a memcheck anomaly observed by Nick: lazy propagation of undefinedness was not being done properly for scalar shifts and that could have led to undefined-value errors being falsely reported in the obscure case where the shift amount was undefined but the end result of the shift was unused. This commit handles shifts more in accordance with the maximally-lazy V-bit-testing scheme used by the rest of memcheck. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4887 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
fafaa0d8a9f70c01dc72052f22e53a617e9d2e2f |
|
13-Sep-2005 |
cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
add case Iop_V128to32 to memcheck git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4626 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
bef552a3841d959ca18fac4e5ac6925ea29dfd32 |
|
30-Aug-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix suspicious code in the memcheck instrumenter which probably rendered many of the assertions in this file ineffective. Spotted by Tom Truscott. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4587 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
463b3d94b19ec820c2378dde6d43d2c1f553a8d0 |
|
18-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track API changes in vex r1272. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4159 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6e340c7a2c09971ac5ead854c40bbc0491b67636 |
|
10-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Clean up endianness macros a bit. Now pub_tool_basics.h defines VG_LITTLEENDIAN or VG_BIGENDIAN and that's what should be used. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4142 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
8cf88b7b5d8325e098b455f502c9a9239c6ee011 |
|
08-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Create and use bigendian versions of MC_(helperc_{LOAD,STORE}V{2,4,8}). This involved some serious nastyness from the Department of Cpp Abuse. Memcheck still bombs on ppc32 for unknown reasons. There are still endianness issues within these functions, I think. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4129 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
151b90d888b37cc8694684433cbed2ddc5fcd205 |
|
06-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Scan the entire BB looking for "bogus literals"* before instrumenting any of it, so as to avoid any problems arising from switching from one scheme to the other half-way through. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4117 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e6f8af482ef8992e0e1b2eba49cfa907a93f9b66 |
|
06-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Extensively re-analyse, re-check and revise the scheme for expensive handling of integer EQ/NE, which can sometimes do better than the naive scheme when the inputs are partially defined. I never was convinced it was correct before, but now I am. Regtest to follow. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4115 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
2e595858903b80f29f271dc94e32a9e052bb4c8a |
|
01-Jul-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track Vex API change (r1239, introduction of endianness-indications in IR loads and stores.) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4072 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d9774d73807c7292c72e1254119d6bd8ded81f15 |
|
27-Jun-2005 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Improve handling of inlined strlen on amd64 by using the expensive mode for 64 bit add and subtract operations when the bogus literals flags is set and by adding two new constants to the list of bogus literals. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4037 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9e5910872335c1ff7cb9733480904aa84dfe16ab |
|
23-Jun-2005 |
cerion <cerion@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Added DivU32,DivS32 to memcheck translation (lazy) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4004 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
c7561b931e249acf3768ead77638545b0ccaa8f1 |
|
19-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Final commit for the initial modularisation pass: - Broke part of m_scheduler off into a new module m_threadstate. It contains ThreadState, VG_(threads)[] and some basic operations on the thread table. All simple stuff, the complex stuff stays in m_scheduler. This avoids lots of circular dependencies between m_scheduler and other modules. - Managed to finally remove core.h and tool.h, double hurrah! - Introduced pub_tool_basics.h and pub_core_basics.h, one of which is include by every single C file. - Lots of little cleanups and changes related to the above. - I even did a small amount of documentation updating. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3944 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
39cc73532a985e3fecf9bf3822fffc6466b38d80 |
|
09-Jun-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle Clz64 and Ctz64. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3863 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
132bfccd21960e462352175f8553a5bdce8a210c |
|
04-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularised assertions and panics in m_libcassert. As part of this, killed the VG_STRINGIFY macro, which was used to expand out names like "VG_(foo)" and "vgPlain_foo" in assertion failure messages. This is good since we actually want the "VG_(foo)" form used in these messages. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
36a20fa5f779a0a6fb7b4a90dcaa6376481f1faa |
|
03-Jun-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Modularise printing functions in m_libcprint. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3840 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
826ec49ac9fcbc4f9bb1134d3b8827e4ee0f7687 |
|
12-May-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Use the new IRStmt_AbiHints created by the amd64 front end. This finally makes memcheck able to reliably track the definedness of the stack on amd64. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3686 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
51d827bcd88ce045a383ea1ca81768757df2d1fa |
|
09-May-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Big clean-up: changed the core/tool interface to be mediated entirely through the VG_(tdict) function dictionary, rather than using TL_(foo) functions. This facilitated the following changes: - Removed the "TL_" prefix, which is no longer needed. - Removed the auto-generated files vg_toolint.[ch], which were no longer needed, which simplifies the build a great deal. Their (greatly streamlined) contents went into core.h and vg_needs.h (and will soon go into a new module defining the core/tool interface). This also meant that tool.h.base reverted to tool.h (so no more accidentally editing tool.h and not having the changes go into the repo, hooray!) And gen_toolint.pl was removed. And toolfuncs.def was removed. - Removed VG_(missing_tool_func)(), no longer used. - Bumped the core/tool interface major version number to 8. And I killed the minor version number, which was never used. The layout of the ToolInfo struct is such that this should not cause problems. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3644 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e53bd99542226fcc64fe51c1e4158248993fc852 |
|
03-May-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle Iop_Neg{8,16,32}. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3601 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d9dbc19c507323f02079ea4ee3cca66149f7357c |
|
27-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle various new 64-bit integer primops. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3576 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
37c31ccc12f6b479b06fbe94f8f74814fb553c28 |
|
27-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
* Modify the instrumenter to use the new primops introduced in vex rev 1144. * Observe that mkLazy2 generates IR which often turns into long and slow code sequences in the back end, primarily because PCast operations are expensive. Add a couple of special cases which give noticably better performance when handling FP-intensive code on x86. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3572 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
cd986336a55192fe237a72b323b378b674af38e0 |
|
26-Apr-2005 |
tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Support the 64 bit comparison instructions which vex is now using. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3570 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
96a922e5fe4ef47150f1116001ebab3b98c61ea3 |
|
24-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add 64-bit values to the bogus-literal detector. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3548 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
11bcc4ec8e861aea0dc36b32f6fcc9300dddd577 |
|
24-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle 8-byte value-check failures using a special fast-case fn (like 0,1,4 sized) rather than the generic one. Remove size 2 since that never seems to get used. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3545 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
69a1332a98a195be9300c5c5b5e5add32bae5aa6 |
|
23-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a few cases arising from testing on amd64. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3544 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6cf40ffd6d17589c81b6fe6a0da6f4b6b83c4f80 |
|
21-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix a bunch of 64-bit cases required amd64. Stop to ponder whether there is a better way to handle the 'pessimising cast' family of operations in such a way that Vex's back-end instruction selectors can generate better code than they do now, with less verbosity and general confusingness in the insn selectors. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3536 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
96403eb283475bee96cce41daf4c0c54924daf2e |
|
01-Apr-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add a missing case. I guess it can't have been wildly popular :-) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3496 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d54babf82db303dfe43082bfe1af75d7b58b3267 |
|
21-Mar-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track Vex API change in rev 1062: pass both the guest and host word sizes to the instrumentatation functions. Make most of the tools abort if they are not the same; we can't handle that case yet. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3397 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
21dc345ce861ac5a5686391b77659934c1d49a3e |
|
21-Mar-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track Vex API (semantics) changes in rev 1061: introduction of IRStmt_NoOp. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3396 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
710d6c27c3ce7bf26639bda3ab4f42695bc92c2c |
|
20-Mar-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track minor Vex API changes that occurred in Vex rev 1059. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3393 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
29faa50dd7ea4d4a8aa3c82b299bb38880e19237 |
|
16-Mar-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make existing tools aware of IR instruction marks. (They ignore them, though). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3381 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
5361242f022b38fadb4cdf02428cea8b8d901a90 |
|
12-Mar-2005 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Update copyright notice for 2005 on all relevant files. Don't bother trying to be selective about it. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3303 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
20d38f29475b36dc3ced6ee96fd6b7651faf31c8 |
|
08-Feb-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Track renaming of Vex's Iop_*128* primops to Iop_*V128*. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3232 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
681be302af5528c2cb415270da9fde2e7f347e69 |
|
15-Jan-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle Add64/Sub64 (naively). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3224 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
acd2e910861cfc0f95229401922d38d7ce9c6259 |
|
13-Jan-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add support for 64-bit SIMD primops. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3223 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
bd598e1577f3e9c70978d2f7c77cbbd5af0c7ecd |
|
07-Jan-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle IRStmt_MFence in the tools. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3217 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d5204dcce510ae2bc6cc956c13cd4700980fe6d1 |
|
31-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Finishing installing PaulM's improved accuracy handling for Add/Sub, and also do better for CmpEQ/CmpNE. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3212 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e50a1b14b5ec5a180d2797614de48b19129c9e4f |
|
17-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
mkUifU: add missing case git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3205 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
db67f5fbbfcf585bf4ff553ab555b9e4ffc1d195 |
|
14-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle Iop_Sar16. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3197 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a1d9330a6d80e3c1ab69d7f0d0ad6c45b8a5cd38 |
|
12-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Complete enough 128-bit vector stuff in memcheck so that SSE2 works. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3192 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0b07059814aee8563905f2caeef186a8c83072cf |
|
10-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Support for 64x2 vector floating point. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3191 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
170ee210842367a5cc52390358ba560774f76329 |
|
10-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Stuff to make Memcheck work with SSE1 instructions. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3190 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
3245c919d273a73ce23632d6a3ab4fc027fefcd9 |
|
10-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Basics for 128-bit SIMD code. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3189 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7010f6eec42f5ace7c02c582e12d8150c2a2c964 |
|
10-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix enough stuff so that x86 MMX tests work. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3188 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e9e16d3699cb81d5610a567c3e11d54402b0c162 |
|
10-Dec-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix enough stuff so that x86 floating point tests work properly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3187 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7cf97ee841afd255879bff9ff791fbabb7f95cec |
|
28-Nov-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Build fixes for gcc-2.95. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3132 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
a72032508d826f53df7e1211327f5321d9fba56f |
|
26-Nov-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
When doing pessimistic lazy propagation through a dirty helper call, do not consider inputs from those parts of the guest state marked as read (or modified) which which are declared to be always-defined, and dually do write outputs to those parts of the guest state written (or modified) which are declared to be always-defined. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3119 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
95448075345dc73986042f6dc68eb464d02bc6a8 |
|
22-Nov-2004 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Make Memcheck compilable. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3065 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
26f025100805e561354c8c98b5ebb0c4a517d9a9 |
|
22-Nov-2004 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Converted the SK_ prefix to TL_ everywhere. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3060 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
6799325d013e8e5668c2b8727203c77294ccd202 |
|
22-Nov-2004 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Renamed VG_(skin_panic) as VG_(tool_panic). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3057 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ca82cc01fb1580551144b69d3f17213a80d952e1 |
|
22-Nov-2004 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Renamed sk_assert() as tl_assert(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3055 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
885dd9184175039b5ddeff4c2b2b644d5a25ec91 |
|
04-Aug-2004 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Tweaked sanity-checking: made function naming more consistent, removed unnecessarily global functions from vg_include.h, etc. Also tweaked printing of malloc stats. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2562 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
996901a830e8e7c3fd8be8f0c675c71f2b108957 |
|
03-Aug-2004 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Comment changes only: s/skin/tool/ git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2555 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0987528f744321ecbf9b745746b044dcf29d468e |
|
26-Apr-2004 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Add missing SSE case for Memcheck's instrumentation (sigh). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2389 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0e5d2e30d91eac63c19ccc3ca68092f7654a5862 |
|
22-Apr-2004 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
SETV and TESTV never have an ArchReg as their first argument. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2383 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
989df357e73f8d4f2b88c1bce626272c68976e9e |
|
28-Mar-2004 |
thughes <thughes@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fix typo in FPU eflags fix. CCMAIL: 78514-done@bugs.kde.org git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2345 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d88f41545012708f5d79335bafb5858ad57f1d55 |
|
28-Mar-2004 |
thughes <thughes@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
For FPU/MMX/SSE instructions which don't reference any memory, make memcheck look at whether the eflags are read or written and generate UCode to validate and/or mark as valid the eflags when necessary. CCMAIL: 78514-done@bugs.kde.org git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
96b466ac1bc4b09b45c08b79cdadd3d42461bc2b |
|
15-Mar-2004 |
thughes <thughes@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Move the handling of PSHUFW from the SSE code to the MMX code so that it will work on older Athlons which only have MMXEXT support. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2319 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
1018bdd2cba920fd768aba7e4c8a823a6cbdf17b |
|
12-Feb-2004 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Heroic patch from Tom Hughes: This patch adds translation tests for most of the basic x86 instructions and fixes a few missing/broken instructions to work properly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2242 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b1affa88ef798064014f9657fa6bb4a8501fdbf8 |
|
19-Jan-2004 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Patch from Tom Hughes, for bug 72643: Patch to improve SSE/SS2 support This patch should implement most of the missing SSE/SSE2 opcodes. About the only ones it doesn't do are the MASKMOVxxx ones as they are quite horrible and involved an implicit reference to EDI so I need to think about them a bit more. The patch also includes a set of tests for the MMX/SSE/SSE2 opcodes to validate that they have the same effect under valgrind as they do when run normally. In one or two cases this wasn't actually the case even for some of the implemented opcodes, so I fixed those as well ;-) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2202 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
fca60182e856482778cdc95788b6ddf0f5303169 |
|
05-Jan-2004 |
jseward <jseward@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Support for FXSAVE/FXRSTOR (Tom Hughes). Fixes #71180. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2183 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
bb1c99123c95fb9a4a2617d6e1d09559ac68db80 |
|
04-Jan-2004 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Updated copyright dates for 2004. Also added a couple of missing headers and footers to some new files. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2177 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
00a8a6fb0a8ea5452cbe18015f4a5c630e835af7 |
|
02-Jan-2004 |
mueller <mueller@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
fix comment git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2157 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
137bc55f216bc7d9528f159a78cdf9025e0b02ff |
|
14-Nov-2003 |
nethercote <nethercote@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Started to rescind the name "skin", replacing it with "tool". Did this in all the places that normal users will see: - command line: --tool=foo (although --skin=foo still works) - docs: removed all traces (included renaming coregrind_skins.html to coregrind_tools.html) - in the usage messages - in error messages Also did in in some places that I judged were unlikely to cause clashes with existing workspaces: - in the header comments of many files (eg. "This file is part of Memcheck, a Valgrind tool for...") - in the regtests script - in the .supp files - in AUTHORS - in README_MISSING_SYSCALL_OR_IOCTL Also update the AUTHORS file to mention Jeremy. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2027 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
77d30a2f72872e990a7604f029153d5f4fed665e |
|
19-Oct-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
SSE/SSE2 fixes needed to run the entire test suite of the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1 20030307Z '-g -O -xW'. I think this gives pretty good coverage of SSE/SSE2 floating point instructions, or at least the subset emitted by Icc. So far tested on memcheck and nulgrind; addrcheck and cachesim still testing. MERGE TO STABLE git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1955 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b11168575af550e72048e09e1f372eeb13a32be6 |
|
17-Oct-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Clean up and extend some of the SSE instrumentation cases. MERGE TO STABLE git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1948 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
5efa4fd5de1172b0ed9de484c9b22af4bf0b1ae7 |
|
14-Oct-2003 |
jsgf <jsgf@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This creates a new UInstr for multiply. This is mainly so that memcheck can treat it like add and generate partially-defined results of multiply with partially defined arguments. It may also speed things up a bit, if they use lots of multiplies. This change only deals with signed "new style" multiplies. That the x86 has two quite different kinds of multiply instructions: the "old-style" signed and unsigned multiply which uses fixed registers (eax:edx) and generates a result twice the size of the arguments, and the newer signed multiple which takes general addressing modes. It seems that gcc always (almost always?) generates the new signed multiply instructions, except for byte-sized multiplies. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1925 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
247f32f9a8725d69b03690a287f0832108cefdc5 |
|
03-Oct-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Handle SSE5. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1891 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b2d443246407e9dcd733cdeb87ef810ede51b929 |
|
27-Sep-2003 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove extraneous tabs from Memcheck --trace-codegen output. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1838 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
b6d9b5426120bb87736591d22376e94355130bfb |
|
26-Sep-2003 |
daywalker <daywalker@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
implement all SSE(2) ucodes. now I can run mplayer in valgrind :) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1832 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0d14a5615051092ba1482572a5c2db49a17f1682 |
|
04-Sep-2003 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Trivial assertion fix -- the SSE3 instructions can be of size 8. MERGE TO STABLE git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1811 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
fa509e24b59d8f247b44cea2d04d3b19b54c85e8 |
|
28-Aug-2003 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Minor fix: errors on MMX_MemRd instructions were erroneously being called writes. MERGE TO STABLE git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1807 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4fbe6e9ff89567e4c8cc7fdf579ad5b8c25ce1d0 |
|
15-Jun-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rename the SSE and MMX uinstrs which read/write integer registers, in a way consistent with the position of the register field in the instruction. In Intel encoding parlance, the G register is in bits 5,4,3 and the E register is bits 2,1,0, and so we adopt this scheme consistently. Considering how much confusion this has caused me in this recent bout of SSE hacking, consistent renaming can only be a good thing. It makes it a lot easier to figure out if parts of the SSE handling machinery are correct, or not. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1698 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
93992e2a8310f9ba5e1d2d2fac92e78912772405 |
|
26-May-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
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 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
0e1b514ab8e837f75a207a037ea53a6a721e9d28 |
|
15-Apr-2003 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Updated copyright notices for 2003. Only 4 months late. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1526 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d1c9e43c3272d8984ca1da1322a43f05c2e1962e |
|
04-Apr-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Implement MMX movd where the src is an mmxreg and the dst is an ireg or memory. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1507 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d7971010f75e299ecba7a28eb836d872549beef1 |
|
04-Apr-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Rationalise ucode generation for 4-byte moves into the MMX unit (movd). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1506 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
901a4a946376b70c7c87f750dc3eef44e78032be |
|
30-Mar-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Teach memcheck skin how to deal with MMX instrumentation. Valgrind should now be fairly usable with MMX code. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1490 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
3d7c9c8c2e4882c787a9b63befe095785f3d5d07 |
|
26-Mar-2003 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Implement support for the MMX instruction set. The scheme used is the same as that for FPU instructions. That is, regard the MMX state (which is the same as the FPU state) opaquely, and every time we need to do a MMX instruction, move the simulated MMX state into the real CPU, do the instruction, and move it back. JeremyF's optimisation to minimise FPU saves/restores applies automatically here. So, this scheme is simple. It will cause memcheck to complain bitterly if uninitialised data is copied through the MMX registers, in the same way that memcheck complains if you move uninit data through the FPU registers. Whether this turns out to be a problem remains to be seen. Most instructions are done, and doing the rest is easy enough, I just need people to send test cases so I can do them on demand. (Core) UCode has been extended with 7 new uinstrs: MMX1 MMX2 MMX3 -- 1/2/3 byte mmx insns, no references to integer regs or memory, copy exactly to the output stream. MMX_MemRd MMX_MemWr -- 2 byte mmx insns which read/write memory and therefore need to have an address register patched in at code generation time. These are the analogues to FPU_R / FPU_W. MMX_RegRd MMX_RegWr -- These have no analogues in FPU land. They hold 2 byte insns which move data to/from a normal integer register (%eax etc), and so this has to be made explicit so that (1) a suitable int reg can be patched in at codegen time, and (2) so that memcheck can do suitable magic with the V bits going into/ out of the MMX regs. Nulgrind (ok, this is a nop, but still ...) and AddrCheck's instrumenters have been extended to cover these new UInstrs. All others (cachesim, memcheck, lackey, helgrind, did I forget any) abort when they see any of them. This may be overkill but at least it ensures we don't forget to implement it in those skins. [A bad thing would be that some skin silently passes along MMX uinstrs because of a default: case, when it should actually do something with them.] If this works out well, I propose to backport this to 2_0_BRANCH. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1483 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
f4ce3d3d18a160af87f3aa7b60363894db10d486 |
|
10-Feb-2003 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Fixed a minor bug -- the condition for determining whether VG_(handle_esp_assignment)() was needed by a skin (and thus whether to register it in the baseBlock) was different to that used when determining whether to call it in code generation... so it could be (attempted to be) called having not been registered. Fixed this by consistifying the conditions, using a function VG_(need_to_handle_esp_assignment)() that is used in both places. The bug hadn't been found previously because no existing skin exercised the mismatched conditions in conflicting ways. Also took VG_(track).post_mem_write out of consideration because it's no longer important (due to a change in how stack switching is detected). ---- Improved the error message for when a helper can't be found in the baseBlock -- now looks up the debug info to tell you the name of the not-found function. ---- Increased the number of noncompact helpers allowed from 8 to 24 ---- Removed a magic number that was hardcoded all over the place, introducing VG_MAX_REGS_USED for the size of the arrays needed by VG_(get_reg_usage)() ---- Also added these functions VG_(get_archreg)() VG_(get_thread_archreg)() VG_(get_thread_shadow_archreg)() VG_(set_thread_shadow_archreg)() which can be useful for skins. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1419 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
51647488cc84a206e3e9b4ca773606bfe848adb5 |
|
15-Dec-2002 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Get rid of the --check-addrVs flag and everything to do with it. It no longer makes much sense now we have a seperate addrcheck skin. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1371 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
5c004e4befbb4bb13d9bdb5084748585ea2b9ec3 |
|
18-Nov-2002 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Overview: - Factored out a lot of commonality between AddrCheck and MemCheck. Basic idea is that common code goes into a single file in MemCheck, and AddrCheck peeks in and "borrows" it. More or less, only identical code or identical-with-respect-to-subtypes code was factored out. Identical-with-respect-to-subtypes means that some enum types (SuppKind, ErrorKind, etc) were merged because they were identical except that MemCheck had some extra constants. So some of the code borrowed by AddrCheck contains cases it never needs. But that's not so bad, avoiding the duplication is IMHO more important. Removed: - ac_include.h, it wasn't necessary - All the old debugging stuff from ac_main.c (printing shadow regs, not applicable for AddrCheck). - MANUAL_DEPS from memcheck/Makefile.am because it wasn't doing anything - Some unnecessary crud from addrcheck/Makefile.am Added: - memcheck/mc_common.{c,h} - memcheck/mc_constants.h - addrcheck/ac_common.c, which simply #includes memcheck/mc_common.c. This hack was required because there is no way (that I could work out) to tell Automake that it should build ../memcheck/mc_common.o before building AddrCheck. Changed: - a lot of prefixes from SK_ to MC_; only core/skin interface functions are prefixed with SK_ now. This makes it clear which functions are from the core/skin interface, and for AddrCheck it's clear which functions are shared with/borrowed from MemCheck. Changed some related prefixes for consistency. - Also factored out some duplication within AddrCheck -- some accessibility checking was needlessly split up into separate read and write checks that did the same thing. Unchanged: - I considered moving the leak detector out of core into mc_common.c, but didn't, because it constantly accesses ShadowChunk fields and converting to get/set methods would have been a total pain. - Left old debugging stuff in for MemCheck, although I seriously doubt it would still work. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1325 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
810086f9489e1cb373bcfc15ab94a3fa3ec403f3 |
|
14-Nov-2002 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Lots of changes to future-proof the core/skin interface, making it less likely that changes will cause binary incompatibilities. Mostly done by hiding naked structs with function calls. Structs hidden in this way were: UCodeBlock, SkinSupp and SkinError (which were merged back with CoreSupp and CoreError into single types Supp and Error), ShadowChunk, VgDetails, VgNeeds and VgTrackEvents. The last three are the most important ones, as they are (I think) the most likely to change. Suitable get()/set() methods were defined for each one. The way UCodeBlocks are copied for instrumentation by skins is a little different now, using setup_UCodeBlock. Had to add a few other functions here n there. Changed how SK_(complete_shadow_chunk) works a bit. Added a file coregrind/vg_needs.c which contains all the get/set functions. It's pretty simple. The changes are not totally ideal -- eg. ShadowChunks has get()/set() methods for its `next' field which arguably shouldn't be exposed (betraying the fact that it's a linked list), and the get()/set() methods are a bit cumbersome at times, esp. for `Error' because the fields are accessed quite a few times, and the treatment of Supps and Errors is a bit inconsistent (but they are used in different ways), and sizeof_shadow_blocks is still a hack. But still better than naked structs. And one advantage is that a bit of sanity checking can be performed by the get()/set() methods, as is done for VG_({get,set}_sc_extra)() to make sure no reading/writing occurs outside the allowed area. I didn't do it for UInstr, because its fields are accessed directly in lots and lots of spots, which would have been a great big pain and I was a little worried about overhead of calling lots of extra functions, although in practice translation times are small enough that it probably doesn't matter. Updated the example skin and the docs, too, hurrah. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1314 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
7a5ebcf66cfbd2fefa261cfbaf5f03527c299a29 |
|
13-Nov-2002 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge patch from JeremyF: 39-lock-prefix Add a new UInstr LOCK to represent a "lock" prefix in the instruction stream. This has the same semantics as NOP, but allows a skin to tell whether a group of UInstrs associated with an x86 instruction are meant to be locked. HELGRIND: uses the LOCK UInstr to automatically take and release a special __BUS_HARDWARE_LOCK__ around locked instructions. This only works properly if all instructions touching a given address are locked (even reads). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1310 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
8ec2cfcb9c1267fd7b20529f1b95973a9712b872 |
|
13-Oct-2002 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Incorporate horrible hack to workaround problem of emitting bogus uninit-value errors on code with inlined strlen() et al from gcc-3.1 and above. MERGE TO STABLE git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1213 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
ac6c17667e489215a0795c24cc1b202254582a4f |
|
04-Oct-2002 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Moved the following macros, which were defined multiple times in multiple files, into vg_skin.h: uInstr0, uInstr1, uInstr2, uInstr3, nameIReg, nameISize, nameSReg, newTemp, newShadow, uLiteral, uCCall As macros they avoid namespace problems (they expand to VG_(whatever)) so this should work fine. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1182 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
c953984b8ee34ac55830b9871138b409d9d9476c |
|
02-Oct-2002 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Updated file descriptions in the copyright notices to reflect the core/skin split. Each skin now has its own two-line description. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1166 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e427a6636de5b2d34c2223821ff5cbf79bad4fad |
|
02-Oct-2002 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changes made so that skin error "report this bug to" messages are distinguished from core error ones: - Split up VG_(panic) into VG_(core_panic) and VG_(skin_panic) - Likewise, split vg_assert into vg_assert and sk_assert - Added a new need string: `bug_reports_to' - Removed VG_(skin_error) which was a previous wussy attempt at this change. This removed the need for the hacky redeclaration of VG_(skin_error) in vg_profile.c, which is good. At the moment, Julian and Nick's email addresses are hard-coded into each skin individually, rather than using a #define in vg_skin.h, because that didn't feel quite right to me... jseward@acm.org is still done with a #define for core errors, though. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1164 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
9b22bca70157d5c00b9bab1df8328d02248b2783 |
|
01-Oct-2002 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Remove comment that nobody can make sense of. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1147 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
d077f533d5422966ab9f013ccbeb0c8ecc8506ff |
|
30-Sep-2002 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Teach memcheck about instrumenting {GET,PUT,USE}SEG. Also implement MOV Sw,Ew. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1141 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
4ba5a79d946b22c52856d62dca7c927cb306dfa3 |
|
30-Sep-2002 |
njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Converted all functions visible from vg_skin.h with names in CamelCaps to use_under_scores instead, to be consistent. Also added some missing 'extern's on function declarations in vg_skin.h. Also added a quick note in vg_regtest.in on the simplest way to run regression tests. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1135 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
cac76cb18577b9c51d331f56e8ea241f6effaf31 |
|
23-Sep-2002 |
njn25 <njn25@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Changed lots of files for the new core/ + skin/ directory structure: - changed lots of Makefile.am files - changed configure.in - changed lots of #include lines for changed file names - changed lots of file headers n footers for changed file names - changed vg_regtest to handle new directory structure -- recursively traverses subdirectories for .vgtest test files - changed lots of paths in memcheck/ regression test expected outputs git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1090 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|
e49d8e7dfd3a9c96feb9935b5920973dfc0b170a |
|
23-Sep-2002 |
njn25 <njn25@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Files updated, added and removed in order to turn the ERASER branch into HEAD git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1086 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_translate.c
|