1// Code generated by command: go run asm.go -out sip13_amd64.s. DO NOT EDIT. 2 3// +build !noasm 4 5#include "textflag.h" 6 7// func Sum64(k0 uint64, k1 uint64, p []byte) uint64 8TEXT ·Sum64(SB), NOSPLIT, $0-48 9 MOVQ k0+0(FP), AX 10 MOVQ AX, DX 11 MOVQ k1+8(FP), CX 12 MOVQ CX, BX 13 MOVQ $0x736f6d6570736575, BP 14 XORQ BP, AX 15 MOVQ $0x646f72616e646f6d, BP 16 XORQ BP, CX 17 MOVQ $0x6c7967656e657261, BP 18 XORQ BP, DX 19 MOVQ $0x7465646279746573, BP 20 XORQ BP, BX 21 MOVQ p_base+16(FP), BP 22 MOVQ p_len+24(FP), SI 23 MOVQ SI, DI 24 SHLQ $0x38, DI 25 CMPQ SI, $0x08 26 JL loop_end 27 28loop_begin: 29 MOVQ (BP), R8 30 XORQ R8, BX 31 ADDQ CX, AX 32 ADDQ BX, DX 33 ROLQ $0x0d, CX 34 ROLQ $0x10, BX 35 XORQ AX, CX 36 XORQ DX, BX 37 ROLQ $0x20, AX 38 ADDQ CX, DX 39 ADDQ BX, AX 40 ROLQ $0x11, CX 41 ROLQ $0x15, BX 42 XORQ DX, CX 43 XORQ AX, BX 44 ROLQ $0x20, DX 45 XORQ R8, AX 46 ADDQ $0x08, BP 47 SUBQ $0x08, SI 48 CMPQ SI, $0x08 49 JGE loop_begin 50 51loop_end: 52 CMPQ SI, $0x00 53 JE sw0 54 CMPQ SI, $0x01 55 JE sw1 56 CMPQ SI, $0x02 57 JE sw2 58 CMPQ SI, $0x03 59 JE sw3 60 CMPQ SI, $0x04 61 JE sw4 62 CMPQ SI, $0x05 63 JE sw5 64 CMPQ SI, $0x06 65 JE sw6 66 MOVBQZX 6(BP), SI 67 SHLQ $0x30, SI 68 ORQ SI, DI 69 70sw6: 71 MOVBQZX 5(BP), SI 72 SHLQ $0x28, SI 73 ORQ SI, DI 74 75sw5: 76 MOVBQZX 4(BP), SI 77 SHLQ $0x20, SI 78 ORQ SI, DI 79 80sw4: 81 MOVBQZX 3(BP), SI 82 SHLQ $0x18, SI 83 ORQ SI, DI 84 85sw3: 86 MOVBQZX 2(BP), SI 87 SHLQ $0x10, SI 88 ORQ SI, DI 89 90sw2: 91 MOVBQZX 1(BP), SI 92 SHLQ $0x08, SI 93 ORQ SI, DI 94 95sw1: 96 MOVBQZX (BP), SI 97 SHLQ $0x00, SI 98 ORQ SI, DI 99 100sw0: 101 XORQ DI, BX 102 ADDQ CX, AX 103 ADDQ BX, DX 104 ROLQ $0x0d, CX 105 ROLQ $0x10, BX 106 XORQ AX, CX 107 XORQ DX, BX 108 ROLQ $0x20, AX 109 ADDQ CX, DX 110 ADDQ BX, AX 111 ROLQ $0x11, CX 112 ROLQ $0x15, BX 113 XORQ DX, CX 114 XORQ AX, BX 115 ROLQ $0x20, DX 116 XORQ DI, AX 117 XORQ $0xff, DX 118 ADDQ CX, AX 119 ADDQ BX, DX 120 ROLQ $0x0d, CX 121 ROLQ $0x10, BX 122 XORQ AX, CX 123 XORQ DX, BX 124 ROLQ $0x20, AX 125 ADDQ CX, DX 126 ADDQ BX, AX 127 ROLQ $0x11, CX 128 ROLQ $0x15, BX 129 XORQ DX, CX 130 XORQ AX, BX 131 ROLQ $0x20, DX 132 ADDQ CX, AX 133 ADDQ BX, DX 134 ROLQ $0x0d, CX 135 ROLQ $0x10, BX 136 XORQ AX, CX 137 XORQ DX, BX 138 ROLQ $0x20, AX 139 ADDQ CX, DX 140 ADDQ BX, AX 141 ROLQ $0x11, CX 142 ROLQ $0x15, BX 143 XORQ DX, CX 144 XORQ AX, BX 145 ROLQ $0x20, DX 146 ADDQ CX, AX 147 ADDQ BX, DX 148 ROLQ $0x0d, CX 149 ROLQ $0x10, BX 150 XORQ AX, CX 151 XORQ DX, BX 152 ROLQ $0x20, AX 153 ADDQ CX, DX 154 ADDQ BX, AX 155 ROLQ $0x11, CX 156 ROLQ $0x15, BX 157 XORQ DX, CX 158 XORQ AX, BX 159 ROLQ $0x20, DX 160 XORQ CX, AX 161 XORQ BX, DX 162 XORQ DX, AX 163 MOVQ AX, ret+40(FP) 164 RET 165 166// func Sum64Str(k0 uint64, k1 uint64, p string) uint64 167TEXT ·Sum64Str(SB), NOSPLIT, $0-40 168 MOVQ k0+0(FP), AX 169 MOVQ AX, DX 170 MOVQ k1+8(FP), CX 171 MOVQ CX, BX 172 MOVQ $0x736f6d6570736575, BP 173 XORQ BP, AX 174 MOVQ $0x646f72616e646f6d, BP 175 XORQ BP, CX 176 MOVQ $0x6c7967656e657261, BP 177 XORQ BP, DX 178 MOVQ $0x7465646279746573, BP 179 XORQ BP, BX 180 MOVQ p_base+16(FP), BP 181 MOVQ p_len+24(FP), SI 182 MOVQ SI, DI 183 SHLQ $0x38, DI 184 CMPQ SI, $0x08 185 JL loop_end 186 187loop_begin: 188 MOVQ (BP), R8 189 XORQ R8, BX 190 ADDQ CX, AX 191 ADDQ BX, DX 192 ROLQ $0x0d, CX 193 ROLQ $0x10, BX 194 XORQ AX, CX 195 XORQ DX, BX 196 ROLQ $0x20, AX 197 ADDQ CX, DX 198 ADDQ BX, AX 199 ROLQ $0x11, CX 200 ROLQ $0x15, BX 201 XORQ DX, CX 202 XORQ AX, BX 203 ROLQ $0x20, DX 204 XORQ R8, AX 205 ADDQ $0x08, BP 206 SUBQ $0x08, SI 207 CMPQ SI, $0x08 208 JGE loop_begin 209 210loop_end: 211 CMPQ SI, $0x00 212 JE sw0 213 CMPQ SI, $0x01 214 JE sw1 215 CMPQ SI, $0x02 216 JE sw2 217 CMPQ SI, $0x03 218 JE sw3 219 CMPQ SI, $0x04 220 JE sw4 221 CMPQ SI, $0x05 222 JE sw5 223 CMPQ SI, $0x06 224 JE sw6 225 MOVBQZX 6(BP), SI 226 SHLQ $0x30, SI 227 ORQ SI, DI 228 229sw6: 230 MOVBQZX 5(BP), SI 231 SHLQ $0x28, SI 232 ORQ SI, DI 233 234sw5: 235 MOVBQZX 4(BP), SI 236 SHLQ $0x20, SI 237 ORQ SI, DI 238 239sw4: 240 MOVBQZX 3(BP), SI 241 SHLQ $0x18, SI 242 ORQ SI, DI 243 244sw3: 245 MOVBQZX 2(BP), SI 246 SHLQ $0x10, SI 247 ORQ SI, DI 248 249sw2: 250 MOVBQZX 1(BP), SI 251 SHLQ $0x08, SI 252 ORQ SI, DI 253 254sw1: 255 MOVBQZX (BP), SI 256 SHLQ $0x00, SI 257 ORQ SI, DI 258 259sw0: 260 XORQ DI, BX 261 ADDQ CX, AX 262 ADDQ BX, DX 263 ROLQ $0x0d, CX 264 ROLQ $0x10, BX 265 XORQ AX, CX 266 XORQ DX, BX 267 ROLQ $0x20, AX 268 ADDQ CX, DX 269 ADDQ BX, AX 270 ROLQ $0x11, CX 271 ROLQ $0x15, BX 272 XORQ DX, CX 273 XORQ AX, BX 274 ROLQ $0x20, DX 275 XORQ DI, AX 276 XORQ $0xff, DX 277 ADDQ CX, AX 278 ADDQ BX, DX 279 ROLQ $0x0d, CX 280 ROLQ $0x10, BX 281 XORQ AX, CX 282 XORQ DX, BX 283 ROLQ $0x20, AX 284 ADDQ CX, DX 285 ADDQ BX, AX 286 ROLQ $0x11, CX 287 ROLQ $0x15, BX 288 XORQ DX, CX 289 XORQ AX, BX 290 ROLQ $0x20, DX 291 ADDQ CX, AX 292 ADDQ BX, DX 293 ROLQ $0x0d, CX 294 ROLQ $0x10, BX 295 XORQ AX, CX 296 XORQ DX, BX 297 ROLQ $0x20, AX 298 ADDQ CX, DX 299 ADDQ BX, AX 300 ROLQ $0x11, CX 301 ROLQ $0x15, BX 302 XORQ DX, CX 303 XORQ AX, BX 304 ROLQ $0x20, DX 305 ADDQ CX, AX 306 ADDQ BX, DX 307 ROLQ $0x0d, CX 308 ROLQ $0x10, BX 309 XORQ AX, CX 310 XORQ DX, BX 311 ROLQ $0x20, AX 312 ADDQ CX, DX 313 ADDQ BX, AX 314 ROLQ $0x11, CX 315 ROLQ $0x15, BX 316 XORQ DX, CX 317 XORQ AX, BX 318 ROLQ $0x20, DX 319 XORQ CX, AX 320 XORQ BX, DX 321 XORQ DX, AX 322 MOVQ AX, ret+32(FP) 323 RET 324