koffi 2.16.1 → 3.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -2
- package/README.md +8 -8
- package/build/koffi/darwin_arm64/koffi.node +0 -0
- package/build/koffi/darwin_x64/koffi.node +0 -0
- package/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/build/koffi/freebsd_x64/koffi.node +0 -0
- package/build/koffi/linux_arm64/koffi.node +0 -0
- package/build/koffi/linux_ia32/koffi.node +0 -0
- package/build/koffi/linux_x64/koffi.node +0 -0
- package/build/koffi/musl_arm64/koffi.node +0 -0
- package/build/koffi/musl_x64/koffi.node +0 -0
- package/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/build/koffi/openbsd_x64/koffi.node +0 -0
- package/build/koffi/win32_ia32/koffi.node +0 -0
- package/build/koffi/win32_x64/koffi.node +0 -0
- package/doc/benchmarks.md +33 -33
- package/doc/benchmarks.xlsx +0 -0
- package/doc/contribute.md +37 -25
- package/doc/index.md +8 -8
- package/doc/variables.md +1 -1
- package/index.d.ts +11 -9
- package/index.js +1 -634
- package/indirect.js +1 -533
- package/lib/native/base/base.cc +63 -85
- package/lib/native/base/base.hh +178 -151
- package/package.json +3 -4
- package/src/build.js +1178 -0
- package/src/koffi/CMakeLists.txt +97 -34
- package/src/koffi/index.js +359 -0
- package/src/koffi/indirect.js +216 -0
- package/src/koffi/src/{abi_arm32.cc → abi/arm32.cc} +279 -275
- package/src/koffi/src/{abi_arm32_asm.S → abi/arm32_asm.S} +2 -5
- package/src/koffi/src/abi/arm64.cc +1511 -0
- package/src/koffi/src/{abi_arm64_asm.S → abi/arm64_asm.S} +44 -23
- package/src/koffi/src/{abi_arm64_asm.asm → abi/arm64_asm.asm} +32 -25
- package/src/koffi/src/{abi_loong64_asm.S → abi/loong64_asm.S} +1 -5
- package/src/koffi/src/{abi_riscv64.cc → abi/riscv64.cc} +279 -273
- package/src/koffi/src/{abi_riscv64_asm.S → abi/riscv64_asm.S} +1 -4
- package/src/koffi/src/abi/x64sysv.cc +1456 -0
- package/src/koffi/src/{abi_x64_sysv_asm.S → abi/x64sysv_asm.S} +30 -33
- package/src/koffi/src/abi/x64win.cc +1121 -0
- package/src/koffi/src/{abi_x64_win_asm.S → abi/x64win_asm.S} +8 -12
- package/src/koffi/src/{abi_x64_win_asm.asm → abi/x64win_asm.asm} +11 -14
- package/src/koffi/src/abi/x86.cc +1233 -0
- package/src/koffi/src/{abi_x86_asm.S → abi/x86_asm.S} +49 -25
- package/src/koffi/src/{abi_x86_asm.asm → abi/x86_asm.asm} +11 -14
- package/src/koffi/src/call.cc +458 -598
- package/src/koffi/src/call.hh +61 -82
- package/src/koffi/src/ffi.cc +595 -309
- package/src/koffi/src/ffi.hh +103 -89
- package/src/koffi/src/parser.cc +0 -4
- package/src/koffi/src/primitives.inc +39 -0
- package/src/koffi/{tools/write_trampolines.js → src/trampolines.js} +1 -1
- package/src/koffi/src/util.cc +503 -446
- package/src/koffi/src/util.hh +269 -57
- package/src/koffi/src/uv.cc +2 -2
- package/src/koffi/src/uv.def +3 -0
- package/src/koffi/src/win32.hh +30 -1
- package/vendor/node-addon-api/napi-inl.h +4 -0
- package/vendor/node-addon-api/napi.h +1 -0
- package/build/koffi/linux_armhf/koffi.node +0 -0
- package/build/koffi/linux_loong64/koffi.node +0 -0
- package/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/build/koffi/win32_arm64/koffi.exp +0 -0
- package/build/koffi/win32_arm64/koffi.lib +0 -0
- package/build/koffi/win32_arm64/koffi.node +0 -0
- package/doc/platforms.md +0 -36
- package/src/cnoke/LICENSE.txt +0 -22
- package/src/cnoke/README.md +0 -99
- package/src/cnoke/assets/FindCNoke.cmake +0 -127
- package/src/cnoke/assets/toolchains.json +0 -126
- package/src/cnoke/assets/win_delay_hook.c +0 -36
- package/src/cnoke/cnoke.js +0 -170
- package/src/cnoke/package.json +0 -24
- package/src/cnoke/src/builder.js +0 -511
- package/src/cnoke/src/index.js +0 -10
- package/src/cnoke/src/tools.js +0 -407
- package/src/koffi/src/abi_arm64.cc +0 -1295
- package/src/koffi/src/abi_x64_sysv.cc +0 -939
- package/src/koffi/src/abi_x64_win.cc +0 -715
- package/src/koffi/src/abi_x86.cc +0 -860
- package/src/koffi/src/init.js +0 -105
- /package/src/koffi/src/{abi_loong64.cc → abi/loong64.cc} +0 -0
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
.global ForwardCallG
|
|
10
10
|
.global ForwardCallF
|
|
11
11
|
.global ForwardCallD
|
|
12
|
-
.global
|
|
13
|
-
.global
|
|
14
|
-
.global
|
|
12
|
+
.global ForwardCallGX
|
|
13
|
+
.global ForwardCallFX
|
|
14
|
+
.global ForwardCallDX
|
|
15
15
|
|
|
16
16
|
.global SehHandler
|
|
17
17
|
|
|
@@ -75,19 +75,19 @@ ForwardCallD:
|
|
|
75
75
|
forward_gpr
|
|
76
76
|
jmp CallNative
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
ForwardCallGX:
|
|
79
79
|
prologue
|
|
80
80
|
forward_xmm
|
|
81
81
|
forward_gpr
|
|
82
82
|
jmp CallNative
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
ForwardCallFX:
|
|
85
85
|
prologue
|
|
86
86
|
forward_xmm
|
|
87
87
|
forward_gpr
|
|
88
88
|
jmp CallNative
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
ForwardCallDX:
|
|
91
91
|
prologue
|
|
92
92
|
forward_xmm
|
|
93
93
|
forward_gpr
|
|
@@ -114,7 +114,6 @@ ForwardCallXD:
|
|
|
114
114
|
.endm
|
|
115
115
|
|
|
116
116
|
RelayTrampoline:
|
|
117
|
-
endbr64
|
|
118
117
|
subq $120, %rsp
|
|
119
118
|
movq %rcx, 32(%rsp)
|
|
120
119
|
movq %rdx, 40(%rsp)
|
|
@@ -141,11 +140,8 @@ SwitchAndRelay:
|
|
|
141
140
|
endbr64
|
|
142
141
|
push %rbp
|
|
143
142
|
movq %rsp, %rbp
|
|
144
|
-
movq %rsp, %r10
|
|
145
|
-
movq
|
|
146
|
-
subq 0(%r11), %r10
|
|
147
|
-
andq $-16, %r10
|
|
148
|
-
movq %r10, 8(%r11)
|
|
143
|
+
movq 48(%rsp), %r10
|
|
144
|
+
movq %rsp, 8(%r10)
|
|
149
145
|
leaq -32(%r9), %rsp
|
|
150
146
|
call RelayDirect
|
|
151
147
|
movq %rbp, %rsp
|
|
@@ -11,9 +11,9 @@ public ForwardCallF
|
|
|
11
11
|
public ForwardCallD
|
|
12
12
|
|
|
13
13
|
; The X variants are slightly slower, and are used when XMM arguments must be forwarded.
|
|
14
|
-
public
|
|
15
|
-
public
|
|
16
|
-
public
|
|
14
|
+
public ForwardCallGX
|
|
15
|
+
public ForwardCallFX
|
|
16
|
+
public ForwardCallDX
|
|
17
17
|
|
|
18
18
|
extern SehHandler : PROC
|
|
19
19
|
|
|
@@ -83,26 +83,26 @@ ForwardCallD proc frame
|
|
|
83
83
|
jmp CallNative
|
|
84
84
|
ForwardCallD endp
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
ForwardCallGX proc frame
|
|
87
87
|
prologue
|
|
88
88
|
forward_xmm
|
|
89
89
|
forward_gpr
|
|
90
90
|
jmp CallNative
|
|
91
|
-
|
|
91
|
+
ForwardCallGX endp
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
ForwardCallFX proc frame
|
|
94
94
|
prologue
|
|
95
95
|
forward_xmm
|
|
96
96
|
forward_gpr
|
|
97
97
|
jmp CallNative
|
|
98
|
-
|
|
98
|
+
ForwardCallFX endp
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
ForwardCallDX proc frame
|
|
101
101
|
prologue
|
|
102
102
|
forward_xmm
|
|
103
103
|
forward_gpr
|
|
104
104
|
jmp CallNative
|
|
105
|
-
|
|
105
|
+
ForwardCallDX endp
|
|
106
106
|
|
|
107
107
|
; Callbacks
|
|
108
108
|
; ----------------------------
|
|
@@ -158,11 +158,8 @@ SwitchAndRelay proc frame
|
|
|
158
158
|
mov rbp, rsp
|
|
159
159
|
.setframe rbp, 0
|
|
160
160
|
.endprolog
|
|
161
|
-
mov r10, rsp
|
|
162
|
-
mov
|
|
163
|
-
sub r10, qword ptr [r11+0]
|
|
164
|
-
and r10, -16
|
|
165
|
-
mov qword ptr [r11+8], r10
|
|
161
|
+
mov r10, qword ptr [rsp+48]
|
|
162
|
+
mov qword ptr [r10+8], rsp
|
|
166
163
|
lea rsp, [r9-32]
|
|
167
164
|
call RelayDirect
|
|
168
165
|
mov rsp, rbp
|