|
From: Nuno L. <nun...@sa...> - 2007-01-10 23:25:00
|
>> objdump -D: >> 08807eb0 <movdqa4>: >> 8807eb0: 83 e9 20 sub $0x20,%ecx >> 8807eb3: 66 0f 6f 5e 10 movdqa 0x10(%esi),%xmm3 >> 8807eb8: 66 0f 6f 46 20 movdqa 0x20(%esi),%xmm0 <-- >> this >> is the line that cause the warning >> 8807ebd: 83 c6 20 add $0x20,%esi >> 8807ec0: 66 0f 73 d9 04 psrldq $0x4,%xmm1 > > Your timing is good. I just chased this problem around two days ago. > I believe it is the same as bug 139776. See great then :) > which also contains a suggested fix, near the end. Can you let me > know whether this helps for you. My problem is unrelated with _intel_fast_memcpy. I had _intel_fast_memcmp generating warnings, but that on was easy to suppress (Memcheck:Cond\n fun:_intel_fast_memcmp). My problem is that valgrind isn't fetching the function name (maybe because it isn't global, as it lookups the _intel_fast_memcmp symbol correctly). > One thing that would be very helpful if you could find out is, > in which part of your program is the symbol _intel_fast_memcpy? > That is, is it defined in the main executable, or in one of the > shared objects for the Intel runtime support, or where? It also comes from the libirc.a library, which is linked automatically when using certain optimizations. 'nm' reports the symbol as T (.text & global) You may also want the assembly (objdump -D): 088071bc <_intel_fast_memcpy.A>: 88071bc: 57 push %edi 88071bd: 56 push %esi 88071be: 8b 74 24 10 mov 0x10(%esp),%esi 88071c2: 8b 7c 24 0c mov 0xc(%esp),%edi 88071c6: 8b 4c 24 14 mov 0x14(%esp),%ecx 88071ca: f3 a4 repz movsb %ds:(%esi),%es:(%edi) 88071cc: 8b 44 24 0c mov 0xc(%esp),%eax 88071d0: 5e pop %esi 88071d1: 5f pop %edi 88071d2: c3 ret 88071d3: 90 nop 088071d4 <_intel_fast_memcpy.J>: 88071d4: ff 74 24 0c pushl 0xc(%esp) 88071d8: ff 74 24 0c pushl 0xc(%esp) 88071dc: ff 74 24 0c pushl 0xc(%esp) 88071e0: e8 5b 08 00 00 call 8807a40 <__intel_new_memcpy> 88071e5: 83 c4 0c add $0xc,%esp 88071e8: c3 ret 88071e9: 90 nop 088071ea <_intel_fast_memcpy.H>: 88071ea: ff 74 24 0c pushl 0xc(%esp) 88071ee: ff 74 24 0c pushl 0xc(%esp) 88071f2: ff 74 24 0c pushl 0xc(%esp) 88071f6: e8 a5 1f 00 00 call 88091a0 <__intel_new_memcpy_P3> 88071fb: 83 c4 0c add $0xc,%esp 88071fe: c3 ret 88071ff: 90 nop 08807200 <_intel_fast_memcpy>: 8807200: f7 05 e8 a7 c9 08 00 testl $0xfffffe00,0x8c9a7e8 8807207: fe ff ff 880720a: 0f 85 c4 ff ff ff jne 88071d4 <_intel_fast_memcpy.J> 8807210: f7 05 e8 a7 c9 08 80 testl $0xffffff80,0x8c9a7e8 8807217: ff ff ff 880721a: 0f 85 ca ff ff ff jne 88071ea <_intel_fast_memcpy.H> 8807220: f7 05 e8 a7 c9 08 ff testl $0xffffffff,0x8c9a7e8 8807227: ff ff ff 880722a: 0f 85 8c ff ff ff jne 88071bc <_intel_fast_memcpy.A> 8807230: e8 79 ff ff ff call 88071ae <__intel_cpu_indicator_init> 8807235: eb c9 jmp 8807200 <_intel_fast_memcpy> 8807237: c3 ret Nuno |