//go:build arm64 && !appengine && !noasm && gc

// arm64 stubs and dispatch for the asm loops used by decompress_asm.go.
// The asm (decompress_arm64.s) is generated by the avo arm64 lowering
// printer from the same source as the amd64 asm; see _generate/gen.go.
package huff0

// decompress4x_main_loop_arm64 is an arm64 assembler implementation
// of Decompress4X when tablelog > 8, decoding fastSymbols symbols per
// stream between bit container reloads.
//
//go:noescape
func decompress4x_main_loop_arm64(ctx *decompress4xContext)

// decompress4x_8b_main_loop_arm64 is an arm64 assembler implementation
// of Decompress4X when tablelog <= 8, decoding fast8bSymbols symbols
// per stream between bit container reloads.
//
//go:noescape
func decompress4x_8b_main_loop_arm64(ctx *decompress4xContext)

// decompress4x_4b_main_loop_arm64 is an arm64 assembler implementation
// of Decompress4X when tablelog <= 4, decoding fast4bSymbols symbols
// per stream between bit container reloads.
//
//go:noescape
func decompress4x_4b_main_loop_arm64(ctx *decompress4xContext)

// decompress1x_main_loop_arm64 is an arm64 assembler implementation
// of Decompress1X when tablelog > 8, decoding fastSymbols symbols
// between bit container reloads.
//
//go:noescape
func decompress1x_main_loop_arm64(ctx *decompress1xContext)

// decompress1x_8b_main_loop_arm64 is an arm64 assembler implementation
// of Decompress1X when tablelog <= 8, decoding fast8bSymbols symbols
// between bit container reloads.
//
//go:noescape
func decompress1x_8b_main_loop_arm64(ctx *decompress1xContext)

// decompress1x_4b_main_loop_arm64 is an arm64 assembler implementation
// of Decompress1X when tablelog <= 4, decoding fast4bSymbols symbols
// between bit container reloads.
//
//go:noescape
func decompress1x_4b_main_loop_arm64(ctx *decompress1xContext)

func decompress4x_main_loop_asm(ctx *decompress4xContext) {
	decompress4x_main_loop_arm64(ctx)
}

func decompress4x_8b_main_loop_asm(ctx *decompress4xContext) {
	decompress4x_8b_main_loop_arm64(ctx)
}

func decompress4x_4b_main_loop_asm(ctx *decompress4xContext) {
	decompress4x_4b_main_loop_arm64(ctx)
}

func decompress1x_main_loop_asm(ctx *decompress1xContext) {
	decompress1x_main_loop_arm64(ctx)
}

func decompress1x_8b_main_loop_asm(ctx *decompress1xContext) {
	decompress1x_8b_main_loop_arm64(ctx)
}

func decompress1x_4b_main_loop_asm(ctx *decompress1xContext) {
	decompress1x_4b_main_loop_arm64(ctx)
}
