//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.
//
//go:noescape
func decompress4x_main_loop_arm64(ctx *decompress4xContext)

// decompress4x_8b_main_loop_arm64 is an arm64 assembler implementation
// of Decompress4X when tablelog <= 8 which decodes 4 entries
// per loop.
//
//go:noescape
func decompress4x_8b_main_loop_arm64(ctx *decompress4xContext)

// decompress1x_main_loop_arm64 is an arm64 assembler implementation
// of Decompress1X when tablelog > 8.
//
//go:noescape
func decompress1x_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 decompress1x_main_loop_asm(ctx *decompress1xContext) {
	decompress1x_main_loop_arm64(ctx)
}
