1 #include "hphp/runtime/base/string-data-macros.h"
2 #include "hphp/util/etch-helpers.h"
4 #if defined(__SSE4_2__) && !defined(NO_HWCRC) && defined(NO_M_DATA) && \
7 .file "hphp/runtime/base/string-data-x64.S"
10 * HPHP::StringData::hashHelper() is defined here only when SSE4.2 is explicitly
11 * specified, and NO_M_DATA is used in StringData.
14 ETCH_SECTION(_ZNK4HPHP10StringData10hashHelperEv)
15 .globl _ZNK4HPHP10StringData10hashHelperEv
16 ETCH_TYPE(_ZNK4HPHP10StringData10hashHelperEv, @function)
17 _ZNK4HPHP10StringData10hashHelperEv:
19 mov SD_LEN(%rdi), %ecx
21 lea SD_DATA(%rdi, %rcx), %rdx
23 jnz ETCH_LABEL(hheader)
29 movabs $0xdfdfdfdfdfdfdfdf, %rsi
30 and (%rdx, %rcx), %rsi
40 or %eax, SD_HASH(%rdi)
43 ETCH_SIZE(_ZNK4HPHP10StringData10hashHelperEv)