vendor tsgo

This commit is contained in:
2026-07-09 16:50:43 -04:00
parent c06ea2e5a4
commit 98978e4930
5804 changed files with 1556156 additions and 101 deletions

View File

@@ -0,0 +1,161 @@
//go:build darwin && (amd64 || arm64)
#include "textflag.h"
// fsevents_darwin_ffi.s: shared (amd64+arm64) assembly trampolines
//
// Provides JMP trampolines for CoreFoundation, libdispatch, and CoreServices
// functions imported via //go:cgo_import_dynamic. Each trampoline is paired
// with a GLOBL/DATA address that makes the ABI0 entry point available as a
// Go uintptr, following the pattern used by golang.org/x/sys/unix/
// zsyscall_darwin_*.s.
//
// Arch-specific trampolines (FSEventStreamCreate and the FSEvents callback)
// live in fsevents_darwin_ffi_{amd64,arm64}.s.
// Each TEXT trampoline JMPs to the corresponding cgo_import_dynamic symbol.
// JMP is a Go pseudo-instruction that works on all architectures.
//
// Trampoline TEXT symbols are file-scoped (`<>` suffix); there is no
// Go-side declaration for them. Only the `_addr` variables (declared
// `·name(SB)` for package-scope) are visible from Go. Following the
// pattern used by golang.org/x/sys/unix/zsyscall_darwin_*.s.
//
// Each trampoline is paired with its GLOBL/DATA address, which makes the
// ABI0 address of the trampoline available as a Go uintptr.
// ----- CoreFoundation -----
TEXT fse_CFRelease_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFRelease(SB)
GLOBL ·fse_CFRelease_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFRelease_trampoline_addr(SB)/8, $fse_CFRelease_trampoline<>(SB)
TEXT fse_CFStringCreateWithCString_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFStringCreateWithCString(SB)
GLOBL ·fse_CFStringCreateWithCString_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFStringCreateWithCString_trampoline_addr(SB)/8, $fse_CFStringCreateWithCString_trampoline<>(SB)
TEXT fse_CFArrayCreate_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFArrayCreate(SB)
GLOBL ·fse_CFArrayCreate_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFArrayCreate_trampoline_addr(SB)/8, $fse_CFArrayCreate_trampoline<>(SB)
TEXT fse_CFArrayGetValueAtIndex_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFArrayGetValueAtIndex(SB)
GLOBL ·fse_CFArrayGetValueAtIndex_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFArrayGetValueAtIndex_trampoline_addr(SB)/8, $fse_CFArrayGetValueAtIndex_trampoline<>(SB)
TEXT fse_CFStringCreateMutableCopy_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFStringCreateMutableCopy(SB)
GLOBL ·fse_CFStringCreateMutableCopy_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFStringCreateMutableCopy_trampoline_addr(SB)/8, $fse_CFStringCreateMutableCopy_trampoline<>(SB)
TEXT fse_CFStringNormalize_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFStringNormalize(SB)
GLOBL ·fse_CFStringNormalize_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFStringNormalize_trampoline_addr(SB)/8, $fse_CFStringNormalize_trampoline<>(SB)
TEXT fse_CFStringGetLength_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFStringGetLength(SB)
GLOBL ·fse_CFStringGetLength_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFStringGetLength_trampoline_addr(SB)/8, $fse_CFStringGetLength_trampoline<>(SB)
TEXT fse_CFStringGetMaximumSizeForEncoding_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFStringGetMaximumSizeForEncoding(SB)
GLOBL ·fse_CFStringGetMaximumSizeForEncoding_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFStringGetMaximumSizeForEncoding_trampoline_addr(SB)/8, $fse_CFStringGetMaximumSizeForEncoding_trampoline<>(SB)
TEXT fse_CFStringGetCString_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_CFStringGetCString(SB)
GLOBL ·fse_CFStringGetCString_trampoline_addr(SB), RODATA, $8
DATA ·fse_CFStringGetCString_trampoline_addr(SB)/8, $fse_CFStringGetCString_trampoline<>(SB)
// ----- libdispatch -----
TEXT fse_dispatch_queue_create_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_dispatch_queue_create(SB)
GLOBL ·fse_dispatch_queue_create_trampoline_addr(SB), RODATA, $8
DATA ·fse_dispatch_queue_create_trampoline_addr(SB)/8, $fse_dispatch_queue_create_trampoline<>(SB)
TEXT fse_dispatch_release_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_dispatch_release(SB)
GLOBL ·fse_dispatch_release_trampoline_addr(SB), RODATA, $8
DATA ·fse_dispatch_release_trampoline_addr(SB)/8, $fse_dispatch_release_trampoline<>(SB)
TEXT fse_dispatch_sync_f_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_dispatch_sync_f(SB)
GLOBL ·fse_dispatch_sync_f_trampoline_addr(SB), RODATA, $8
DATA ·fse_dispatch_sync_f_trampoline_addr(SB)/8, $fse_dispatch_sync_f_trampoline<>(SB)
TEXT fse_dispatch_noop<>(SB), NOSPLIT|NOFRAME, $0
RET
GLOBL ·fse_dispatch_noop_addr(SB), RODATA, $8
DATA ·fse_dispatch_noop_addr(SB)/8, $fse_dispatch_noop<>(SB)
// ----- CoreServices / FSEvents -----
// (FSEventStreamCreate is arch-specific; see fsevents_darwin_ffi_{arm64,amd64}.s)
TEXT fse_FSEventStreamSetDispatchQueue_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_FSEventStreamSetDispatchQueue(SB)
GLOBL ·fse_FSEventStreamSetDispatchQueue_trampoline_addr(SB), RODATA, $8
DATA ·fse_FSEventStreamSetDispatchQueue_trampoline_addr(SB)/8, $fse_FSEventStreamSetDispatchQueue_trampoline<>(SB)
TEXT fse_FSEventStreamStart_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_FSEventStreamStart(SB)
GLOBL ·fse_FSEventStreamStart_trampoline_addr(SB), RODATA, $8
DATA ·fse_FSEventStreamStart_trampoline_addr(SB)/8, $fse_FSEventStreamStart_trampoline<>(SB)
TEXT fse_FSEventStreamFlushSync_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_FSEventStreamFlushSync(SB)
GLOBL ·fse_FSEventStreamFlushSync_trampoline_addr(SB), RODATA, $8
DATA ·fse_FSEventStreamFlushSync_trampoline_addr(SB)/8, $fse_FSEventStreamFlushSync_trampoline<>(SB)
TEXT fse_FSEventsGetCurrentEventId_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_FSEventsGetCurrentEventId(SB)
GLOBL ·fse_FSEventsGetCurrentEventId_trampoline_addr(SB), RODATA, $8
DATA ·fse_FSEventsGetCurrentEventId_trampoline_addr(SB)/8, $fse_FSEventsGetCurrentEventId_trampoline<>(SB)
TEXT fse_FSEventStreamStop_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_FSEventStreamStop(SB)
GLOBL ·fse_FSEventStreamStop_trampoline_addr(SB), RODATA, $8
DATA ·fse_FSEventStreamStop_trampoline_addr(SB)/8, $fse_FSEventStreamStop_trampoline<>(SB)
TEXT fse_FSEventStreamInvalidate_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_FSEventStreamInvalidate(SB)
GLOBL ·fse_FSEventStreamInvalidate_trampoline_addr(SB), RODATA, $8
DATA ·fse_FSEventStreamInvalidate_trampoline_addr(SB)/8, $fse_FSEventStreamInvalidate_trampoline<>(SB)
TEXT fse_FSEventStreamRelease_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_FSEventStreamRelease(SB)
GLOBL ·fse_FSEventStreamRelease_trampoline_addr(SB), RODATA, $8
DATA ·fse_FSEventStreamRelease_trampoline_addr(SB)/8, $fse_FSEventStreamRelease_trampoline<>(SB)
// ----- libSystem -----
// free is also called from Go via libcFree, so it has a trampoline address.
TEXT fse_free_trampoline<>(SB), NOSPLIT, $0-0
JMP fse_free(SB)
GLOBL ·fse_free_trampoline_addr(SB), RODATA, $8
DATA ·fse_free_trampoline_addr(SB)/8, $fse_free_trampoline<>(SB)