// Code generated by modernc.org/undup from the per-target sqlite_*.go files; DO NOT EDIT. //go:build (darwin && amd64) || (darwin && arm64) || (freebsd && 386) || (freebsd && arm) || (linux && 386) || (linux && amd64) || (linux && arm) || (linux && arm64) || (linux && loong64) || (linux && ppc64le) || (linux && riscv64) || (linux && s390x) || (netbsd && amd64) || (openbsd && amd64) || (openbsd && arm64) || (windows && (amd64 || arm64)) || (windows && 386) package sqlite3 import ( "modernc.org/libc" ) const SIG_ATOMIC_MAX = 2147483647 const SIG_ATOMIC_MIN = -2147483648 // C documentation // // /* // ** Two inputs are multiplied to get a 128-bit result. Write the // ** lower 64-bits of the result into *pLo, and return the high-order // ** 64 bits. // */ func _sqlite3Multiply128(tls *libc.TLS, a Tu64, b Tu64, pLo uintptr) (r Tu64) { var a0, a0b0, a0b1, a1, a1b0, a1b1, b0, b1, t Tu64 _, _, _, _, _, _, _, _, _ = a0, a0b0, a0b1, a1, a1b0, a1b1, b0, b1, t a0 = uint64(uint32(a)) a1 = a >> int32(32) b0 = uint64(uint32(b)) b1 = b >> int32(32) a0b0 = a0 * b0 a1b1 = a1 * b1 a0b1 = a0 * b1 a1b0 = a1 * b0 t = a0b0>>libc.Int32FromInt32(32) + uint64(uint32(a0b1)) + uint64(uint32(a1b0)) **(**Tu64)(__ccgo_up(pLo)) = a0b0&uint64(0xffffffff) | t<>libc.Int32FromInt32(32) + a1b0>>libc.Int32FromInt32(32) + t>>libc.Int32FromInt32(32) }