Update dependencies
This commit is contained in:
		
							
								
								
									
										8
									
								
								vendor/github.com/cespare/xxhash/v2/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/cespare/xxhash/v2/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,8 +0,0 @@ | ||||
| language: go | ||||
| go: | ||||
|   - "1.x" | ||||
|   - master | ||||
| env: | ||||
|   - TAGS="" | ||||
|   - TAGS="-tags purego" | ||||
| script: go test $TAGS -v ./... | ||||
							
								
								
									
										6
									
								
								vendor/github.com/cespare/xxhash/v2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/cespare/xxhash/v2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| # xxhash | ||||
|  | ||||
| [](https://godoc.org/github.com/cespare/xxhash) | ||||
| [](https://travis-ci.org/cespare/xxhash) | ||||
| [](https://pkg.go.dev/github.com/cespare/xxhash/v2) | ||||
| [](https://github.com/cespare/xxhash/actions/workflows/test.yml) | ||||
|  | ||||
| xxhash is a Go implementation of the 64-bit | ||||
| [xxHash](http://cyan4973.github.io/xxHash/) algorithm, XXH64. This is a | ||||
| @ -64,4 +64,6 @@ $ go test -benchtime 10s -bench '/xxhash,direct,bytes' | ||||
|  | ||||
| - [InfluxDB](https://github.com/influxdata/influxdb) | ||||
| - [Prometheus](https://github.com/prometheus/prometheus) | ||||
| - [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) | ||||
| - [FreeCache](https://github.com/coocood/freecache) | ||||
| - [FastCache](https://github.com/VictoriaMetrics/fastcache) | ||||
|  | ||||
							
								
								
									
										1
									
								
								vendor/github.com/cespare/xxhash/v2/xxhash.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/cespare/xxhash/v2/xxhash.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -193,7 +193,6 @@ func (d *Digest) UnmarshalBinary(b []byte) error { | ||||
| 	b, d.v4 = consumeUint64(b) | ||||
| 	b, d.total = consumeUint64(b) | ||||
| 	copy(d.mem[:], b) | ||||
| 	b = b[len(d.mem):] | ||||
| 	d.n = int(d.total % uint64(len(d.mem))) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
							
								
								
									
										62
									
								
								vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										62
									
								
								vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -6,7 +6,7 @@ | ||||
|  | ||||
| // Register allocation: | ||||
| // AX	h | ||||
| // CX	pointer to advance through b | ||||
| // SI	pointer to advance through b | ||||
| // DX	n | ||||
| // BX	loop end | ||||
| // R8	v1, k1 | ||||
| @ -16,39 +16,39 @@ | ||||
| // R12	tmp | ||||
| // R13	prime1v | ||||
| // R14	prime2v | ||||
| // R15	prime4v | ||||
| // DI	prime4v | ||||
|  | ||||
| // round reads from and advances the buffer pointer in CX. | ||||
| // round reads from and advances the buffer pointer in SI. | ||||
| // It assumes that R13 has prime1v and R14 has prime2v. | ||||
| #define round(r) \ | ||||
| 	MOVQ  (CX), R12 \ | ||||
| 	ADDQ  $8, CX    \ | ||||
| 	MOVQ  (SI), R12 \ | ||||
| 	ADDQ  $8, SI    \ | ||||
| 	IMULQ R14, R12  \ | ||||
| 	ADDQ  R12, r    \ | ||||
| 	ROLQ  $31, r    \ | ||||
| 	IMULQ R13, r | ||||
|  | ||||
| // mergeRound applies a merge round on the two registers acc and val. | ||||
| // It assumes that R13 has prime1v, R14 has prime2v, and R15 has prime4v. | ||||
| // It assumes that R13 has prime1v, R14 has prime2v, and DI has prime4v. | ||||
| #define mergeRound(acc, val) \ | ||||
| 	IMULQ R14, val \ | ||||
| 	ROLQ  $31, val \ | ||||
| 	IMULQ R13, val \ | ||||
| 	XORQ  val, acc \ | ||||
| 	IMULQ R13, acc \ | ||||
| 	ADDQ  R15, acc | ||||
| 	ADDQ  DI, acc | ||||
|  | ||||
| // func Sum64(b []byte) uint64 | ||||
| TEXT ·Sum64(SB), NOSPLIT, $0-32 | ||||
| 	// Load fixed primes. | ||||
| 	MOVQ ·prime1v(SB), R13 | ||||
| 	MOVQ ·prime2v(SB), R14 | ||||
| 	MOVQ ·prime4v(SB), R15 | ||||
| 	MOVQ ·prime4v(SB), DI | ||||
|  | ||||
| 	// Load slice. | ||||
| 	MOVQ b_base+0(FP), CX | ||||
| 	MOVQ b_base+0(FP), SI | ||||
| 	MOVQ b_len+8(FP), DX | ||||
| 	LEAQ (CX)(DX*1), BX | ||||
| 	LEAQ (SI)(DX*1), BX | ||||
|  | ||||
| 	// The first loop limit will be len(b)-32. | ||||
| 	SUBQ $32, BX | ||||
| @ -65,14 +65,14 @@ TEXT ·Sum64(SB), NOSPLIT, $0-32 | ||||
| 	XORQ R11, R11 | ||||
| 	SUBQ R13, R11 | ||||
|  | ||||
| 	// Loop until CX > BX. | ||||
| 	// Loop until SI > BX. | ||||
| blockLoop: | ||||
| 	round(R8) | ||||
| 	round(R9) | ||||
| 	round(R10) | ||||
| 	round(R11) | ||||
|  | ||||
| 	CMPQ CX, BX | ||||
| 	CMPQ SI, BX | ||||
| 	JLE  blockLoop | ||||
|  | ||||
| 	MOVQ R8, AX | ||||
| @ -100,16 +100,16 @@ noBlocks: | ||||
| afterBlocks: | ||||
| 	ADDQ DX, AX | ||||
|  | ||||
| 	// Right now BX has len(b)-32, and we want to loop until CX > len(b)-8. | ||||
| 	// Right now BX has len(b)-32, and we want to loop until SI > len(b)-8. | ||||
| 	ADDQ $24, BX | ||||
|  | ||||
| 	CMPQ CX, BX | ||||
| 	CMPQ SI, BX | ||||
| 	JG   fourByte | ||||
|  | ||||
| wordLoop: | ||||
| 	// Calculate k1. | ||||
| 	MOVQ  (CX), R8 | ||||
| 	ADDQ  $8, CX | ||||
| 	MOVQ  (SI), R8 | ||||
| 	ADDQ  $8, SI | ||||
| 	IMULQ R14, R8 | ||||
| 	ROLQ  $31, R8 | ||||
| 	IMULQ R13, R8 | ||||
| @ -117,18 +117,18 @@ wordLoop: | ||||
| 	XORQ  R8, AX | ||||
| 	ROLQ  $27, AX | ||||
| 	IMULQ R13, AX | ||||
| 	ADDQ  R15, AX | ||||
| 	ADDQ  DI, AX | ||||
|  | ||||
| 	CMPQ CX, BX | ||||
| 	CMPQ SI, BX | ||||
| 	JLE  wordLoop | ||||
|  | ||||
| fourByte: | ||||
| 	ADDQ $4, BX | ||||
| 	CMPQ CX, BX | ||||
| 	CMPQ SI, BX | ||||
| 	JG   singles | ||||
|  | ||||
| 	MOVL  (CX), R8 | ||||
| 	ADDQ  $4, CX | ||||
| 	MOVL  (SI), R8 | ||||
| 	ADDQ  $4, SI | ||||
| 	IMULQ R13, R8 | ||||
| 	XORQ  R8, AX | ||||
|  | ||||
| @ -138,19 +138,19 @@ fourByte: | ||||
|  | ||||
| singles: | ||||
| 	ADDQ $4, BX | ||||
| 	CMPQ CX, BX | ||||
| 	CMPQ SI, BX | ||||
| 	JGE  finalize | ||||
|  | ||||
| singlesLoop: | ||||
| 	MOVBQZX (CX), R12 | ||||
| 	ADDQ    $1, CX | ||||
| 	MOVBQZX (SI), R12 | ||||
| 	ADDQ    $1, SI | ||||
| 	IMULQ   ·prime5v(SB), R12 | ||||
| 	XORQ    R12, AX | ||||
|  | ||||
| 	ROLQ  $11, AX | ||||
| 	IMULQ R13, AX | ||||
|  | ||||
| 	CMPQ CX, BX | ||||
| 	CMPQ SI, BX | ||||
| 	JL   singlesLoop | ||||
|  | ||||
| finalize: | ||||
| @ -179,9 +179,9 @@ TEXT ·writeBlocks(SB), NOSPLIT, $0-40 | ||||
| 	MOVQ ·prime2v(SB), R14 | ||||
|  | ||||
| 	// Load slice. | ||||
| 	MOVQ b_base+8(FP), CX | ||||
| 	MOVQ b_base+8(FP), SI | ||||
| 	MOVQ b_len+16(FP), DX | ||||
| 	LEAQ (CX)(DX*1), BX | ||||
| 	LEAQ (SI)(DX*1), BX | ||||
| 	SUBQ $32, BX | ||||
|  | ||||
| 	// Load vN from d. | ||||
| @ -199,7 +199,7 @@ blockLoop: | ||||
| 	round(R10) | ||||
| 	round(R11) | ||||
|  | ||||
| 	CMPQ CX, BX | ||||
| 	CMPQ SI, BX | ||||
| 	JLE  blockLoop | ||||
|  | ||||
| 	// Copy vN back to d. | ||||
| @ -208,8 +208,8 @@ blockLoop: | ||||
| 	MOVQ R10, 16(AX) | ||||
| 	MOVQ R11, 24(AX) | ||||
|  | ||||
| 	// The number of bytes written is CX minus the old base pointer. | ||||
| 	SUBQ b_base+8(FP), CX | ||||
| 	MOVQ CX, ret+32(FP) | ||||
| 	// The number of bytes written is SI minus the old base pointer. | ||||
| 	SUBQ b_base+8(FP), SI | ||||
| 	MOVQ SI, ret+32(FP) | ||||
|  | ||||
| 	RET | ||||
|  | ||||
							
								
								
									
										55
									
								
								vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										55
									
								
								vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -6,41 +6,52 @@ | ||||
| package xxhash | ||||
|  | ||||
| import ( | ||||
| 	"reflect" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| // Notes: | ||||
| // | ||||
| // See https://groups.google.com/d/msg/golang-nuts/dcjzJy-bSpw/tcZYBzQqAQAJ | ||||
| // for some discussion about these unsafe conversions. | ||||
| // | ||||
| // In the future it's possible that compiler optimizations will make these | ||||
| // unsafe operations unnecessary: https://golang.org/issue/2205. | ||||
| // XxxString functions unnecessary by realizing that calls such as | ||||
| // Sum64([]byte(s)) don't need to copy s. See https://golang.org/issue/2205. | ||||
| // If that happens, even if we keep these functions they can be replaced with | ||||
| // the trivial safe code. | ||||
|  | ||||
| // NOTE: The usual way of doing an unsafe string-to-[]byte conversion is: | ||||
| // | ||||
| // Both of these wrapper functions still incur function call overhead since they | ||||
| // will not be inlined. We could write Go/asm copies of Sum64 and Digest.Write | ||||
| // for strings to squeeze out a bit more speed. Mid-stack inlining should | ||||
| // eventually fix this. | ||||
| //   var b []byte | ||||
| //   bh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) | ||||
| //   bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data | ||||
| //   bh.Len = len(s) | ||||
| //   bh.Cap = len(s) | ||||
| // | ||||
| // Unfortunately, as of Go 1.15.3 the inliner's cost model assigns a high enough | ||||
| // weight to this sequence of expressions that any function that uses it will | ||||
| // not be inlined. Instead, the functions below use a different unsafe | ||||
| // conversion designed to minimize the inliner weight and allow both to be | ||||
| // inlined. There is also a test (TestInlining) which verifies that these are | ||||
| // inlined. | ||||
| // | ||||
| // See https://github.com/golang/go/issues/42739 for discussion. | ||||
|  | ||||
| // Sum64String computes the 64-bit xxHash digest of s. | ||||
| // It may be faster than Sum64([]byte(s)) by avoiding a copy. | ||||
| func Sum64String(s string) uint64 { | ||||
| 	var b []byte | ||||
| 	bh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) | ||||
| 	bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data | ||||
| 	bh.Len = len(s) | ||||
| 	bh.Cap = len(s) | ||||
| 	b := *(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)})) | ||||
| 	return Sum64(b) | ||||
| } | ||||
|  | ||||
| // WriteString adds more data to d. It always returns len(s), nil. | ||||
| // It may be faster than Write([]byte(s)) by avoiding a copy. | ||||
| func (d *Digest) WriteString(s string) (n int, err error) { | ||||
| 	var b []byte | ||||
| 	bh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) | ||||
| 	bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data | ||||
| 	bh.Len = len(s) | ||||
| 	bh.Cap = len(s) | ||||
| 	return d.Write(b) | ||||
| 	d.Write(*(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)}))) | ||||
| 	// d.Write always returns len(s), nil. | ||||
| 	// Ignoring the return output and returning these fixed values buys a | ||||
| 	// savings of 6 in the inliner's cost model. | ||||
| 	return len(s), nil | ||||
| } | ||||
|  | ||||
| // sliceHeader is similar to reflect.SliceHeader, but it assumes that the layout | ||||
| // of the first two words is the same as the layout of a string. | ||||
| type sliceHeader struct { | ||||
| 	s   string | ||||
| 	cap int | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user