encodeblock_amd64.go raw

   1  // Code generated by command: go run gen.go -out ../encodeblock_amd64.s -stubs ../encodeblock_amd64.go -pkg=s2. DO NOT EDIT.
   2  
   3  //go:build !appengine && !noasm && gc && !noasm
   4  
   5  package s2
   6  
   7  func _dummy_()
   8  
   9  // encodeBlockAsm encodes a non-empty src to a guaranteed-large-enough dst.
  10  // Maximum input 4294967295 bytes.
  11  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  12  //
  13  //go:noescape
  14  func encodeBlockAsm(dst []byte, src []byte, tmp *[65536]byte) int
  15  
  16  // encodeBlockAsm4MB encodes a non-empty src to a guaranteed-large-enough dst.
  17  // Maximum input 4194304 bytes.
  18  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  19  //
  20  //go:noescape
  21  func encodeBlockAsm4MB(dst []byte, src []byte, tmp *[65536]byte) int
  22  
  23  // encodeBlockAsm12B encodes a non-empty src to a guaranteed-large-enough dst.
  24  // Maximum input 16383 bytes.
  25  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  26  //
  27  //go:noescape
  28  func encodeBlockAsm12B(dst []byte, src []byte, tmp *[16384]byte) int
  29  
  30  // encodeBlockAsm10B encodes a non-empty src to a guaranteed-large-enough dst.
  31  // Maximum input 4095 bytes.
  32  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  33  //
  34  //go:noescape
  35  func encodeBlockAsm10B(dst []byte, src []byte, tmp *[4096]byte) int
  36  
  37  // encodeBlockAsm8B encodes a non-empty src to a guaranteed-large-enough dst.
  38  // Maximum input 511 bytes.
  39  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  40  //
  41  //go:noescape
  42  func encodeBlockAsm8B(dst []byte, src []byte, tmp *[1024]byte) int
  43  
  44  // encodeBetterBlockAsm encodes a non-empty src to a guaranteed-large-enough dst.
  45  // Maximum input 4294967295 bytes.
  46  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  47  //
  48  //go:noescape
  49  func encodeBetterBlockAsm(dst []byte, src []byte, tmp *[589824]byte) int
  50  
  51  // encodeBetterBlockAsm4MB encodes a non-empty src to a guaranteed-large-enough dst.
  52  // Maximum input 4194304 bytes.
  53  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  54  //
  55  //go:noescape
  56  func encodeBetterBlockAsm4MB(dst []byte, src []byte, tmp *[589824]byte) int
  57  
  58  // encodeBetterBlockAsm12B encodes a non-empty src to a guaranteed-large-enough dst.
  59  // Maximum input 16383 bytes.
  60  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  61  //
  62  //go:noescape
  63  func encodeBetterBlockAsm12B(dst []byte, src []byte, tmp *[81920]byte) int
  64  
  65  // encodeBetterBlockAsm10B encodes a non-empty src to a guaranteed-large-enough dst.
  66  // Maximum input 4095 bytes.
  67  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  68  //
  69  //go:noescape
  70  func encodeBetterBlockAsm10B(dst []byte, src []byte, tmp *[20480]byte) int
  71  
  72  // encodeBetterBlockAsm8B encodes a non-empty src to a guaranteed-large-enough dst.
  73  // Maximum input 511 bytes.
  74  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  75  //
  76  //go:noescape
  77  func encodeBetterBlockAsm8B(dst []byte, src []byte, tmp *[5120]byte) int
  78  
  79  // encodeSnappyBlockAsm encodes a non-empty src to a guaranteed-large-enough dst.
  80  // Maximum input 4294967295 bytes.
  81  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  82  //
  83  //go:noescape
  84  func encodeSnappyBlockAsm(dst []byte, src []byte, tmp *[65536]byte) int
  85  
  86  // encodeSnappyBlockAsm64K encodes a non-empty src to a guaranteed-large-enough dst.
  87  // Maximum input 65535 bytes.
  88  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  89  //
  90  //go:noescape
  91  func encodeSnappyBlockAsm64K(dst []byte, src []byte, tmp *[65536]byte) int
  92  
  93  // encodeSnappyBlockAsm12B encodes a non-empty src to a guaranteed-large-enough dst.
  94  // Maximum input 16383 bytes.
  95  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
  96  //
  97  //go:noescape
  98  func encodeSnappyBlockAsm12B(dst []byte, src []byte, tmp *[16384]byte) int
  99  
 100  // encodeSnappyBlockAsm10B encodes a non-empty src to a guaranteed-large-enough dst.
 101  // Maximum input 4095 bytes.
 102  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 103  //
 104  //go:noescape
 105  func encodeSnappyBlockAsm10B(dst []byte, src []byte, tmp *[4096]byte) int
 106  
 107  // encodeSnappyBlockAsm8B encodes a non-empty src to a guaranteed-large-enough dst.
 108  // Maximum input 511 bytes.
 109  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 110  //
 111  //go:noescape
 112  func encodeSnappyBlockAsm8B(dst []byte, src []byte, tmp *[1024]byte) int
 113  
 114  // encodeSnappyBetterBlockAsm encodes a non-empty src to a guaranteed-large-enough dst.
 115  // Maximum input 4294967295 bytes.
 116  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 117  //
 118  //go:noescape
 119  func encodeSnappyBetterBlockAsm(dst []byte, src []byte, tmp *[589824]byte) int
 120  
 121  // encodeSnappyBetterBlockAsm64K encodes a non-empty src to a guaranteed-large-enough dst.
 122  // Maximum input 65535 bytes.
 123  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 124  //
 125  //go:noescape
 126  func encodeSnappyBetterBlockAsm64K(dst []byte, src []byte, tmp *[294912]byte) int
 127  
 128  // encodeSnappyBetterBlockAsm12B encodes a non-empty src to a guaranteed-large-enough dst.
 129  // Maximum input 16383 bytes.
 130  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 131  //
 132  //go:noescape
 133  func encodeSnappyBetterBlockAsm12B(dst []byte, src []byte, tmp *[81920]byte) int
 134  
 135  // encodeSnappyBetterBlockAsm10B encodes a non-empty src to a guaranteed-large-enough dst.
 136  // Maximum input 4095 bytes.
 137  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 138  //
 139  //go:noescape
 140  func encodeSnappyBetterBlockAsm10B(dst []byte, src []byte, tmp *[20480]byte) int
 141  
 142  // encodeSnappyBetterBlockAsm8B encodes a non-empty src to a guaranteed-large-enough dst.
 143  // Maximum input 511 bytes.
 144  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 145  //
 146  //go:noescape
 147  func encodeSnappyBetterBlockAsm8B(dst []byte, src []byte, tmp *[5120]byte) int
 148  
 149  // calcBlockSize encodes a non-empty src to a guaranteed-large-enough dst.
 150  // Maximum input 4294967295 bytes.
 151  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 152  //
 153  //go:noescape
 154  func calcBlockSize(src []byte, tmp *[32768]byte) int
 155  
 156  // calcBlockSizeSmall encodes a non-empty src to a guaranteed-large-enough dst.
 157  // Maximum input 1024 bytes.
 158  // It assumes that the varint-encoded length of the decompressed bytes has already been written.
 159  //
 160  //go:noescape
 161  func calcBlockSizeSmall(src []byte, tmp *[2048]byte) int
 162  
 163  // emitLiteral writes a literal chunk and returns the number of bytes written.
 164  //
 165  // It assumes that:
 166  //
 167  //	dst is long enough to hold the encoded bytes with margin of 0 bytes
 168  //	0 <= len(lit) && len(lit) <= math.MaxUint32
 169  //
 170  //go:noescape
 171  func emitLiteral(dst []byte, lit []byte) int
 172  
 173  // emitRepeat writes a repeat chunk and returns the number of bytes written.
 174  // Length must be at least 4 and < 1<<32
 175  //
 176  //go:noescape
 177  func emitRepeat(dst []byte, offset int, length int) int
 178  
 179  // emitCopy writes a copy chunk and returns the number of bytes written.
 180  //
 181  // It assumes that:
 182  //
 183  //	dst is long enough to hold the encoded bytes
 184  //	1 <= offset && offset <= math.MaxUint32
 185  //	4 <= length && length <= 1 << 24
 186  //
 187  //go:noescape
 188  func emitCopy(dst []byte, offset int, length int) int
 189  
 190  // emitCopyNoRepeat writes a copy chunk and returns the number of bytes written.
 191  //
 192  // It assumes that:
 193  //
 194  //	dst is long enough to hold the encoded bytes
 195  //	1 <= offset && offset <= math.MaxUint32
 196  //	4 <= length && length <= 1 << 24
 197  //
 198  //go:noescape
 199  func emitCopyNoRepeat(dst []byte, offset int, length int) int
 200  
 201  // matchLen returns how many bytes match in a and b
 202  //
 203  // It assumes that:
 204  //
 205  //	len(a) <= len(b)
 206  //
 207  //go:noescape
 208  func matchLen(a []byte, b []byte) int
 209  
 210  // cvtLZ4Block converts an LZ4 block to S2
 211  //
 212  //go:noescape
 213  func cvtLZ4BlockAsm(dst []byte, src []byte) (uncompressed int, dstUsed int)
 214  
 215  // cvtLZ4sBlock converts an LZ4s block to S2
 216  //
 217  //go:noescape
 218  func cvtLZ4sBlockAsm(dst []byte, src []byte) (uncompressed int, dstUsed int)
 219  
 220  // cvtLZ4Block converts an LZ4 block to Snappy
 221  //
 222  //go:noescape
 223  func cvtLZ4BlockSnappyAsm(dst []byte, src []byte) (uncompressed int, dstUsed int)
 224  
 225  // cvtLZ4sBlock converts an LZ4s block to Snappy
 226  //
 227  //go:noescape
 228  func cvtLZ4sBlockSnappyAsm(dst []byte, src []byte) (uncompressed int, dstUsed int)
 229