ffi 0.5.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ffi might be problematic. Click here for more details.

Files changed (328) hide show
  1. data/LICENSE +51 -0
  2. data/README.rdoc +69 -0
  3. data/Rakefile +191 -0
  4. data/ext/ffi_c/AbstractMemory.c +489 -0
  5. data/ext/ffi_c/AbstractMemory.h +160 -0
  6. data/ext/ffi_c/ArrayType.c +129 -0
  7. data/ext/ffi_c/ArrayType.h +58 -0
  8. data/ext/ffi_c/AutoPointer.c +61 -0
  9. data/ext/ffi_c/AutoPointer.h +18 -0
  10. data/ext/ffi_c/Buffer.c +187 -0
  11. data/ext/ffi_c/Call.c +853 -0
  12. data/ext/ffi_c/Call.h +86 -0
  13. data/ext/ffi_c/ClosurePool.c +302 -0
  14. data/ext/ffi_c/ClosurePool.h +29 -0
  15. data/ext/ffi_c/DynamicLibrary.c +216 -0
  16. data/ext/ffi_c/DynamicLibrary.h +22 -0
  17. data/ext/ffi_c/Function.c +478 -0
  18. data/ext/ffi_c/Function.h +80 -0
  19. data/ext/ffi_c/FunctionInfo.c +221 -0
  20. data/ext/ffi_c/LastError.c +159 -0
  21. data/ext/ffi_c/LastError.h +18 -0
  22. data/ext/ffi_c/MemoryPointer.c +178 -0
  23. data/ext/ffi_c/MemoryPointer.h +20 -0
  24. data/ext/ffi_c/MethodHandle.c +346 -0
  25. data/ext/ffi_c/MethodHandle.h +53 -0
  26. data/ext/ffi_c/Platform.c +59 -0
  27. data/ext/ffi_c/Platform.h +16 -0
  28. data/ext/ffi_c/Pointer.c +224 -0
  29. data/ext/ffi_c/Pointer.h +49 -0
  30. data/ext/ffi_c/Struct.c +770 -0
  31. data/ext/ffi_c/Struct.h +80 -0
  32. data/ext/ffi_c/StructByValue.c +140 -0
  33. data/ext/ffi_c/StructByValue.h +53 -0
  34. data/ext/ffi_c/StructLayout.c +450 -0
  35. data/ext/ffi_c/Type.c +329 -0
  36. data/ext/ffi_c/Type.h +57 -0
  37. data/ext/ffi_c/Types.c +103 -0
  38. data/ext/ffi_c/Types.h +85 -0
  39. data/ext/ffi_c/Variadic.c +260 -0
  40. data/ext/ffi_c/compat.h +72 -0
  41. data/ext/ffi_c/endian.h +40 -0
  42. data/ext/ffi_c/extconf.rb +30 -0
  43. data/ext/ffi_c/ffi.c +82 -0
  44. data/ext/ffi_c/libffi.bsd.mk +34 -0
  45. data/ext/ffi_c/libffi.darwin.mk +75 -0
  46. data/ext/ffi_c/libffi.gnu.mk +29 -0
  47. data/ext/ffi_c/libffi.mk +13 -0
  48. data/ext/ffi_c/libffi/ChangeLog +3243 -0
  49. data/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
  50. data/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  51. data/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  52. data/ext/ffi_c/libffi/LICENSE +21 -0
  53. data/ext/ffi_c/libffi/Makefile.am +177 -0
  54. data/ext/ffi_c/libffi/Makefile.in +1640 -0
  55. data/ext/ffi_c/libffi/README +328 -0
  56. data/ext/ffi_c/libffi/TODO +1 -0
  57. data/ext/ffi_c/libffi/acinclude.m4 +92 -0
  58. data/ext/ffi_c/libffi/aclocal.m4 +7516 -0
  59. data/ext/ffi_c/libffi/compile +142 -0
  60. data/ext/ffi_c/libffi/config.guess +1516 -0
  61. data/ext/ffi_c/libffi/config.sub +1626 -0
  62. data/ext/ffi_c/libffi/configure +24414 -0
  63. data/ext/ffi_c/libffi/configure.ac +365 -0
  64. data/ext/ffi_c/libffi/configure.host +11 -0
  65. data/ext/ffi_c/libffi/depcomp +584 -0
  66. data/ext/ffi_c/libffi/doc/libffi.info +533 -0
  67. data/ext/ffi_c/libffi/doc/libffi.texi +541 -0
  68. data/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  69. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  70. data/ext/ffi_c/libffi/fficonfig.h.in +160 -0
  71. data/ext/ffi_c/libffi/include/Makefile.am +9 -0
  72. data/ext/ffi_c/libffi/include/Makefile.in +422 -0
  73. data/ext/ffi_c/libffi/include/ffi.h.in +393 -0
  74. data/ext/ffi_c/libffi/include/ffi_common.h +98 -0
  75. data/ext/ffi_c/libffi/install-sh +323 -0
  76. data/ext/ffi_c/libffi/libffi.pc.in +10 -0
  77. data/ext/ffi_c/libffi/libtool-version +29 -0
  78. data/ext/ffi_c/libffi/ltcf-c.sh +861 -0
  79. data/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
  80. data/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
  81. data/ext/ffi_c/libffi/ltconfig +2862 -0
  82. data/ext/ffi_c/libffi/ltmain.sh +6930 -0
  83. data/ext/ffi_c/libffi/man/Makefile.am +8 -0
  84. data/ext/ffi_c/libffi/man/Makefile.in +395 -0
  85. data/ext/ffi_c/libffi/man/ffi.3 +31 -0
  86. data/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  87. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  88. data/ext/ffi_c/libffi/mdate-sh +201 -0
  89. data/ext/ffi_c/libffi/missing +353 -0
  90. data/ext/ffi_c/libffi/mkinstalldirs +158 -0
  91. data/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  92. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  93. data/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
  94. data/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
  95. data/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
  96. data/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
  97. data/ext/ffi_c/libffi/src/closures.c +596 -0
  98. data/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  99. data/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  100. data/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  101. data/ext/ffi_c/libffi/src/debug.c +59 -0
  102. data/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
  103. data/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  104. data/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  105. data/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
  106. data/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
  107. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  108. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  109. data/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  110. data/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
  111. data/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  112. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  113. data/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  114. data/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
  115. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  116. data/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
  117. data/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
  118. data/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
  119. data/ext/ffi_c/libffi/src/mips/n32.S +534 -0
  120. data/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  121. data/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
  122. data/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
  123. data/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  124. data/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  125. data/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
  126. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
  127. data/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  128. data/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
  129. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
  130. data/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
  131. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
  132. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
  133. data/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  134. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  135. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  136. data/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
  137. data/ext/ffi_c/libffi/src/prep_cif.c +174 -0
  138. data/ext/ffi_c/libffi/src/raw_api.c +254 -0
  139. data/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  140. data/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
  141. data/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  142. data/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  143. data/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  144. data/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  145. data/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
  146. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  147. data/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
  148. data/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
  149. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
  150. data/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
  151. data/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  152. data/ext/ffi_c/libffi/src/types.c +77 -0
  153. data/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
  154. data/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  155. data/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
  156. data/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
  157. data/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
  158. data/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  159. data/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
  160. data/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
  161. data/ext/ffi_c/libffi/src/x86/win32.S +391 -0
  162. data/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
  163. data/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
  164. data/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  165. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
  166. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  167. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
  276. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
  277. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  278. data/ext/ffi_c/libffi/texinfo.tex +7482 -0
  279. data/ext/ffi_c/rbffi.h +26 -0
  280. data/gen/Rakefile +12 -0
  281. data/lib/1.8/ffi_c.so +0 -0
  282. data/lib/1.9/ffi_c.so +0 -0
  283. data/lib/ffi.rb +11 -0
  284. data/lib/ffi/autopointer.rb +61 -0
  285. data/lib/ffi/buffer.rb +0 -0
  286. data/lib/ffi/callback.rb +10 -0
  287. data/lib/ffi/enum.rb +78 -0
  288. data/lib/ffi/errno.rb +8 -0
  289. data/lib/ffi/ffi.rb +99 -0
  290. data/lib/ffi/io.rb +21 -0
  291. data/lib/ffi/library.rb +218 -0
  292. data/lib/ffi/managedstruct.rb +55 -0
  293. data/lib/ffi/memorypointer.rb +73 -0
  294. data/lib/ffi/platform.rb +88 -0
  295. data/lib/ffi/pointer.rb +119 -0
  296. data/lib/ffi/struct.rb +183 -0
  297. data/lib/ffi/tools/const_generator.rb +177 -0
  298. data/lib/ffi/tools/generator.rb +58 -0
  299. data/lib/ffi/tools/generator_task.rb +35 -0
  300. data/lib/ffi/tools/struct_generator.rb +194 -0
  301. data/lib/ffi/tools/types_generator.rb +123 -0
  302. data/lib/ffi/types.rb +153 -0
  303. data/lib/ffi/union.rb +12 -0
  304. data/lib/ffi/variadic.rb +25 -0
  305. data/spec/ffi/bool_spec.rb +24 -0
  306. data/spec/ffi/buffer_spec.rb +202 -0
  307. data/spec/ffi/callback_spec.rb +591 -0
  308. data/spec/ffi/enum_spec.rb +164 -0
  309. data/spec/ffi/errno_spec.rb +13 -0
  310. data/spec/ffi/function_spec.rb +73 -0
  311. data/spec/ffi/library_spec.rb +148 -0
  312. data/spec/ffi/managed_struct_spec.rb +56 -0
  313. data/spec/ffi/number_spec.rb +231 -0
  314. data/spec/ffi/pointer_spec.rb +195 -0
  315. data/spec/ffi/rbx/attach_function_spec.rb +27 -0
  316. data/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
  317. data/spec/ffi/rbx/spec_helper.rb +1 -0
  318. data/spec/ffi/rbx/struct_spec.rb +13 -0
  319. data/spec/ffi/spec_helper.rb +17 -0
  320. data/spec/ffi/string_spec.rb +103 -0
  321. data/spec/ffi/struct_callback_spec.rb +64 -0
  322. data/spec/ffi/struct_initialize_spec.rb +30 -0
  323. data/spec/ffi/struct_spec.rb +529 -0
  324. data/spec/ffi/typedef_spec.rb +48 -0
  325. data/spec/ffi/union_spec.rb +60 -0
  326. data/spec/ffi/variadic_spec.rb +84 -0
  327. data/spec/spec.opts +4 -0
  328. metadata +396 -0
@@ -0,0 +1,77 @@
1
+ /* -----------------------------------------------------------------------
2
+ types.c - Copyright (c) 1996, 1998 Red Hat, Inc.
3
+
4
+ Predefined ffi_types needed by libffi.
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ ``Software''), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included
15
+ in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24
+ DEALINGS IN THE SOFTWARE.
25
+ ----------------------------------------------------------------------- */
26
+
27
+ /* Hide the basic type definitions from the header file, so that we
28
+ can redefine them here as "const". */
29
+ #define LIBFFI_HIDE_BASIC_TYPES
30
+
31
+ #include <ffi.h>
32
+ #include <ffi_common.h>
33
+
34
+ /* Type definitions */
35
+
36
+ #define FFI_TYPEDEF(name, type, id) \
37
+ struct struct_align_##name { \
38
+ char c; \
39
+ type x; \
40
+ }; \
41
+ const ffi_type ffi_type_##name = { \
42
+ sizeof(type), \
43
+ offsetof(struct struct_align_##name, x), \
44
+ id, NULL \
45
+ }
46
+
47
+ /* Size and alignment are fake here. They must not be 0. */
48
+ const ffi_type ffi_type_void = {
49
+ 1, 1, FFI_TYPE_VOID, NULL
50
+ };
51
+
52
+ FFI_TYPEDEF(uint8, UINT8, FFI_TYPE_UINT8);
53
+ FFI_TYPEDEF(sint8, SINT8, FFI_TYPE_SINT8);
54
+ FFI_TYPEDEF(uint16, UINT16, FFI_TYPE_UINT16);
55
+ FFI_TYPEDEF(sint16, SINT16, FFI_TYPE_SINT16);
56
+ FFI_TYPEDEF(uint32, UINT32, FFI_TYPE_UINT32);
57
+ FFI_TYPEDEF(sint32, SINT32, FFI_TYPE_SINT32);
58
+ FFI_TYPEDEF(uint64, UINT64, FFI_TYPE_UINT64);
59
+ FFI_TYPEDEF(sint64, SINT64, FFI_TYPE_SINT64);
60
+
61
+ FFI_TYPEDEF(pointer, void*, FFI_TYPE_POINTER);
62
+
63
+ FFI_TYPEDEF(float, float, FFI_TYPE_FLOAT);
64
+ FFI_TYPEDEF(double, double, FFI_TYPE_DOUBLE);
65
+
66
+ #ifdef __alpha__
67
+ /* Even if we're not configured to default to 128-bit long double,
68
+ maintain binary compatibility, as -mlong-double-128 can be used
69
+ at any time. */
70
+ /* Validate the hard-coded number below. */
71
+ # if defined(__LONG_DOUBLE_128__) && FFI_TYPE_LONGDOUBLE != 4
72
+ # error FFI_TYPE_LONGDOUBLE out of date
73
+ # endif
74
+ const ffi_type ffi_type_longdouble = { 16, 16, 4, NULL };
75
+ #elif FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
76
+ FFI_TYPEDEF(longdouble, long double, FFI_TYPE_LONGDOUBLE);
77
+ #endif
@@ -0,0 +1,443 @@
1
+ /* -----------------------------------------------------------------------
2
+ darwin.S - Copyright (c) 1996, 1998, 2001, 2002, 2003, 2005 Red Hat, Inc.
3
+ Copyright (C) 2008 Free Software Foundation, Inc.
4
+
5
+ X86 Foreign Function Interface
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining
8
+ a copy of this software and associated documentation files (the
9
+ ``Software''), to deal in the Software without restriction, including
10
+ without limitation the rights to use, copy, modify, merge, publish,
11
+ distribute, sublicense, and/or sell copies of the Software, and to
12
+ permit persons to whom the Software is furnished to do so, subject to
13
+ the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included
16
+ in all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
19
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
22
+ ANY CLAIM, DAMAGES OR
23
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25
+ OTHER DEALINGS IN THE SOFTWARE.
26
+ ----------------------------------------------------------------------- */
27
+
28
+ #ifndef __x86_64__
29
+
30
+ #define LIBFFI_ASM
31
+ #include <fficonfig.h>
32
+ #include <ffi.h>
33
+
34
+ .text
35
+
36
+ .globl _ffi_prep_args
37
+
38
+ .align 4
39
+ .globl _ffi_call_SYSV
40
+
41
+ _ffi_call_SYSV:
42
+ .LFB1:
43
+ pushl %ebp
44
+ .LCFI0:
45
+ movl %esp,%ebp
46
+ .LCFI1:
47
+ subl $8,%esp
48
+ /* Make room for all of the new args. */
49
+ movl 16(%ebp),%ecx
50
+ subl %ecx,%esp
51
+
52
+ movl %esp,%eax
53
+
54
+ /* Place all of the ffi_prep_args in position */
55
+ subl $8,%esp
56
+ pushl 12(%ebp)
57
+ pushl %eax
58
+ call *8(%ebp)
59
+
60
+ /* Return stack to previous state and call the function */
61
+ addl $16,%esp
62
+
63
+ call *28(%ebp)
64
+
65
+ /* Load %ecx with the return type code */
66
+ movl 20(%ebp),%ecx
67
+
68
+ /* Protect %esi. We're going to pop it in the epilogue. */
69
+ pushl %esi
70
+
71
+ /* If the return value pointer is NULL, assume no return value. */
72
+ cmpl $0,24(%ebp)
73
+ jne 0f
74
+
75
+ /* Even if there is no space for the return value, we are
76
+ obliged to handle floating-point values. */
77
+ cmpl $FFI_TYPE_FLOAT,%ecx
78
+ jne noretval
79
+ fstp %st(0)
80
+
81
+ jmp epilogue
82
+ 0:
83
+ .align 4
84
+ call 1f
85
+ .Lstore_table:
86
+ .long noretval-.Lstore_table /* FFI_TYPE_VOID */
87
+ .long retint-.Lstore_table /* FFI_TYPE_INT */
88
+ .long retfloat-.Lstore_table /* FFI_TYPE_FLOAT */
89
+ .long retdouble-.Lstore_table /* FFI_TYPE_DOUBLE */
90
+ .long retlongdouble-.Lstore_table /* FFI_TYPE_LONGDOUBLE */
91
+ .long retuint8-.Lstore_table /* FFI_TYPE_UINT8 */
92
+ .long retsint8-.Lstore_table /* FFI_TYPE_SINT8 */
93
+ .long retuint16-.Lstore_table /* FFI_TYPE_UINT16 */
94
+ .long retsint16-.Lstore_table /* FFI_TYPE_SINT16 */
95
+ .long retint-.Lstore_table /* FFI_TYPE_UINT32 */
96
+ .long retint-.Lstore_table /* FFI_TYPE_SINT32 */
97
+ .long retint64-.Lstore_table /* FFI_TYPE_UINT64 */
98
+ .long retint64-.Lstore_table /* FFI_TYPE_SINT64 */
99
+ .long retstruct-.Lstore_table /* FFI_TYPE_STRUCT */
100
+ .long retint-.Lstore_table /* FFI_TYPE_POINTER */
101
+ .long retstruct1b-.Lstore_table /* FFI_TYPE_SMALL_STRUCT_1B */
102
+ .long retstruct2b-.Lstore_table /* FFI_TYPE_SMALL_STRUCT_2B */
103
+ 1:
104
+ pop %esi
105
+ add (%esi, %ecx, 4), %esi
106
+ jmp *%esi
107
+
108
+ /* Sign/zero extend as appropriate. */
109
+ retsint8:
110
+ movsbl %al, %eax
111
+ jmp retint
112
+
113
+ retsint16:
114
+ movswl %ax, %eax
115
+ jmp retint
116
+
117
+ retuint8:
118
+ movzbl %al, %eax
119
+ jmp retint
120
+
121
+ retuint16:
122
+ movzwl %ax, %eax
123
+ jmp retint
124
+
125
+ retfloat:
126
+ /* Load %ecx with the pointer to storage for the return value */
127
+ movl 24(%ebp),%ecx
128
+ fstps (%ecx)
129
+ jmp epilogue
130
+
131
+ retdouble:
132
+ /* Load %ecx with the pointer to storage for the return value */
133
+ movl 24(%ebp),%ecx
134
+ fstpl (%ecx)
135
+ jmp epilogue
136
+
137
+ retlongdouble:
138
+ /* Load %ecx with the pointer to storage for the return value */
139
+ movl 24(%ebp),%ecx
140
+ fstpt (%ecx)
141
+ jmp epilogue
142
+
143
+ retint64:
144
+ /* Load %ecx with the pointer to storage for the return value */
145
+ movl 24(%ebp),%ecx
146
+ movl %eax,0(%ecx)
147
+ movl %edx,4(%ecx)
148
+ jmp epilogue
149
+
150
+ retstruct1b:
151
+ /* Load %ecx with the pointer to storage for the return value */
152
+ movl 24(%ebp),%ecx
153
+ movb %al,0(%ecx)
154
+ jmp epilogue
155
+
156
+ retstruct2b:
157
+ /* Load %ecx with the pointer to storage for the return value */
158
+ movl 24(%ebp),%ecx
159
+ movw %ax,0(%ecx)
160
+ jmp epilogue
161
+
162
+ retint:
163
+ /* Load %ecx with the pointer to storage for the return value */
164
+ movl 24(%ebp),%ecx
165
+ movl %eax,0(%ecx)
166
+
167
+ retstruct:
168
+ /* Nothing to do! */
169
+
170
+ noretval:
171
+ epilogue:
172
+ popl %esi
173
+ movl %ebp,%esp
174
+ popl %ebp
175
+ ret
176
+
177
+ .LFE1:
178
+ .ffi_call_SYSV_end:
179
+
180
+ .align 4
181
+ FFI_HIDDEN (ffi_closure_SYSV)
182
+ .globl _ffi_closure_SYSV
183
+
184
+ _ffi_closure_SYSV:
185
+ .LFB2:
186
+ pushl %ebp
187
+ .LCFI2:
188
+ movl %esp, %ebp
189
+ .LCFI3:
190
+ subl $40, %esp
191
+ leal -24(%ebp), %edx
192
+ movl %edx, -12(%ebp) /* resp */
193
+ leal 8(%ebp), %edx
194
+ movl %edx, 4(%esp) /* args = __builtin_dwarf_cfa () */
195
+ leal -12(%ebp), %edx
196
+ movl %edx, (%esp) /* &resp */
197
+ movl %ebx, 8(%esp)
198
+ .LCFI7:
199
+ call L_ffi_closure_SYSV_inner$stub
200
+ movl 8(%esp), %ebx
201
+ movl -12(%ebp), %ecx
202
+ cmpl $FFI_TYPE_INT, %eax
203
+ je .Lcls_retint
204
+
205
+ /* Handle FFI_TYPE_UINT8, FFI_TYPE_SINT8, FFI_TYPE_UINT16,
206
+ FFI_TYPE_SINT16, FFI_TYPE_UINT32, FFI_TYPE_SINT32. */
207
+ cmpl $FFI_TYPE_UINT64, %eax
208
+ jge 0f
209
+ cmpl $FFI_TYPE_UINT8, %eax
210
+ jge .Lcls_retint
211
+
212
+ 0: cmpl $FFI_TYPE_FLOAT, %eax
213
+ je .Lcls_retfloat
214
+ cmpl $FFI_TYPE_DOUBLE, %eax
215
+ je .Lcls_retdouble
216
+ cmpl $FFI_TYPE_LONGDOUBLE, %eax
217
+ je .Lcls_retldouble
218
+ cmpl $FFI_TYPE_SINT64, %eax
219
+ je .Lcls_retllong
220
+ cmpl $FFI_TYPE_SMALL_STRUCT_1B, %eax
221
+ je .Lcls_retstruct1b
222
+ cmpl $FFI_TYPE_SMALL_STRUCT_2B, %eax
223
+ je .Lcls_retstruct2b
224
+ cmpl $FFI_TYPE_STRUCT, %eax
225
+ je .Lcls_retstruct
226
+ .Lcls_epilogue:
227
+ movl %ebp, %esp
228
+ popl %ebp
229
+ ret
230
+ .Lcls_retint:
231
+ movl (%ecx), %eax
232
+ jmp .Lcls_epilogue
233
+ .Lcls_retfloat:
234
+ flds (%ecx)
235
+ jmp .Lcls_epilogue
236
+ .Lcls_retdouble:
237
+ fldl (%ecx)
238
+ jmp .Lcls_epilogue
239
+ .Lcls_retldouble:
240
+ fldt (%ecx)
241
+ jmp .Lcls_epilogue
242
+ .Lcls_retllong:
243
+ movl (%ecx), %eax
244
+ movl 4(%ecx), %edx
245
+ jmp .Lcls_epilogue
246
+ .Lcls_retstruct1b:
247
+ movsbl (%ecx), %eax
248
+ jmp .Lcls_epilogue
249
+ .Lcls_retstruct2b:
250
+ movswl (%ecx), %eax
251
+ jmp .Lcls_epilogue
252
+ .Lcls_retstruct:
253
+ lea -8(%ebp),%esp
254
+ movl %ebp, %esp
255
+ popl %ebp
256
+ ret $4
257
+ .LFE2:
258
+
259
+ #if !FFI_NO_RAW_API
260
+
261
+ #define RAW_CLOSURE_CIF_OFFSET ((FFI_TRAMPOLINE_SIZE + 3) & ~3)
262
+ #define RAW_CLOSURE_FUN_OFFSET (RAW_CLOSURE_CIF_OFFSET + 4)
263
+ #define RAW_CLOSURE_USER_DATA_OFFSET (RAW_CLOSURE_FUN_OFFSET + 4)
264
+ #define CIF_FLAGS_OFFSET 20
265
+
266
+ .align 4
267
+ FFI_HIDDEN (ffi_closure_raw_SYSV)
268
+ .globl _ffi_closure_raw_SYSV
269
+
270
+ _ffi_closure_raw_SYSV:
271
+ .LFB3:
272
+ pushl %ebp
273
+ .LCFI4:
274
+ movl %esp, %ebp
275
+ .LCFI5:
276
+ pushl %esi
277
+ .LCFI6:
278
+ subl $36, %esp
279
+ movl RAW_CLOSURE_CIF_OFFSET(%eax), %esi /* closure->cif */
280
+ movl RAW_CLOSURE_USER_DATA_OFFSET(%eax), %edx /* closure->user_data */
281
+ movl %edx, 12(%esp) /* user_data */
282
+ leal 8(%ebp), %edx /* __builtin_dwarf_cfa () */
283
+ movl %edx, 8(%esp) /* raw_args */
284
+ leal -24(%ebp), %edx
285
+ movl %edx, 4(%esp) /* &res */
286
+ movl %esi, (%esp) /* cif */
287
+ call *RAW_CLOSURE_FUN_OFFSET(%eax) /* closure->fun */
288
+ movl CIF_FLAGS_OFFSET(%esi), %eax /* rtype */
289
+ cmpl $FFI_TYPE_INT, %eax
290
+ je .Lrcls_retint
291
+
292
+ /* Handle FFI_TYPE_UINT8, FFI_TYPE_SINT8, FFI_TYPE_UINT16,
293
+ FFI_TYPE_SINT16, FFI_TYPE_UINT32, FFI_TYPE_SINT32. */
294
+ cmpl $FFI_TYPE_UINT64, %eax
295
+ jge 0f
296
+ cmpl $FFI_TYPE_UINT8, %eax
297
+ jge .Lrcls_retint
298
+ 0:
299
+ cmpl $FFI_TYPE_FLOAT, %eax
300
+ je .Lrcls_retfloat
301
+ cmpl $FFI_TYPE_DOUBLE, %eax
302
+ je .Lrcls_retdouble
303
+ cmpl $FFI_TYPE_LONGDOUBLE, %eax
304
+ je .Lrcls_retldouble
305
+ cmpl $FFI_TYPE_SINT64, %eax
306
+ je .Lrcls_retllong
307
+ .Lrcls_epilogue:
308
+ addl $36, %esp
309
+ popl %esi
310
+ popl %ebp
311
+ ret
312
+ .Lrcls_retint:
313
+ movl -24(%ebp), %eax
314
+ jmp .Lrcls_epilogue
315
+ .Lrcls_retfloat:
316
+ flds -24(%ebp)
317
+ jmp .Lrcls_epilogue
318
+ .Lrcls_retdouble:
319
+ fldl -24(%ebp)
320
+ jmp .Lrcls_epilogue
321
+ .Lrcls_retldouble:
322
+ fldt -24(%ebp)
323
+ jmp .Lrcls_epilogue
324
+ .Lrcls_retllong:
325
+ movl -24(%ebp), %eax
326
+ movl -20(%ebp), %edx
327
+ jmp .Lrcls_epilogue
328
+ .LFE3:
329
+ #endif
330
+
331
+ .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5
332
+ L_ffi_closure_SYSV_inner$stub:
333
+ .indirect_symbol _ffi_closure_SYSV_inner
334
+ hlt ; hlt ; hlt ; hlt ; hlt
335
+
336
+
337
+ .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
338
+ EH_frame1:
339
+ .set L$set$0,LECIE1-LSCIE1
340
+ .long L$set$0
341
+ LSCIE1:
342
+ .long 0x0
343
+ .byte 0x1
344
+ .ascii "zR\0"
345
+ .byte 0x1
346
+ .byte 0x7c
347
+ .byte 0x8
348
+ .byte 0x1
349
+ .byte 0x10
350
+ .byte 0xc
351
+ .byte 0x5
352
+ .byte 0x4
353
+ .byte 0x88
354
+ .byte 0x1
355
+ .align 2
356
+ LECIE1:
357
+ .globl _ffi_call_SYSV.eh
358
+ _ffi_call_SYSV.eh:
359
+ LSFDE1:
360
+ .set L$set$1,LEFDE1-LASFDE1
361
+ .long L$set$1
362
+ LASFDE1:
363
+ .long LASFDE1-EH_frame1
364
+ .long .LFB1-.
365
+ .set L$set$2,.LFE1-.LFB1
366
+ .long L$set$2
367
+ .byte 0x0
368
+ .byte 0x4
369
+ .set L$set$3,.LCFI0-.LFB1
370
+ .long L$set$3
371
+ .byte 0xe
372
+ .byte 0x8
373
+ .byte 0x84
374
+ .byte 0x2
375
+ .byte 0x4
376
+ .set L$set$4,.LCFI1-.LCFI0
377
+ .long L$set$4
378
+ .byte 0xd
379
+ .byte 0x4
380
+ .align 2
381
+ LEFDE1:
382
+ .globl _ffi_closure_SYSV.eh
383
+ _ffi_closure_SYSV.eh:
384
+ LSFDE2:
385
+ .set L$set$5,LEFDE2-LASFDE2
386
+ .long L$set$5
387
+ LASFDE2:
388
+ .long LASFDE2-EH_frame1
389
+ .long .LFB2-.
390
+ .set L$set$6,.LFE2-.LFB2
391
+ .long L$set$6
392
+ .byte 0x0
393
+ .byte 0x4
394
+ .set L$set$7,.LCFI2-.LFB2
395
+ .long L$set$7
396
+ .byte 0xe
397
+ .byte 0x8
398
+ .byte 0x84
399
+ .byte 0x2
400
+ .byte 0x4
401
+ .set L$set$8,.LCFI3-.LCFI2
402
+ .long L$set$8
403
+ .byte 0xd
404
+ .byte 0x4
405
+ .align 2
406
+ LEFDE2:
407
+
408
+ #if !FFI_NO_RAW_API
409
+
410
+ .globl _ffi_closure_raw_SYSV.eh
411
+ _ffi_closure_raw_SYSV.eh:
412
+ LSFDE3:
413
+ .set L$set$10,LEFDE3-LASFDE3
414
+ .long L$set$10
415
+ LASFDE3:
416
+ .long LASFDE3-EH_frame1
417
+ .long .LFB3-.
418
+ .set L$set$11,.LFE3-.LFB3
419
+ .long L$set$11
420
+ .byte 0x0
421
+ .byte 0x4
422
+ .set L$set$12,.LCFI4-.LFB3
423
+ .long L$set$12
424
+ .byte 0xe
425
+ .byte 0x8
426
+ .byte 0x84
427
+ .byte 0x2
428
+ .byte 0x4
429
+ .set L$set$13,.LCFI5-.LCFI4
430
+ .long L$set$13
431
+ .byte 0xd
432
+ .byte 0x4
433
+ .byte 0x4
434
+ .set L$set$14,.LCFI6-.LCFI5
435
+ .long L$set$14
436
+ .byte 0x85
437
+ .byte 0x3
438
+ .align 2
439
+ LEFDE3:
440
+
441
+ #endif
442
+
443
+ #endif /* ifndef __x86_64__ */