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.
Files changed (84) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/README.md +8 -8
  3. package/build/koffi/darwin_arm64/koffi.node +0 -0
  4. package/build/koffi/darwin_x64/koffi.node +0 -0
  5. package/build/koffi/freebsd_arm64/koffi.node +0 -0
  6. package/build/koffi/freebsd_ia32/koffi.node +0 -0
  7. package/build/koffi/freebsd_x64/koffi.node +0 -0
  8. package/build/koffi/linux_arm64/koffi.node +0 -0
  9. package/build/koffi/linux_ia32/koffi.node +0 -0
  10. package/build/koffi/linux_x64/koffi.node +0 -0
  11. package/build/koffi/musl_arm64/koffi.node +0 -0
  12. package/build/koffi/musl_x64/koffi.node +0 -0
  13. package/build/koffi/openbsd_ia32/koffi.node +0 -0
  14. package/build/koffi/openbsd_x64/koffi.node +0 -0
  15. package/build/koffi/win32_ia32/koffi.node +0 -0
  16. package/build/koffi/win32_x64/koffi.node +0 -0
  17. package/doc/benchmarks.md +33 -33
  18. package/doc/benchmarks.xlsx +0 -0
  19. package/doc/contribute.md +37 -25
  20. package/doc/index.md +8 -8
  21. package/doc/variables.md +1 -1
  22. package/index.d.ts +11 -9
  23. package/index.js +1 -634
  24. package/indirect.js +1 -533
  25. package/lib/native/base/base.cc +63 -85
  26. package/lib/native/base/base.hh +178 -151
  27. package/package.json +3 -4
  28. package/src/build.js +1178 -0
  29. package/src/koffi/CMakeLists.txt +97 -34
  30. package/src/koffi/index.js +359 -0
  31. package/src/koffi/indirect.js +216 -0
  32. package/src/koffi/src/{abi_arm32.cc → abi/arm32.cc} +279 -275
  33. package/src/koffi/src/{abi_arm32_asm.S → abi/arm32_asm.S} +2 -5
  34. package/src/koffi/src/abi/arm64.cc +1511 -0
  35. package/src/koffi/src/{abi_arm64_asm.S → abi/arm64_asm.S} +44 -23
  36. package/src/koffi/src/{abi_arm64_asm.asm → abi/arm64_asm.asm} +32 -25
  37. package/src/koffi/src/{abi_loong64_asm.S → abi/loong64_asm.S} +1 -5
  38. package/src/koffi/src/{abi_riscv64.cc → abi/riscv64.cc} +279 -273
  39. package/src/koffi/src/{abi_riscv64_asm.S → abi/riscv64_asm.S} +1 -4
  40. package/src/koffi/src/abi/x64sysv.cc +1456 -0
  41. package/src/koffi/src/{abi_x64_sysv_asm.S → abi/x64sysv_asm.S} +30 -33
  42. package/src/koffi/src/abi/x64win.cc +1121 -0
  43. package/src/koffi/src/{abi_x64_win_asm.S → abi/x64win_asm.S} +8 -12
  44. package/src/koffi/src/{abi_x64_win_asm.asm → abi/x64win_asm.asm} +11 -14
  45. package/src/koffi/src/abi/x86.cc +1233 -0
  46. package/src/koffi/src/{abi_x86_asm.S → abi/x86_asm.S} +49 -25
  47. package/src/koffi/src/{abi_x86_asm.asm → abi/x86_asm.asm} +11 -14
  48. package/src/koffi/src/call.cc +458 -598
  49. package/src/koffi/src/call.hh +61 -82
  50. package/src/koffi/src/ffi.cc +595 -309
  51. package/src/koffi/src/ffi.hh +103 -89
  52. package/src/koffi/src/parser.cc +0 -4
  53. package/src/koffi/src/primitives.inc +39 -0
  54. package/src/koffi/{tools/write_trampolines.js → src/trampolines.js} +1 -1
  55. package/src/koffi/src/util.cc +503 -446
  56. package/src/koffi/src/util.hh +269 -57
  57. package/src/koffi/src/uv.cc +2 -2
  58. package/src/koffi/src/uv.def +3 -0
  59. package/src/koffi/src/win32.hh +30 -1
  60. package/vendor/node-addon-api/napi-inl.h +4 -0
  61. package/vendor/node-addon-api/napi.h +1 -0
  62. package/build/koffi/linux_armhf/koffi.node +0 -0
  63. package/build/koffi/linux_loong64/koffi.node +0 -0
  64. package/build/koffi/linux_riscv64d/koffi.node +0 -0
  65. package/build/koffi/win32_arm64/koffi.exp +0 -0
  66. package/build/koffi/win32_arm64/koffi.lib +0 -0
  67. package/build/koffi/win32_arm64/koffi.node +0 -0
  68. package/doc/platforms.md +0 -36
  69. package/src/cnoke/LICENSE.txt +0 -22
  70. package/src/cnoke/README.md +0 -99
  71. package/src/cnoke/assets/FindCNoke.cmake +0 -127
  72. package/src/cnoke/assets/toolchains.json +0 -126
  73. package/src/cnoke/assets/win_delay_hook.c +0 -36
  74. package/src/cnoke/cnoke.js +0 -170
  75. package/src/cnoke/package.json +0 -24
  76. package/src/cnoke/src/builder.js +0 -511
  77. package/src/cnoke/src/index.js +0 -10
  78. package/src/cnoke/src/tools.js +0 -407
  79. package/src/koffi/src/abi_arm64.cc +0 -1295
  80. package/src/koffi/src/abi_x64_sysv.cc +0 -939
  81. package/src/koffi/src/abi_x64_win.cc +0 -715
  82. package/src/koffi/src/abi_x86.cc +0 -860
  83. package/src/koffi/src/init.js +0 -105
  84. /package/src/koffi/src/{abi_loong64.cc → abi/loong64.cc} +0 -0
@@ -19,11 +19,11 @@
19
19
  .global SYMBOL(ForwardCallDD)
20
20
 
21
21
  # The X variants are slightly slower, and are used when XMM arguments must be forwarded.
22
- .global SYMBOL(ForwardCallXGG)
23
- .global SYMBOL(ForwardCallXF)
24
- .global SYMBOL(ForwardCallXDG)
25
- .global SYMBOL(ForwardCallXGD)
26
- .global SYMBOL(ForwardCallXDD)
22
+ .global SYMBOL(ForwardCallGGX)
23
+ .global SYMBOL(ForwardCallFX)
24
+ .global SYMBOL(ForwardCallDGX)
25
+ .global SYMBOL(ForwardCallGDX)
26
+ .global SYMBOL(ForwardCallDDX)
27
27
 
28
28
  #define ENDBR64 .byte 0xf3, 0x0f, 0x1e, 0xfa
29
29
 
@@ -40,7 +40,7 @@
40
40
  movq %rsp, (%rdx)
41
41
  movq %rsp, %rbp
42
42
  .cfi_def_cfa rbp, 16
43
- leaq 112(%rsi), %rsp
43
+ leaq 128(%rsi), %rsp
44
44
  .endm
45
45
 
46
46
  # Call native function.
@@ -107,35 +107,35 @@ SYMBOL(ForwardCallDD):
107
107
  movb $0, %al
108
108
  epilogue
109
109
 
110
- SYMBOL(ForwardCallXGG):
110
+ SYMBOL(ForwardCallGGX):
111
111
  prologue
112
112
  forward_xmm
113
113
  forward_gpr
114
114
  movb $8, %al
115
115
  epilogue
116
116
 
117
- SYMBOL(ForwardCallXF):
117
+ SYMBOL(ForwardCallFX):
118
118
  prologue
119
119
  forward_xmm
120
120
  forward_gpr
121
121
  movb $8, %al
122
122
  epilogue
123
123
 
124
- SYMBOL(ForwardCallXDG):
124
+ SYMBOL(ForwardCallDGX):
125
125
  prologue
126
126
  forward_xmm
127
127
  forward_gpr
128
128
  movb $8, %al
129
129
  epilogue
130
130
 
131
- SYMBOL(ForwardCallXGD):
131
+ SYMBOL(ForwardCallGDX):
132
132
  prologue
133
133
  forward_xmm
134
134
  forward_gpr
135
135
  movb $8, %al
136
136
  epilogue
137
137
 
138
- SYMBOL(ForwardCallXDD):
138
+ SYMBOL(ForwardCallDDX):
139
139
  prologue
140
140
  forward_xmm
141
141
  forward_gpr
@@ -169,20 +169,20 @@ RelayTrampoline:
169
169
  .cfi_def_cfa rsp, 8
170
170
  subq $152, %rsp
171
171
  .cfi_def_cfa rsp, 160
172
- movq %rdi, 0(%rsp)
173
- movq %rsi, 8(%rsp)
174
- movq %rdx, 16(%rsp)
175
- movq %rcx, 24(%rsp)
176
- movq %r8, 32(%rsp)
177
- movq %r9, 40(%rsp)
178
- movsd %xmm0, 48(%rsp)
179
- movsd %xmm1, 56(%rsp)
180
- movsd %xmm2, 64(%rsp)
181
- movsd %xmm3, 72(%rsp)
182
- movsd %xmm4, 80(%rsp)
183
- movsd %xmm5, 88(%rsp)
184
- movsd %xmm6, 96(%rsp)
185
- movsd %xmm7, 104(%rsp)
172
+ movq %rdi, 32(%rsp)
173
+ movq %rsi, 40(%rsp)
174
+ movq %rdx, 48(%rsp)
175
+ movq %rcx, 56(%rsp)
176
+ movq %r8, 64(%rsp)
177
+ movq %r9, 72(%rsp)
178
+ movsd %xmm0, 80(%rsp)
179
+ movsd %xmm1, 88(%rsp)
180
+ movsd %xmm2, 96(%rsp)
181
+ movsd %xmm3, 104(%rsp)
182
+ movsd %xmm4, 112(%rsp)
183
+ movsd %xmm5, 120(%rsp)
184
+ movsd %xmm6, 128(%rsp)
185
+ movsd %xmm7, 136(%rsp)
186
186
  movq %rax, %rdi
187
187
  movq %rsp, %rsi
188
188
  #if defined(__linux__)
@@ -190,10 +190,10 @@ RelayTrampoline:
190
190
  #else
191
191
  call SYMBOL(RelayCallback)
192
192
  #endif
193
- movq 112(%rsp), %rax
194
- movq 120(%rsp), %rdx
195
- movsd 128(%rsp), %xmm0
196
- movsd 136(%rsp), %xmm1
193
+ movq 0(%rsp), %rax
194
+ movq 8(%rsp), %rdx
195
+ movsd 16(%rsp), %xmm0
196
+ movsd 24(%rsp), %xmm1
197
197
  addq $152, %rsp
198
198
  .cfi_def_cfa rsp, 8
199
199
  ret
@@ -211,10 +211,7 @@ SYMBOL(SwitchAndRelay):
211
211
  push %rbp
212
212
  .cfi_def_cfa rsp, 16
213
213
  movq %rsp, %rbp
214
- movq %rsp, %r10
215
- subq 0(%r8), %r10
216
- andq $-16, %r10
217
- movq %r10, 8(%r8)
214
+ movq %rsp, 8(%r8)
218
215
  movq %rcx, %rsp
219
216
  .cfi_def_cfa rsp, 16
220
217
  call SYMBOL(RelayDirect)