// Code generated by Makefile, DO NOT EDIT.

/*
 * Copyright 2023 CloudWeGo Authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package avx2
import (
	"unsafe"

	"github.com/cloudwego/dynamicgo/internal/caching"
	"github.com/cloudwego/dynamicgo/internal/rt"
	"github.com/cloudwego/dynamicgo/internal/types"
)

var (
	__i64toa func(out unsafe.Pointer, val int64) (ret int)

    __f64toa func(out unsafe.Pointer, val float64) (ret int)

	__quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int)

	__tb_write_i64 func(buf unsafe.Pointer, v int64) (ret uint64)

	__hm_get func(hm unsafe.Pointer, k unsafe.Pointer) (val unsafe.Pointer)

	__trie_get func(hm unsafe.Pointer, k unsafe.Pointer) (val unsafe.Pointer)

	__j2t_fsm_exec func(fsm unsafe.Pointer, buf unsafe.Pointer, src unsafe.Pointer, flag uint64) (ret uint64)

	__tb_skip func(st unsafe.Pointer, s unsafe.Pointer, n int, t uint8) (ret int)
)

//go:nosplit
func i64toa(out *byte, val int64) (ret int) {
    return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val)
}

//go:nosplit
func f64toa(out *byte, val float64) (ret int) {
    return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val)
}

//go:nosplit
func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) {
    return __quote(rt.NoEscape(unsafe.Pointer(sp)), nb, rt.NoEscape(unsafe.Pointer(dp)), rt.NoEscape(unsafe.Pointer(dn)), flags)
}

//go:nosplit
func tb_write_i64(buf *[]byte, v int64) (ret uint64) {
	return __tb_write_i64(rt.NoEscape(unsafe.Pointer(buf)), v)
}

//go:nosplit
func hm_get(hm *caching.HashMap, k *string) (val unsafe.Pointer) {
	return __hm_get(rt.NoEscape(unsafe.Pointer(hm)), rt.NoEscape(unsafe.Pointer(k)))
}

//go:nosplit
func trie_get(hm *caching.TrieTree, k *string) (val unsafe.Pointer){
	return __trie_get(rt.NoEscape(unsafe.Pointer(hm)), rt.NoEscape(unsafe.Pointer(k)))
}

//go:nosplit
func j2t_fsm_exec(fsm *types.J2TStateMachine, buf *[]byte, src *string, flag uint64) (ret uint64) {
	return __j2t_fsm_exec(rt.NoEscape(unsafe.Pointer(fsm)), rt.NoEscape(unsafe.Pointer(buf)), rt.NoEscape(unsafe.Pointer(src)), flag)
}

//go:nosplit
func tb_skip(st *types.TStateMachine, s *byte, n int, t uint8) (ret int) {
	return __tb_skip(rt.NoEscape(unsafe.Pointer(st)), rt.NoEscape(unsafe.Pointer(s)), n , t )
}
