1 #include "hphp/util/etch-helpers.h"
4 # include "hphp/util/hphp-config.h"
7 #if defined(ENABLE_AARCH64_CRC) && !defined(NO_HWCRC) && \
8 !defined(__CYGWIN__) && !defined(__MINGW__) && !defined(_MSC_VER)
10 .file "hphp/util/hash-crc-arm.S"
12 #define HASH_FUNC_NAME _ZN4HPHP20hash_string_i_unsafeEPKcj
14 ETCH_SECTION(HASH_FUNC_NAME)
16 ETCH_TYPE(HASH_FUNC_NAME, @function)
18 ETCH_NAME(HASH_FUNC_NAME):
24 mov x4, #0xdfdfdfdfdfdfdfdf
45 ETCH_SIZE(HASH_FUNC_NAME)
49 #define HASH_FUNC_NAME _ZN4HPHP13hash_string_iEPKcj
51 ETCH_SECTION(HASH_FUNC_NAME)
53 ETCH_TYPE(HASH_FUNC_NAME, @function)
55 ETCH_NAME(HASH_FUNC_NAME):
62 mov x4, #0xdfdfdfdfdfdfdfdf
63 bne ETCH_LABEL(iuheader)
64 b ETCH_LABEL(icheader)
74 bcc ETCH_LABEL(icloop)
93 bcc ETCH_LABEL(iuloop)
99 ETCH_LABEL(iutailloop):
104 bne ETCH_LABEL(iutailloop)
113 ETCH_SIZE(HASH_FUNC_NAME)
114 #undef HASH_FUNC_NAME
117 #define HASH_FUNC_NAME _ZN4HPHP21hash_string_cs_unsafeEPKcj
119 ETCH_SECTION(HASH_FUNC_NAME)
120 .globl HASH_FUNC_NAME
121 ETCH_TYPE(HASH_FUNC_NAME, @function)
123 ETCH_NAME(HASH_FUNC_NAME):
127 beq ETCH_LABEL(csend)
129 b ETCH_LABEL(csheader)
134 ETCH_LABEL(csheader):
137 bcc ETCH_LABEL(csloop)
147 ETCH_SIZE(HASH_FUNC_NAME)
148 #undef HASH_FUNC_NAME
151 #define HASH_FUNC_NAME _ZN4HPHP14hash_string_csEPKcj
153 ETCH_SECTION(HASH_FUNC_NAME)
154 .globl HASH_FUNC_NAME
155 ETCH_TYPE(HASH_FUNC_NAME, @function)
157 ETCH_NAME(HASH_FUNC_NAME):
161 bmi ETCH_LABEL(csutail)
168 bpl ETCH_LABEL(csuloop)
172 beq ETCH_LABEL(csuend)
176 ETCH_LABEL(csutailloop):
181 bne ETCH_LABEL(csutailloop)
189 ETCH_SIZE(HASH_FUNC_NAME)
190 #undef HASH_FUNC_NAME