123456789101112131415161718192021222324252627282930313233343536373839404142 |
- //go:generate make
- package base64x
- import (
- `unsafe`
- `github.com/bytedance/sonic/loader`
- )
- //go:nosplit
- func b64encode(out *[]byte, src *[]byte, mode int) {
- __b64encode(noEscape(unsafe.Pointer(out)), noEscape(unsafe.Pointer(src)), mode)
- }
- //go:nosplit
- func b64decode(out *[]byte, src unsafe.Pointer, len int, mode int) (ret int) {
- return __b64decode(noEscape(unsafe.Pointer(out)), noEscape(unsafe.Pointer(src)), len, mode)
- }
- // asm2asm templates
- var (
- __b64encode func(out unsafe.Pointer, src unsafe.Pointer, mod int)
- __b64decode func(out unsafe.Pointer, src unsafe.Pointer, len int, mod int) (ret int)
- )
- // directly jump PCs
- var (
- _subr__b64encode uintptr
- _subr__b64decode uintptr
- )
- var stubs = []loader.GoC{
- {"_b64encode", &_subr__b64encode, &__b64encode},
- {"_b64decode", &_subr__b64decode, &__b64decode},
- }
- func init() {
- if hasAVX2() {
- archFlags = _MODE_AVX2
- }
- loader.WrapGoC(text__native_entry__, funcs, stubs, "base64x", "base64x/native.c")
- }
|