rbdc 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/dyncall/BUGS +1 -1
  3. data/dyncall/CMakeLists.txt +19 -7
  4. data/dyncall/ChangeLog +61 -20
  5. data/dyncall/LICENSE +1 -1
  6. data/dyncall/Makefile.generic +2 -0
  7. data/dyncall/ToDo +97 -29
  8. data/dyncall/autovar/README.txt +1 -0
  9. data/dyncall/autovar/autovar_ABI.h +4 -2
  10. data/dyncall/autovar/autovar_ARCH.h +9 -5
  11. data/dyncall/autovar/autovar_CC.h +3 -1
  12. data/dyncall/autovar/autovar_OS.h +2 -2
  13. data/dyncall/autovar/autovar_OSFAMILY.h +1 -1
  14. data/dyncall/configure +94 -38
  15. data/dyncall/dyncall/dyncall.3 +8 -4
  16. data/dyncall/dyncall/dyncall.h +1 -1
  17. data/dyncall/dyncall/dyncall_alloc.h +1 -1
  18. data/dyncall/dyncall/dyncall_api.c +3 -1
  19. data/dyncall/dyncall/dyncall_call.S +13 -5
  20. data/dyncall/dyncall/dyncall_call_arm32_arm.S +1 -2
  21. data/dyncall/dyncall/dyncall_call_arm32_arm.h +1 -1
  22. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.S +24 -26
  23. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.h +1 -1
  24. data/dyncall/dyncall/dyncall_call_arm32_thumb.h +1 -1
  25. data/dyncall/dyncall/dyncall_call_arm32_thumb_armhf.S +1 -1
  26. data/dyncall/dyncall/dyncall_call_arm32_thumb_gas.s +3 -7
  27. data/dyncall/dyncall/dyncall_call_arm64.S +2 -2
  28. data/dyncall/dyncall/dyncall_call_arm64.h +2 -2
  29. data/dyncall/dyncall/dyncall_call_mips.h +1 -1
  30. data/dyncall/dyncall/dyncall_call_mips_eabi.h +1 -1
  31. data/dyncall/dyncall/dyncall_call_mips_eabi_gas.s +16 -16
  32. data/dyncall/dyncall/dyncall_call_mips_gas.S +2 -2
  33. data/dyncall/dyncall/dyncall_call_mips_n32.h +5 -4
  34. data/dyncall/dyncall/dyncall_call_mips_n32_gas.s +4 -4
  35. data/dyncall/dyncall/dyncall_call_mips_n64.h +3 -3
  36. data/dyncall/dyncall/dyncall_call_mips_n64_gas.s +2 -2
  37. data/dyncall/dyncall/dyncall_call_mips_o32.h +4 -3
  38. data/dyncall/dyncall/dyncall_call_mips_o32_gas.s +1 -3
  39. data/dyncall/dyncall/dyncall_call_ppc32.S +1 -1
  40. data/dyncall/dyncall/dyncall_call_ppc32.h +1 -1
  41. data/dyncall/dyncall/dyncall_call_sparc.h +1 -1
  42. data/dyncall/dyncall/{dyncall_call_sparc.S → dyncall_call_sparc.s} +39 -44
  43. data/dyncall/dyncall/dyncall_call_sparc64.h +5 -5
  44. data/dyncall/dyncall/dyncall_call_sparc64.s +177 -0
  45. data/dyncall/dyncall/dyncall_call_x64.S +83 -86
  46. data/dyncall/dyncall/dyncall_call_x64.h +1 -1
  47. data/dyncall/dyncall/dyncall_call_x86.S +9 -9
  48. data/dyncall/dyncall/dyncall_call_x86.h +1 -1
  49. data/dyncall/dyncall/dyncall_call_x86_nasm.asm +5 -5
  50. data/dyncall/dyncall/dyncall_callf.c +18 -18
  51. data/dyncall/dyncall/dyncall_callf.h +1 -1
  52. data/dyncall/dyncall/dyncall_callvm.c +3 -3
  53. data/dyncall/dyncall/dyncall_callvm.h +1 -1
  54. data/dyncall/dyncall/dyncall_callvm_arm32_arm.c +25 -40
  55. data/dyncall/dyncall/dyncall_callvm_arm32_arm.h +1 -5
  56. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.c +25 -33
  57. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.h +1 -5
  58. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.c +24 -36
  59. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.h +1 -5
  60. data/dyncall/dyncall/dyncall_callvm_arm64.c +23 -27
  61. data/dyncall/dyncall/dyncall_callvm_arm64.h +2 -6
  62. data/dyncall/dyncall/dyncall_callvm_arm64_apple.c +23 -30
  63. data/dyncall/dyncall/dyncall_callvm_base.c +1 -1
  64. data/dyncall/dyncall/dyncall_callvm_mips.c +1 -1
  65. data/dyncall/dyncall/dyncall_callvm_mips.h +1 -1
  66. data/dyncall/dyncall/dyncall_callvm_mips_eabi.c +30 -27
  67. data/dyncall/dyncall/dyncall_callvm_mips_eabi.h +1 -5
  68. data/dyncall/dyncall/dyncall_callvm_mips_n32.c +24 -30
  69. data/dyncall/dyncall/{dyncall_call_sparc_v9.h → dyncall_callvm_mips_n32.h} +18 -8
  70. data/dyncall/dyncall/dyncall_callvm_mips_n64.c +23 -30
  71. data/dyncall/dyncall/dyncall_callvm_mips_n64.h +4 -6
  72. data/dyncall/dyncall/dyncall_callvm_mips_o32.c +31 -29
  73. data/dyncall/dyncall/dyncall_callvm_mips_o32.h +1 -3
  74. data/dyncall/dyncall/dyncall_callvm_ppc32.c +22 -20
  75. data/dyncall/dyncall/dyncall_callvm_ppc32.h +1 -3
  76. data/dyncall/dyncall/dyncall_callvm_ppc64.c +54 -15
  77. data/dyncall/dyncall/dyncall_callvm_ppc64.h +0 -2
  78. data/dyncall/dyncall/dyncall_callvm_sparc.c +34 -26
  79. data/dyncall/dyncall/dyncall_callvm_sparc.h +1 -3
  80. data/dyncall/dyncall/dyncall_callvm_sparc64.c +94 -150
  81. data/dyncall/dyncall/dyncall_callvm_sparc64.h +11 -17
  82. data/dyncall/dyncall/dyncall_callvm_x64.c +37 -36
  83. data/dyncall/dyncall/dyncall_callvm_x64.h +1 -4
  84. data/dyncall/dyncall/dyncall_callvm_x86.c +22 -63
  85. data/dyncall/dyncall/dyncall_callvm_x86.h +1 -17
  86. data/dyncall/dyncall/dyncall_config.h +1 -1
  87. data/dyncall/dyncall/dyncall_macros.h +28 -19
  88. data/dyncall/dyncall/dyncall_signature.h +1 -1
  89. data/dyncall/dyncall/dyncall_types.h +17 -18
  90. data/dyncall/dyncall/dyncall_utils.h +1 -1
  91. data/dyncall/dyncall/dyncall_value.h +28 -21
  92. data/dyncall/dyncall/dyncall_vector.c +1 -1
  93. data/dyncall/dyncall/dyncall_vector.h +1 -1
  94. data/dyncall/dyncall/gen-masm.sh +2 -2
  95. data/dyncall/dyncallback/CMakeLists.txt +1 -2
  96. data/dyncall/dyncallback/Makefile.generic +1 -1
  97. data/dyncall/dyncallback/dyncall_alloc_wx.c +1 -1
  98. data/dyncall/dyncallback/dyncall_alloc_wx.h +4 -3
  99. data/dyncall/dyncallback/dyncall_alloc_wx_malloc.c +8 -2
  100. data/dyncall/dyncallback/dyncall_alloc_wx_mmap.c +67 -4
  101. data/dyncall/dyncallback/dyncall_alloc_wx_win32.c +7 -2
  102. data/dyncall/dyncallback/dyncall_args.c +19 -15
  103. data/dyncall/dyncallback/dyncall_args.h +1 -1
  104. data/dyncall/dyncallback/{dyncall_args_arm32_arm.c → dyncall_args_arm32.c} +4 -4
  105. data/dyncall/dyncallback/{dyncall_args_arm32_arm.h → dyncall_args_arm32.h} +6 -6
  106. data/dyncall/dyncallback/dyncall_args_arm64.c +2 -2
  107. data/dyncall/dyncallback/dyncall_args_arm64_apple.c +2 -2
  108. data/dyncall/dyncallback/dyncall_args_mips.c +26 -21
  109. data/dyncall/dyncallback/dyncall_args_mips.h +18 -6
  110. data/dyncall/dyncallback/dyncall_args_mips64.c +81 -0
  111. data/dyncall/dyncallback/dyncall_args_mips_o32.c +104 -0
  112. data/dyncall/dyncallback/dyncall_args_ppc32.c +2 -2
  113. data/dyncall/dyncallback/dyncall_args_ppc32.h +1 -1
  114. data/dyncall/dyncallback/dyncall_args_ppc32_sysv.c +1 -1
  115. data/dyncall/dyncallback/dyncall_args_ppc64.c +24 -3
  116. data/dyncall/dyncallback/dyncall_args_sparc32.c +41 -15
  117. data/dyncall/dyncallback/dyncall_args_sparc32.h +2 -2
  118. data/dyncall/dyncallback/dyncall_args_sparc64.c +28 -15
  119. data/dyncall/dyncallback/dyncall_args_sparc64.h +7 -3
  120. data/dyncall/dyncallback/dyncall_args_x64.c +1 -1
  121. data/dyncall/dyncallback/dyncall_args_x64.h +1 -1
  122. data/dyncall/dyncallback/dyncall_args_x86.c +1 -1
  123. data/dyncall/dyncallback/dyncall_args_x86.h +1 -1
  124. data/dyncall/dyncallback/dyncall_callback.c +10 -12
  125. data/dyncall/dyncallback/dyncall_callback.h +2 -4
  126. data/dyncall/dyncallback/dyncall_callback_arch.S +12 -2
  127. data/dyncall/dyncallback/{dyncall_callback_arm32_arm.c → dyncall_callback_arm32.c} +25 -10
  128. data/dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s +7 -7
  129. data/dyncall/dyncallback/dyncall_callback_arm32_arm_gas.S +9 -9
  130. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_apple.S +1 -1
  131. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_gas.S +1 -1
  132. data/dyncall/dyncallback/dyncall_callback_arm64.S +2 -2
  133. data/dyncall/dyncallback/dyncall_callback_arm64.c +20 -14
  134. data/dyncall/dyncallback/dyncall_callback_mips.c +26 -9
  135. data/dyncall/dyncallback/dyncall_callback_mips_eabi_gas.s +99 -0
  136. data/dyncall/dyncallback/{dyncall_args_arm32_thumb.h → dyncall_callback_mips_gas.S} +14 -9
  137. data/dyncall/dyncallback/{dyncall_callback_arm32_thumb.c → dyncall_callback_mips_n32_gas.s} +12 -7
  138. data/dyncall/dyncallback/dyncall_callback_mips_n64_gas.s +98 -0
  139. data/dyncall/dyncallback/dyncall_callback_mips_o32_gas.s +100 -0
  140. data/dyncall/dyncallback/dyncall_callback_ppc32.S +54 -54
  141. data/dyncall/dyncallback/dyncall_callback_ppc32.c +23 -5
  142. data/dyncall/dyncallback/dyncall_callback_ppc32_apple.s +92 -117
  143. data/dyncall/dyncallback/dyncall_callback_ppc64.S +2 -2
  144. data/dyncall/dyncallback/dyncall_callback_ppc64.c +23 -5
  145. data/dyncall/dyncallback/dyncall_callback_sparc32.c +25 -7
  146. data/dyncall/dyncallback/dyncall_callback_sparc32.s +55 -4
  147. data/dyncall/dyncallback/dyncall_callback_sparc64.c +25 -7
  148. data/dyncall/dyncallback/dyncall_callback_sparc64.s +89 -5
  149. data/dyncall/dyncallback/dyncall_callback_x64.S +8 -8
  150. data/dyncall/dyncallback/dyncall_callback_x64.c +19 -6
  151. data/dyncall/dyncallback/dyncall_callback_x86.S +29 -25
  152. data/dyncall/dyncallback/dyncall_callback_x86.c +24 -11
  153. data/dyncall/dyncallback/dyncall_thunk.c +6 -6
  154. data/dyncall/dyncallback/dyncall_thunk.h +9 -7
  155. data/dyncall/dyncallback/{dyncall_thunk_arm32_arm.c → dyncall_thunk_arm32.c} +5 -3
  156. data/dyncall/dyncallback/{dyncall_thunk_arm32_arm.h → dyncall_thunk_arm32.h} +7 -7
  157. data/dyncall/dyncallback/dyncall_thunk_arm64.c +2 -2
  158. data/dyncall/dyncallback/dyncall_thunk_arm64.h +8 -13
  159. data/dyncall/dyncallback/dyncall_thunk_mips.c +16 -20
  160. data/dyncall/dyncallback/dyncall_thunk_mips.h +4 -2
  161. data/dyncall/dyncallback/dyncall_thunk_mips64.c +103 -0
  162. data/dyncall/dyncallback/{dyncall_callback_arm32_thumb.h → dyncall_thunk_mips64.h} +15 -8
  163. data/dyncall/dyncallback/dyncall_thunk_ppc32.c +4 -4
  164. data/dyncall/dyncallback/dyncall_thunk_ppc32.h +1 -1
  165. data/dyncall/dyncallback/dyncall_thunk_ppc32_sysv.c +9 -9
  166. data/dyncall/dyncallback/dyncall_thunk_ppc64.c +2 -2
  167. data/dyncall/dyncallback/dyncall_thunk_sparc32.c +19 -2
  168. data/dyncall/dyncallback/dyncall_thunk_sparc32.h +5 -4
  169. data/dyncall/dyncallback/dyncall_thunk_sparc64.c +42 -2
  170. data/dyncall/dyncallback/dyncall_thunk_sparc64.h +5 -5
  171. data/dyncall/dyncallback/dyncall_thunk_x64.c +1 -1
  172. data/dyncall/dyncallback/dyncall_thunk_x64.h +2 -2
  173. data/dyncall/dyncallback/dyncall_thunk_x86.c +1 -1
  174. data/dyncall/dyncallback/dyncall_thunk_x86.h +2 -2
  175. data/dyncall/dyncallback/dyncallback.3 +16 -11
  176. data/dyncall/dynload/dynload.3 +63 -8
  177. data/dyncall/dynload/dynload.c +2 -8
  178. data/dyncall/dynload/dynload.h +9 -5
  179. data/dyncall/dynload/dynload_alloc.h +1 -1
  180. data/dyncall/dynload/dynload_syms.c +1 -3
  181. data/dyncall/dynload/dynload_syms_elf.c +19 -11
  182. data/dyncall/dynload/dynload_syms_mach-o.c +151 -75
  183. data/dyncall/dynload/dynload_syms_pe.c +24 -24
  184. data/dyncall/dynload/dynload_unix.c +156 -13
  185. data/dyncall/dynload/dynload_windows.c +15 -11
  186. data/dyncall/portasm/portasm-arm.S +1 -1
  187. data/dyncall/portasm/portasm-ppc.S +1 -1
  188. data/dyncall/portasm/{portasm-x64-att.S → portasm-x64.S} +7 -4
  189. data/dyncall/portasm/portasm-x86.S +4 -2
  190. data/{dyncall-bindings/ruby/rbdc/extconf.rb → extconf.rb} +4 -4
  191. data/{dyncall-bindings/ruby/rbdc/rbdc.c → rbdc.c} +5 -5
  192. metadata +24 -48
  193. data/dyncall/Makefile.M +0 -15
  194. data/dyncall/buildsys/dynmake/Makefile.base.M +0 -82
  195. data/dyncall/buildsys/dynmake/dynmake.bat +0 -2
  196. data/dyncall/buildsys/dynmake/dynmake.sh +0 -4
  197. data/dyncall/dynMakefile +0 -4
  198. data/dyncall/dyncall/Makefile.M +0 -10
  199. data/dyncall/dyncall/TODO +0 -9
  200. data/dyncall/dyncall/dynMakefile +0 -4
  201. data/dyncall/dyncall/dyncall_call_sparc64.S +0 -362
  202. data/dyncall/dyncall/dyncall_call_sparc_v9.S +0 -222
  203. data/dyncall/dyncall/dyncall_call_x64-att.S +0 -147
  204. data/dyncall/dyncall/dyncall_callvm_sparc_v9.c +0 -182
  205. data/dyncall/dyncall/dyncall_callvm_sparc_v9.h +0 -46
  206. data/dyncall/dyncallback/Makefile.M +0 -10
  207. data/dyncall/dyncallback/README.txt +0 -9
  208. data/dyncall/dyncallback/TODO +0 -4
  209. data/dyncall/dyncallback/dynMakefile +0 -4
  210. data/dyncall/dyncallback/dyncall_args_arm32_thumb.c +0 -30
  211. data/dyncall/dyncallback/dyncall_callback_arm32_arm.h +0 -46
  212. data/dyncall/dyncallback/dyncall_callback_mips.h +0 -43
  213. data/dyncall/dyncallback/dyncall_callback_ppc32.h +0 -43
  214. data/dyncall/dyncallback/dyncall_callback_ppc64.h +0 -56
  215. data/dyncall/dyncallback/dyncall_callback_sparc32.h +0 -44
  216. data/dyncall/dyncallback/dyncall_callback_x64.h +0 -45
  217. data/dyncall/dyncallback/dyncall_callback_x86.h +0 -50
  218. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.c +0 -30
  219. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.h +0 -36
  220. data/dyncall/dynload/Makefile.M +0 -10
  221. data/dyncall/dynload/TODO +0 -20
  222. data/dyncall/dynload/dynMakefile +0 -4
  223. data/dyncall/dynload/dynload_darwin.c +0 -90
@@ -6,7 +6,7 @@
6
6
  Description: heap memory management interface (header only)
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -226,9 +226,9 @@ EXPORT_C dcCall_x86_win32_fast
226
226
 
227
227
  ret
228
228
 
229
- ; Stack markings for ELF/GNU to specify no executable stack */
230
-
231
- %ifidn __OUTPUT_FORMAT__,elf
232
- section .note.GNU-stack noalloc noexec nowrite progbits
233
- %endif
229
+ ;; Stack markings for ELF/GNU to specify no executable stack */
230
+ ;
231
+ ;%ifidn __OUTPUT_FORMAT__,elf
232
+ ;section .note.GNU-stack noalloc noexec nowrite progbits
233
+ ;%endif
234
234
 
@@ -6,7 +6,7 @@
6
6
  Description: formatted call C interface (extension module)
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -28,7 +28,7 @@
28
28
  #include "dyncall_callf.h"
29
29
 
30
30
 
31
- // Shareable implementation for argument binding used in ArgF and CallF below.
31
+ /* Shareable implementation for argument binding used in ArgF and CallF below. */
32
32
  static void dcArgF_impl(DCCallVM* vm, const DCsigchar** sigptr, va_list args)
33
33
  {
34
34
  DCsigchar ch;
@@ -73,22 +73,22 @@ void dcVCallF(DCCallVM* vm, DCValue* result, DCpointer funcptr, const DCsigchar*
73
73
  dcArgF_impl(vm, &ptr, args);
74
74
 
75
75
  switch(*ptr) {
76
- case DC_SIGCHAR_VOID: dcCallVoid (vm,funcptr); break;
77
- case DC_SIGCHAR_BOOL: result->B = dcCallBool (vm,funcptr); break;
78
- case DC_SIGCHAR_CHAR: result->c = dcCallChar (vm,funcptr); break;
79
- case DC_SIGCHAR_UCHAR: result->C = (DCuchar)dcCallChar(vm,funcptr); break;
80
- case DC_SIGCHAR_SHORT: result->s = dcCallShort (vm,funcptr); break;
81
- case DC_SIGCHAR_USHORT: result->S = dcCallShort (vm,funcptr); break;
82
- case DC_SIGCHAR_INT: result->i = dcCallInt (vm,funcptr); break;
83
- case DC_SIGCHAR_UINT: result->I = dcCallInt (vm,funcptr); break;
84
- case DC_SIGCHAR_LONG: result->j = dcCallLong (vm,funcptr); break;
85
- case DC_SIGCHAR_ULONG: result->J = dcCallLong (vm,funcptr); break;
86
- case DC_SIGCHAR_LONGLONG: result->l = dcCallLongLong (vm,funcptr); break;
87
- case DC_SIGCHAR_ULONGLONG: result->L = dcCallLongLong (vm,funcptr); break;
88
- case DC_SIGCHAR_FLOAT: result->f = dcCallFloat (vm,funcptr); break;
89
- case DC_SIGCHAR_DOUBLE: result->d = dcCallDouble (vm,funcptr); break;
90
- case DC_SIGCHAR_POINTER: result->p = dcCallPointer (vm,funcptr); break;
91
- case DC_SIGCHAR_STRING: result->Z = dcCallPointer (vm,funcptr); break;
76
+ case DC_SIGCHAR_VOID: dcCallVoid (vm,funcptr); break;
77
+ case DC_SIGCHAR_BOOL: result->B = dcCallBool (vm,funcptr); break;
78
+ case DC_SIGCHAR_CHAR: result->c = dcCallChar (vm,funcptr); break;
79
+ case DC_SIGCHAR_UCHAR: result->C = (DCuchar)dcCallChar (vm,funcptr); break;
80
+ case DC_SIGCHAR_SHORT: result->s = dcCallShort (vm,funcptr); break;
81
+ case DC_SIGCHAR_USHORT: result->S = dcCallShort (vm,funcptr); break;
82
+ case DC_SIGCHAR_INT: result->i = dcCallInt (vm,funcptr); break;
83
+ case DC_SIGCHAR_UINT: result->I = dcCallInt (vm,funcptr); break;
84
+ case DC_SIGCHAR_LONG: result->j = dcCallLong (vm,funcptr); break;
85
+ case DC_SIGCHAR_ULONG: result->J = dcCallLong (vm,funcptr); break;
86
+ case DC_SIGCHAR_LONGLONG: result->l = dcCallLongLong (vm,funcptr); break;
87
+ case DC_SIGCHAR_ULONGLONG: result->L = dcCallLongLong (vm,funcptr); break;
88
+ case DC_SIGCHAR_FLOAT: result->f = dcCallFloat (vm,funcptr); break;
89
+ case DC_SIGCHAR_DOUBLE: result->d = dcCallDouble (vm,funcptr); break;
90
+ case DC_SIGCHAR_POINTER: result->p = dcCallPointer (vm,funcptr); break;
91
+ case DC_SIGCHAR_STRING: result->Z = (DCstring)dcCallPointer(vm,funcptr); break;
92
92
  }
93
93
  }
94
94
 
@@ -6,7 +6,7 @@
6
6
  Description: formatted call interface to dyncall
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -6,7 +6,7 @@
6
6
  Description: auto-select default callvm (includes other C sources).
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -67,8 +67,8 @@
67
67
  # endif
68
68
  #elif defined(DC__Arch_Sparc)
69
69
  # include "dyncall_callvm_sparc.c"
70
- #elif defined(DC__Arch_Sparcv9)
71
- # include "dyncall_callvm_sparc_v9.c"
70
+ #elif defined(DC__Arch_Sparc64)
71
+ # include "dyncall_callvm_sparc64.c"
72
72
  #elif defined(DC__Arch_RiscV)
73
73
  # include "dyncall_callvm_riscv.c"
74
74
  #else
@@ -6,7 +6,7 @@
6
6
  Description: Common call vm binary interface.
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -6,7 +6,7 @@
6
6
  Description: ARM 32-bit "arm" ABI callvm implementation
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -41,18 +41,6 @@
41
41
  #include "dyncall_callvm_arm32_arm.h"
42
42
  #include "dyncall_alloc.h"
43
43
 
44
- static void dc_callvm_mode_arm32_arm(DCCallVM* in_self,DCint mode);
45
-
46
- static DCCallVM* dc_callvm_new_arm32_arm(DCCallVM_vt* vt, DCsize size)
47
- {
48
- /* Store at least 16 bytes (4 words) for internal spill area. Assembly code depends on it. */
49
- DCCallVM_arm32_arm* self = (DCCallVM_arm32_arm*)dcAllocMem(sizeof(DCCallVM_arm32_arm)+size+16);
50
- dc_callvm_base_init(&self->mInterface, vt);
51
- dcVecInit(&self->mVecHead, size);
52
- return (DCCallVM*)self;
53
- }
54
-
55
-
56
44
  static void dc_callvm_free_arm32_arm(DCCallVM* in_self)
57
45
  {
58
46
  dcFreeMem(in_self);
@@ -152,6 +140,7 @@ void dc_callvm_call_arm32_arm(DCCallVM* in_self, DCpointer target)
152
140
  dcCall_arm32_arm(target, dcVecData(&self->mVecHead), dcVecSize(&self->mVecHead));
153
141
  }
154
142
 
143
+ static void dc_callvm_mode_arm32_arm(DCCallVM* in_self, DCint mode);
155
144
 
156
145
  DCCallVM_vt gVT_arm32_arm =
157
146
  {
@@ -181,7 +170,6 @@ DCCallVM_vt gVT_arm32_arm =
181
170
  , NULL /* callStruct */
182
171
  };
183
172
 
184
-
185
173
  DCCallVM_vt gVT_arm32_arm_eabi =
186
174
  {
187
175
  &dc_callvm_free_arm32_arm
@@ -210,42 +198,39 @@ DCCallVM_vt gVT_arm32_arm_eabi =
210
198
  , NULL /* callStruct */
211
199
  };
212
200
 
213
-
214
- DCCallVM* dcNewCallVM_arm32_arm(DCsize size)
215
- {
216
- /* Check OS if we need EABI as default. */
217
- #if defined(DC__ABI_ARM_EABI)
218
- return dc_callvm_new_arm32_arm(&gVT_arm32_arm_eabi, size);
219
- #else
220
- return dc_callvm_new_arm32_arm(&gVT_arm32_arm, size);
221
- #endif
222
- }
223
-
224
-
225
- DCCallVM* dcNewCallVM(DCsize size)
201
+ static void dc_callvm_mode_arm32_arm(DCCallVM* in_self, DCint mode)
226
202
  {
227
- return dcNewCallVM_arm32_arm(size);
228
- }
203
+ DCCallVM_arm32_arm* self = (DCCallVM_arm32_arm*)in_self;
204
+ DCCallVM_vt* vt;
229
205
 
230
- static void dc_callvm_mode_arm32_arm(DCCallVM* in_self,DCint mode)
231
- {
232
- DCCallVM_arm32_arm* self = (DCCallVM_arm32_arm*) in_self;
233
- DCCallVM_vt* vt;
234
206
  switch(mode) {
235
- /* Check OS if we need EABI as default. */
236
207
  case DC_CALL_C_ELLIPSIS:
237
208
  case DC_CALL_C_ELLIPSIS_VARARGS:
209
+ /* Check OS if we need EABI as default. */
238
210
  #if defined(DC__ABI_ARM_EABI)
239
- case DC_CALL_C_DEFAULT: vt = &gVT_arm32_arm_eabi; break;
211
+ case DC_CALL_C_DEFAULT: vt = &gVT_arm32_arm_eabi; break;
240
212
  #else
241
- case DC_CALL_C_DEFAULT: vt = &gVT_arm32_arm; break;
213
+ case DC_CALL_C_DEFAULT: vt = &gVT_arm32_arm; break;
242
214
  #endif
243
- case DC_CALL_C_ARM_ARM: vt = &gVT_arm32_arm; break;
244
- case DC_CALL_C_ARM_ARM_EABI: vt = &gVT_arm32_arm_eabi; break;
215
+ case DC_CALL_C_ARM_ARM: vt = &gVT_arm32_arm; break;
216
+ case DC_CALL_C_ARM_ARM_EABI: vt = &gVT_arm32_arm_eabi; break;
245
217
  default:
246
- in_self->mError = DC_ERROR_UNSUPPORTED_MODE;
218
+ self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE;
247
219
  return;
248
220
  }
249
- self->mInterface.mVTpointer = vt;
221
+ dc_callvm_base_init(&self->mInterface, vt);
222
+ }
223
+
224
+ /* Public API. */
225
+ DCCallVM* dcNewCallVM(DCsize size)
226
+ {
227
+ /* Store at least 16 bytes (4 words) for internal spill area. Assembly code depends on it. */
228
+ DCCallVM_arm32_arm* p = (DCCallVM_arm32_arm*)dcAllocMem(sizeof(DCCallVM_arm32_arm)+size+16);
229
+
230
+ dc_callvm_mode_arm32_arm((DCCallVM*)p, DC_CALL_C_DEFAULT);
231
+
232
+ dcVecInit(&p->mVecHead, size);
233
+
234
+ return (DCCallVM*)p;
250
235
  }
251
236
 
@@ -6,7 +6,7 @@
6
6
  Description:
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -45,7 +45,6 @@
45
45
  #include "dyncall_callvm.h"
46
46
  #include "dyncall_vector.h"
47
47
 
48
-
49
48
  typedef struct
50
49
  {
51
50
  DCCallVM mInterface;
@@ -53,8 +52,5 @@ typedef struct
53
52
  DCVecHead mVecHead;
54
53
  } DCCallVM_arm32_arm;
55
54
 
56
- DCCallVM* dcNewCallVM_arm32_arm(DCsize size);
57
-
58
-
59
55
  #endif /* DYNCALL_CALLVM_ARM32_ARM_H */
60
56
 
@@ -6,7 +6,7 @@
6
6
  Description: ARM 'armhf' ABI implementation
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -28,20 +28,6 @@
28
28
  #include "dyncall_alloc.h"
29
29
 
30
30
 
31
- static DCCallVM* dc_callvm_new_arm32_armhf(DCCallVM_vt* vt, DCsize size)
32
- {
33
- /* Store at least 16 bytes (4 words for first 4 int args) for internal spill area. Assembly code depends on it. */
34
- DCCallVM_arm32_armhf* p = (DCCallVM_arm32_armhf*)dcAllocMem(sizeof(DCCallVM_arm32_armhf)+size+16);
35
- dc_callvm_base_init(&p->mInterface, vt);
36
- dcVecInit(&p->mVecHead, size);
37
- p->i = 0;
38
- p->s = 0;
39
- p->d = 0;
40
- return (DCCallVM*)p;
41
- }
42
-
43
- static void mode(DCCallVM* in_self,DCint mode);
44
-
45
31
  static void deinit(DCCallVM* in_self)
46
32
  {
47
33
  dcFreeMem(in_self);
@@ -114,7 +100,7 @@ static void a_double(DCCallVM* in_p, DCdouble x)
114
100
 
115
101
  DCCallVM_arm32_armhf* p = (DCCallVM_arm32_armhf*)in_p;
116
102
  if (p->d < 16) {
117
- * (double*) &p->S[p->d] = x;
103
+ * (DCdouble*) &p->S[p->d] = x;
118
104
  p->d += 2;
119
105
  if (!(p->s & 1)) {
120
106
  /* if s is even it always equals d. otherwise, s points to an odd float register. */
@@ -145,6 +131,8 @@ void call(DCCallVM* in_p, DCpointer target)
145
131
  dcCall_arm32_armhf(target, dcVecData(&p->mVecHead), dcVecSize(&p->mVecHead), &p->S[0]);
146
132
  }
147
133
 
134
+ static void mode(DCCallVM* in_self,DCint mode);
135
+
148
136
  DCCallVM_vt vt_armhf =
149
137
  {
150
138
  &deinit
@@ -201,34 +189,38 @@ DCCallVM_vt vt_armhf_ellipsis =
201
189
  , NULL /* callStruct */
202
190
  };
203
191
 
204
- DCCallVM* dcNewCallVM(DCsize size)
192
+ static void mode(DCCallVM* in_self, DCint mode)
205
193
  {
206
- #if defined(DC__ABI_ARM_EABI)
207
- return dc_callvm_new_arm32_arm(&eabi, size);
208
- #elif defined(DC__ABI_ARM_HF)
209
- return dc_callvm_new_arm32_armhf(&vt_armhf, size);
210
- #elif defined(DC__ABI_ARM_OABI)
211
- return dc_callvm_new_arm32_arm(&oabi, size);
212
- #else
213
- #error unknown ARM abi
214
- #endif
215
- }
194
+ DCCallVM_arm32_armhf* self = (DCCallVM_arm32_armhf*)in_self;
195
+ DCCallVM_vt* vt;
216
196
 
217
- static void mode(DCCallVM* in_self,DCint mode)
218
- {
219
- DCCallVM_arm32_armhf* self = (DCCallVM_arm32_armhf*) in_self;
220
197
  switch(mode) {
221
198
  case DC_CALL_C_DEFAULT:
222
199
  case DC_CALL_C_ARM_ARMHF:
223
- self->mInterface.mVTpointer = &vt_armhf;
200
+ vt = &vt_armhf;
224
201
  break;
225
202
  case DC_CALL_C_ELLIPSIS:
226
203
  case DC_CALL_C_ELLIPSIS_VARARGS:
227
- self->mInterface.mVTpointer = &vt_armhf_ellipsis;
204
+ vt = &vt_armhf_ellipsis;
228
205
  break;
229
206
  default:
230
- in_self->mError = DC_ERROR_UNSUPPORTED_MODE;
207
+ self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE;
231
208
  return;
232
209
  }
210
+ dc_callvm_base_init(&self->mInterface, vt);
211
+ }
212
+
213
+ /* Public API. */
214
+ DCCallVM* dcNewCallVM(DCsize size)
215
+ {
216
+ /* Store at least 16 bytes (4 words for first 4 int args) for internal spill area. Assembly code depends on it. */
217
+ DCCallVM_arm32_armhf* p = (DCCallVM_arm32_armhf*)dcAllocMem(sizeof(DCCallVM_arm32_armhf)+size+16);
218
+
219
+ mode((DCCallVM*)p, DC_CALL_C_DEFAULT);
220
+
221
+ dcVecInit(&p->mVecHead, size);
222
+ reset((DCCallVM*)p);
223
+
224
+ return (DCCallVM*)p;
233
225
  }
234
226
 
@@ -6,7 +6,7 @@
6
6
  Description:
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -45,7 +45,6 @@
45
45
  #include "dyncall_callvm.h"
46
46
  #include "dyncall_vector.h"
47
47
 
48
-
49
48
  typedef struct
50
49
  {
51
50
  DCCallVM mInterface;
@@ -57,8 +56,5 @@ typedef struct
57
56
  DCVecHead mVecHead;
58
57
  } DCCallVM_arm32_armhf;
59
58
 
60
- DCCallVM* dcNewCallVM_arm32_armhf(DCsize size);
61
-
62
-
63
59
  #endif /* DYNCALL_CALLVM_ARM32_ARM_H */
64
60
 
@@ -6,7 +6,7 @@
6
6
  Description: ARM 32-bit "thumb" ABI callvm implementation
7
7
  License:
8
8
 
9
- Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
9
+ Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
10
10
  Tassilo Philipp <tphilipp@potion-studios.com>
11
11
 
12
12
  Permission to use, copy, modify, and distribute this software for any
@@ -43,16 +43,6 @@
43
43
 
44
44
  static void dc_callvm_mode_arm32_thumb(DCCallVM* in_self,DCint mode);
45
45
 
46
- static DCCallVM* dc_callvm_new_arm32_thumb(DCCallVM_vt* vt, DCsize size)
47
- {
48
- /* Store at least 16 bytes (4 words) for internal spill area. Assembly code depends on it. */
49
- DCCallVM_arm32_thumb* self = (DCCallVM_arm32_thumb*)dcAllocMem(sizeof(DCCallVM_arm32_thumb)+size+16);
50
- dc_callvm_base_init(&self->mInterface, vt);
51
- dcVecInit(&self->mVecHead, size);
52
- return (DCCallVM*)self;
53
- }
54
-
55
-
56
46
  static void dc_callvm_free_arm32_thumb(DCCallVM* in_self)
57
47
  {
58
48
  dcFreeMem(in_self);
@@ -181,7 +171,6 @@ DCCallVM_vt gVT_arm32_thumb =
181
171
  , NULL /* callStruct */
182
172
  };
183
173
 
184
-
185
174
  DCCallVM_vt gVT_arm32_thumb_eabi =
186
175
  {
187
176
  &dc_callvm_free_arm32_thumb
@@ -210,40 +199,39 @@ DCCallVM_vt gVT_arm32_thumb_eabi =
210
199
  , NULL /* callStruct */
211
200
  };
212
201
 
213
-
214
- DCCallVM* dcNewCallVM_arm32_thumb(DCsize size)
202
+ static void dc_callvm_mode_arm32_thumb(DCCallVM* in_self, DCint mode)
215
203
  {
204
+ DCCallVM_arm32_thumb* self = (DCCallVM_arm32_thumb*)in_self;
205
+ DCCallVM_vt* vt;
206
+
207
+ switch(mode) {
208
+ case DC_CALL_C_ELLIPSIS:
209
+ case DC_CALL_C_ELLIPSIS_VARARGS:
216
210
  /* Check OS if we need EABI as default. */
217
211
  #if defined(DC__ABI_ARM_EABI)
218
- return dc_callvm_new_arm32_thumb(&gVT_arm32_thumb_eabi, size);
212
+ case DC_CALL_C_DEFAULT: vt = &gVT_arm32_thumb_eabi; break;
219
213
  #else
220
- return dc_callvm_new_arm32_thumb(&gVT_arm32_thumb, size);
214
+ case DC_CALL_C_DEFAULT: vt = &gVT_arm32_thumb; break;
221
215
  #endif
216
+ case DC_CALL_C_ARM_THUMB: vt = &gVT_arm32_thumb; break;
217
+ case DC_CALL_C_ARM_THUMB_EABI: vt = &gVT_arm32_thumb_eabi; break;
218
+ default:
219
+ self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE;
220
+ return;
221
+ }
222
+ dc_callvm_base_init(&self->mInterface, vt);
222
223
  }
223
224
 
224
-
225
+ /* Public API. */
225
226
  DCCallVM* dcNewCallVM(DCsize size)
226
227
  {
227
- return dcNewCallVM_arm32_thumb(size);
228
- }
228
+ /* Store at least 16 bytes (4 words) for internal spill area. Assembly code depends on it. */
229
+ DCCallVM_arm32_thumb* p = (DCCallVM_arm32_thumb*)dcAllocMem(sizeof(DCCallVM_arm32_thumb)+size+16);
229
230
 
231
+ dc_callvm_mode_arm32_thumb((DCCallVM*)p, DC_CALL_C_DEFAULT);
230
232
 
231
- static void dc_callvm_mode_arm32_thumb(DCCallVM* in_self,DCint mode)
232
- {
233
- DCCallVM_arm32_thumb* self = (DCCallVM_arm32_thumb*) in_self;
234
- DCCallVM_vt* vt;
235
- switch(mode) {
236
- /* Check OS if we need EABI as default. */
237
- case DC_CALL_C_ELLIPSIS:
238
- #if defined(DC__ABI_ARM_EABI)
239
- case DC_CALL_C_DEFAULT: vt = &gVT_arm32_thumb_eabi; break;
240
- #else
241
- case DC_CALL_C_DEFAULT: vt = &gVT_arm32_thumb; break;
242
- #endif
243
- case DC_CALL_C_ARM_THUMB: vt = &gVT_arm32_thumb; break;
244
- case DC_CALL_C_ARM_THUMB_EABI: vt = &gVT_arm32_thumb_eabi; break;
245
- default: self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE; return;
246
- }
247
- self->mInterface.mVTpointer = vt;
233
+ dcVecInit(&p->mVecHead, size);
234
+
235
+ return (DCCallVM*)p;
248
236
  }
249
237