Remove support for parsing the `elseif` keyword
[hiphop-php.git] / hphp / runtime / base / string-data-x64.S
blob2580ab6dc745a1372a2553f291ef5f57755b6015
1 #include "hphp/runtime/base/string-data-macros.h"
2 #include "hphp/util/etch-helpers.h"
4 #ifdef USE_X86_STRING_HELPERS
6         .file     "hphp/runtime/base/string-data-x64.S"
8 /*
9  * HPHP::StringData::hashHelper() is defined here only when SSE4.2 is
10  * explicitly specified via __SSE4_2__.
11  */
13 ETCH_SECTION(_ZNK4HPHP10StringData10hashHelperEv)
14 .globl    _ZNK4HPHP10StringData10hashHelperEv
15 ETCH_TYPE(_ZNK4HPHP10StringData10hashHelperEv, @function)
16 _ZNK4HPHP10StringData10hashHelperEv:
17         CFI(startproc)
18         mov     SD_LEN(%rdi), %ecx
19         or      $-1, %eax
20         lea     SD_DATA(%rdi, %rcx), %rdx
21         neg     %rcx
22         jnz     ETCH_LABEL(hheader)
23         jmp     ETCH_LABEL(hend)
25 ETCH_LABEL(hloop):
26         crc32q  %rsi, %rax
27 ETCH_LABEL(hheader):
28         movabs  $0xdfdfdfdfdfdfdfdf, %rsi
29         and     (%rdx, %rcx), %rsi
30         add     $8, %rcx
31         jnc     ETCH_LABEL(hloop)
33         shl     $3, %ecx
34         shl     %cl, %rsi
35         crc32q  %rsi, %rax
37 ETCH_LABEL(hend):
38         shr     %eax
39         or      %eax, SD_HASH(%rdi)
40         ret
41         CFI(endproc)
42 ETCH_SIZE(_ZNK4HPHP10StringData10hashHelperEv)
44 #endif