tcc 0.1.0

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 (283) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +196 -0
  4. data/ext/tcc/extconf.rb +25 -0
  5. data/ext/tcc/tcc-0.9.26.patch +30 -0
  6. data/ext/tcc/tcc-0.9.26/COPYING +504 -0
  7. data/ext/tcc/tcc-0.9.26/Changelog +396 -0
  8. data/ext/tcc/tcc-0.9.26/Makefile +349 -0
  9. data/ext/tcc/tcc-0.9.26/README +101 -0
  10. data/ext/tcc/tcc-0.9.26/TODO +93 -0
  11. data/ext/tcc/tcc-0.9.26/VERSION +1 -0
  12. data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
  13. data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
  14. data/ext/tcc/tcc-0.9.26/coff.h +446 -0
  15. data/ext/tcc/tcc-0.9.26/config.h +8 -0
  16. data/ext/tcc/tcc-0.9.26/config.mak +28 -0
  17. data/ext/tcc/tcc-0.9.26/config.texi +1 -0
  18. data/ext/tcc/tcc-0.9.26/configure +540 -0
  19. data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
  20. data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
  21. data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
  22. data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
  23. data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
  24. data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
  25. data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
  26. data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
  27. data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
  28. data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
  29. data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
  30. data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
  31. data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
  32. data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
  33. data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
  34. data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
  35. data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
  36. data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
  37. data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
  38. data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
  39. data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
  40. data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
  41. data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
  42. data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
  43. data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
  44. data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
  45. data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
  46. data/ext/tcc/tcc-0.9.26/stab.def +234 -0
  47. data/ext/tcc/tcc-0.9.26/stab.h +17 -0
  48. data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
  49. data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
  50. data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
  51. data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
  52. data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
  53. data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
  54. data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
  55. data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
  56. data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
  57. data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
  58. data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
  59. data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
  60. data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
  61. data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
  62. data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
  63. data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
  64. data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
  65. data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
  66. data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
  67. data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
  68. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
  69. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
  70. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
  71. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
  72. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
  73. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
  74. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
  75. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
  76. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
  77. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
  78. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
  79. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
  80. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
  81. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
  82. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
  83. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
  84. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
  85. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
  86. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
  87. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
  88. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
  89. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
  90. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
  91. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
  92. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
  93. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
  94. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
  95. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
  96. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
  97. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
  98. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
  99. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
  100. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
  101. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
  102. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
  103. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
  104. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
  105. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
  106. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
  107. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
  108. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
  109. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
  110. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
  111. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
  112. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
  113. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
  114. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
  115. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
  116. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
  117. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
  118. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
  119. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
  120. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
  121. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
  122. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
  123. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
  124. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
  125. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
  126. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
  127. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
  128. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
  129. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
  130. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
  131. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
  132. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
  133. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
  134. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
  135. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
  136. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
  137. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
  138. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
  139. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
  140. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
  141. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
  142. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
  143. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
  144. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
  145. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
  146. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
  147. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
  148. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
  149. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
  150. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
  151. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
  152. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
  153. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
  154. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
  155. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
  156. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
  157. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
  158. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
  159. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
  160. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
  161. data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
  162. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
  163. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
  164. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
  165. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
  166. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
  167. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
  168. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
  169. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
  170. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
  171. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
  172. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
  173. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
  174. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
  175. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
  176. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
  177. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
  178. data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
  179. data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
  180. data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
  181. data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
  182. data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
  183. data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
  184. data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
  185. data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
  186. data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
  187. data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
  188. data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
  189. data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
  190. data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
  191. data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
  192. data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
  193. data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
  194. data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
  195. data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
  196. data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
  197. data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
  198. data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
  199. data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
  200. data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
  201. data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
  202. data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
  203. data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
  204. data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
  205. data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
  206. data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
  207. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
  208. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
  209. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
  210. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
  211. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
  212. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
  213. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
  214. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
  215. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
  216. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
  217. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
  218. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
  219. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
  220. data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
  221. data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
  222. data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
  223. data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
  224. data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
  225. data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
  226. data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
  227. data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
  228. data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
  229. data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
  230. data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
  231. data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
  232. data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
  233. data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
  234. data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
  235. data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
  236. data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
  237. data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
  238. data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
  239. data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
  240. data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
  241. data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
  242. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
  243. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
  244. data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
  245. data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
  246. data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
  247. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
  248. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
  249. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
  250. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
  251. data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
  252. data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
  253. data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
  254. data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
  255. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
  256. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
  257. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
  258. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
  259. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
  260. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
  261. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
  262. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
  263. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
  264. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
  265. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
  266. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
  267. data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
  268. data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
  269. data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
  270. data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
  271. data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
  272. data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
  273. data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
  274. data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
  275. data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
  276. data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
  277. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
  278. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
  279. data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
  280. data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
  281. data/lib/tcc.rb +291 -0
  282. data/tcc.gemspec +15 -0
  283. metadata +343 -0
@@ -0,0 +1,609 @@
1
+ # gas comment with ``gnu'' style quotes
2
+
3
+ /* some directive tests */
4
+
5
+ .byte 0xff
6
+ .byte 1, 2, 3
7
+ .short 1, 2, 3
8
+ .word 1, 2, 3
9
+ .long 1, 2, 3
10
+ .int 1, 2, 3
11
+ .align 8
12
+ .byte 1
13
+ /* .align 16, 0x90 gas is too clever for us with 0x90 fill */
14
+ .align 16, 0x91 /* 0x91 tests the non-clever behaviour */
15
+ .skip 3
16
+ .skip 15, 0x90
17
+ .string "hello\0world"
18
+
19
+ /* some label tests */
20
+
21
+ movl %eax, %ebx
22
+ L1:
23
+ movl %eax, %ebx
24
+ mov 0x10000, %eax
25
+ L2:
26
+ movl $L2 - L1, %ecx
27
+ var1:
28
+ nop ; nop ; nop ; nop
29
+
30
+ mov var1, %eax
31
+
32
+ /* instruction tests */
33
+ movl %eax, %ebx
34
+ mov 0x10000, %eax
35
+ mov 0x10000, %ax
36
+ mov 0x10000, %al
37
+ mov %al, 0x10000
38
+
39
+ mov $1, %edx
40
+ mov $1, %dx
41
+ mov $1, %dl
42
+ movb $2, 0x100(%ebx,%edx,2)
43
+ movw $2, 0x100(%ebx,%edx,2)
44
+ movl $2, 0x100(%ebx,%edx,2)
45
+ movl %eax, 0x100(%ebx,%edx,2)
46
+ movl 0x100(%ebx,%edx,2), %edx
47
+ movw %ax, 0x100(%ebx,%edx,2)
48
+
49
+ mov %eax, 0x12(,%edx,2)
50
+
51
+ mov %cr3, %edx
52
+ mov %ecx, %cr3
53
+ movl %cr3, %eax
54
+ movl %tr3, %eax
55
+ movl %db3, %ebx
56
+ movl %dr6, %eax
57
+ movl %fs, %ecx
58
+ movl %ebx, %fs
59
+
60
+ movsbl 0x1000, %eax
61
+ movsbw 0x1000, %ax
62
+ movswl 0x1000, %eax
63
+
64
+ movzbl 0x1000, %eax
65
+ movzbw 0x1000, %ax
66
+ movzwl 0x1000, %eax
67
+
68
+ movzb 0x1000, %eax
69
+ movzb 0x1000, %ax
70
+
71
+
72
+ pushl %eax
73
+ pushw %ax
74
+ push %eax
75
+ push %cs
76
+ push %gs
77
+ push $1
78
+ push $100
79
+
80
+ popl %eax
81
+ popw %ax
82
+ pop %eax
83
+ pop %ds
84
+ pop %fs
85
+
86
+ xchg %eax, %ecx
87
+ xchg %edx, %eax
88
+ xchg %bx, 0x10000
89
+ xchg 0x10000, %ebx
90
+ xchg 0x10000, %dl
91
+
92
+ in $100, %al
93
+ in $100, %ax
94
+ in $100, %eax
95
+ in %dx, %al
96
+ in %dx, %ax
97
+ in %dx, %eax
98
+ inb %dx
99
+ inw %dx
100
+ inl %dx
101
+
102
+ out %al, $100
103
+ out %ax, $100
104
+ out %eax, $100
105
+
106
+ /* NOTE: gas is bugged here, so size must be added */
107
+ outb %al, %dx
108
+ outw %ax, %dx
109
+ outl %eax, %dx
110
+
111
+ leal 0x1000(%ebx), %ecx
112
+ lea 0x1000(%ebx), %ecx
113
+
114
+ les 0x2000, %eax
115
+ lds 0x2000, %ebx
116
+ lfs 0x2000, %ecx
117
+ lgs 0x2000, %edx
118
+ lss 0x2000, %edx
119
+
120
+ addl $0x123, %eax
121
+ add $0x123, %ebx
122
+ addl $0x123, 0x100
123
+ addl $0x123, 0x100(%ebx)
124
+ addl $0x123, 0x100(%ebx,%edx,2)
125
+ addl $0x123, 0x100(%esp)
126
+ addl $0x123, (3*8)(%esp)
127
+ addl $0x123, (%ebp)
128
+ addl $0x123, (%esp)
129
+ cmpl $0x123, (%esp)
130
+
131
+ add %eax, (%ebx)
132
+ add (%ebx), %eax
133
+
134
+ or %dx, (%ebx)
135
+ or (%ebx), %si
136
+
137
+ add %cl, (%ebx)
138
+ add (%ebx), %dl
139
+
140
+ inc %edx
141
+ incl 0x10000
142
+ incb 0x10000
143
+ dec %dx
144
+
145
+ test $1, %al
146
+ test $1, %cl
147
+
148
+ testl $1, 0x1000
149
+ testb $1, 0x1000
150
+ testw $1, 0x1000
151
+ test %eax, %ebx
152
+ test %eax, 0x1000
153
+ test 0x1000, %edx
154
+
155
+ not %edx
156
+ notw 0x10000
157
+ notl 0x10000
158
+ notb 0x10000
159
+
160
+ neg %edx
161
+ negw 0x10000
162
+ negl 0x10000
163
+ negb 0x10000
164
+
165
+ imul %ecx
166
+ mul %edx
167
+ mulb %cl
168
+
169
+ imul %eax, %ecx
170
+ imul 0x1000, %cx
171
+ imul $10, %eax, %ecx
172
+ imul $10, %ax, %cx
173
+ imul $10, %eax
174
+ imul $0x1100000, %eax
175
+ imul $1, %eax
176
+
177
+ idivw 0x1000
178
+ div %ecx
179
+ div %bl
180
+ div %ecx, %eax
181
+
182
+
183
+ shl %edx
184
+ shl $10, %edx
185
+ shl %cl, %edx
186
+
187
+ shld $1, %eax, %edx
188
+ shld %cl, %eax, %edx
189
+ shld %eax, %edx
190
+
191
+ shrd $1, %eax, %edx
192
+ shrd %cl, %eax, %edx
193
+ shrd %eax, %edx
194
+
195
+ L4:
196
+ call 0x1000
197
+ call L4
198
+ call *%eax
199
+ call *0x1000
200
+ call func1
201
+
202
+ .global L5,L6
203
+
204
+ L5:
205
+ L6:
206
+
207
+ lcall $0x100, $0x1000
208
+
209
+ jmp 0x1000
210
+ jmp *%eax
211
+ jmp *0x1000
212
+
213
+ ljmp $0x100, $0x1000
214
+
215
+ ret
216
+ retl
217
+
218
+ ret $10
219
+ retl $10
220
+
221
+ lret
222
+
223
+ lret $10
224
+
225
+ enter $1234, $10
226
+
227
+ L3:
228
+ jo 0x1000
229
+ jnp 0x1001
230
+ jne 0x1002
231
+ jg 0x1003
232
+
233
+ jo L3
234
+ jnp L3
235
+ jne L3
236
+ jg L3
237
+
238
+ loopne L3
239
+ loopnz L3
240
+ loope L3
241
+ loopz L3
242
+ loop L3
243
+ jecxz L3
244
+
245
+
246
+ seto %al
247
+ setnp 0x1000
248
+ setl 0xaaaa
249
+ setg %dl
250
+
251
+ fadd
252
+ fadd %st(1), %st
253
+ fadd %st(0), %st(1)
254
+ fadd %st(3)
255
+
256
+ fmul %st(0),%st(0)
257
+ fmul %st(0),%st(1)
258
+
259
+ faddp %st(5)
260
+ faddp
261
+ faddp %st(1), %st
262
+
263
+ fadds 0x1000
264
+ fiadds 0x1002
265
+ faddl 0x1004
266
+ fiaddl 0x1006
267
+
268
+ fmul
269
+ fmul %st(1), %st
270
+ fmul %st(3)
271
+
272
+ fmulp %st(5)
273
+ fmulp
274
+ fmulp %st(1), %st
275
+
276
+ fmuls 0x1000
277
+ fimuls 0x1002
278
+ fmull 0x1004
279
+ fimull 0x1006
280
+
281
+ fsub
282
+ fsub %st(1), %st
283
+ fsub %st(3)
284
+
285
+ fsubp %st(5)
286
+ fsubp
287
+ fsubp %st(1), %st
288
+
289
+ fsubs 0x1000
290
+ fisubs 0x1002
291
+ fsubl 0x1004
292
+ fisubl 0x1006
293
+
294
+ fsubr
295
+ fsubr %st(1), %st
296
+ fsubr %st(3)
297
+
298
+ fsubrp %st(5)
299
+ fsubrp
300
+ fsubrp %st(1), %st
301
+
302
+ fsubrs 0x1000
303
+ fisubrs 0x1002
304
+ fsubrl 0x1004
305
+ fisubrl 0x1006
306
+
307
+ fdiv
308
+ fdiv %st(1), %st
309
+ fdiv %st(3)
310
+
311
+ fdivp %st(5)
312
+ fdivp
313
+ fdivp %st(1), %st
314
+
315
+ fdivs 0x1000
316
+ fidivs 0x1002
317
+ fdivl 0x1004
318
+ fidivl 0x1006
319
+
320
+ fcom %st(3)
321
+
322
+ fcoms 0x1000
323
+ ficoms 0x1002
324
+ fcoml 0x1004
325
+ ficoml 0x1006
326
+
327
+ fcomp %st(5)
328
+ fcomp
329
+ fcompp
330
+
331
+ fcomps 0x1000
332
+ ficomps 0x1002
333
+ fcompl 0x1004
334
+ ficompl 0x1006
335
+
336
+ fld %st(5)
337
+ fldl 0x1000
338
+ flds 0x1002
339
+ fildl 0x1004
340
+ fst %st(4)
341
+ fstp %st(6)
342
+ fstpt 0x1006
343
+ fbstp 0x1008
344
+
345
+ fxch
346
+ fxch %st(4)
347
+
348
+ fucom %st(6)
349
+ fucomp %st(3)
350
+ fucompp
351
+
352
+ finit
353
+ fninit
354
+ fldcw 0x1000
355
+ fnstcw 0x1002
356
+ fstcw 0x1002
357
+ fnstsw 0x1004
358
+ fnstsw (%eax)
359
+ fstsw 0x1004
360
+ fstsw (%eax)
361
+ fnclex
362
+ fclex
363
+ fnstenv 0x1000
364
+ fstenv 0x1000
365
+ fldenv 0x1000
366
+ fnsave 0x1002
367
+ fsave 0x1000
368
+ frstor 0x1000
369
+ ffree %st(7)
370
+ ffreep %st(6)
371
+
372
+ ftst
373
+ fxam
374
+ fld1
375
+ fldl2t
376
+ fldl2e
377
+ fldpi
378
+ fldlg2
379
+ fldln2
380
+ fldz
381
+
382
+ f2xm1
383
+ fyl2x
384
+ fptan
385
+ fpatan
386
+ fxtract
387
+ fprem1
388
+ fdecstp
389
+ fincstp
390
+ fprem
391
+ fyl2xp1
392
+ fsqrt
393
+ fsincos
394
+ frndint
395
+ fscale
396
+ fsin
397
+ fcos
398
+ fchs
399
+ fabs
400
+ fnop
401
+ fwait
402
+
403
+ bswap %edx
404
+ xadd %ecx, %edx
405
+ xaddb %dl, 0x1000
406
+ xaddw %ax, 0x1000
407
+ xaddl %eax, 0x1000
408
+ cmpxchg %ecx, %edx
409
+ cmpxchgb %dl, 0x1000
410
+ cmpxchgw %ax, 0x1000
411
+ cmpxchgl %eax, 0x1000
412
+ invlpg 0x1000
413
+ cmpxchg8b 0x1002
414
+
415
+ fcmovb %st(5), %st
416
+ fcmove %st(5), %st
417
+ fcmovbe %st(5), %st
418
+ fcmovu %st(5), %st
419
+ fcmovnb %st(5), %st
420
+ fcmovne %st(5), %st
421
+ fcmovnbe %st(5), %st
422
+ fcmovnu %st(5), %st
423
+ fcomi %st(5), %st
424
+ fucomi %st(5), %st
425
+ fcomip %st(5), %st
426
+ fucomip %st(5), %st
427
+
428
+
429
+
430
+ cmovo 0x1000, %eax
431
+ cmovs 0x1000, %eax
432
+ cmovns %edx, %edi
433
+
434
+ int $3
435
+ int $0x10
436
+
437
+ pusha
438
+ popa
439
+ clc
440
+ cld
441
+ cli
442
+ clts
443
+ cmc
444
+ lahf
445
+ sahf
446
+ pushfl
447
+ popfl
448
+ pushf
449
+ popf
450
+ stc
451
+ std
452
+ sti
453
+ aaa
454
+ aas
455
+ daa
456
+ das
457
+ aad
458
+ aam
459
+ cbw
460
+ cwd
461
+ cwde
462
+ cdq
463
+ cbtw
464
+ cwtd
465
+ cwtl
466
+ cltd
467
+ leave
468
+ int3
469
+ into
470
+ iret
471
+ rsm
472
+ hlt
473
+ wait
474
+ nop
475
+
476
+ /* XXX: handle prefixes */
477
+ #if 0
478
+ aword
479
+ addr16
480
+ #endif
481
+ lock
482
+ rep
483
+ repe
484
+ repz
485
+ repne
486
+ repnz
487
+ nop
488
+
489
+ lock ;negl (%eax)
490
+ wait ;pushf
491
+ rep ;stosb
492
+ repe ;lodsb
493
+ repz ;cmpsb
494
+ repne;movsb
495
+ repnz;outsb
496
+
497
+ /* handle one-line prefix + ops */
498
+ lock negl (%eax)
499
+ wait pushf
500
+ rep stosb
501
+ repe lodsb
502
+ repz cmpsb
503
+ repne movsb
504
+ repnz outsb
505
+
506
+ invd
507
+ wbinvd
508
+ cpuid
509
+ wrmsr
510
+ rdtsc
511
+ rdmsr
512
+ rdpmc
513
+ ud2
514
+
515
+ emms
516
+ movd %edx, %mm3
517
+ movd 0x1000, %mm2
518
+ movd %mm4, %ecx
519
+ movd %mm5, 0x1000
520
+
521
+ movq 0x1000, %mm2
522
+ movq %mm4, 0x1000
523
+
524
+ pand 0x1000, %mm3
525
+ pand %mm4, %mm5
526
+
527
+ psllw $1, %mm6
528
+ psllw 0x1000, %mm7
529
+ psllw %mm2, %mm7
530
+
531
+ xlat
532
+ cmpsb
533
+ scmpw
534
+ insl
535
+ outsw
536
+ lodsb
537
+ slodl
538
+ movsb
539
+ movsl
540
+ smovb
541
+ scasb
542
+ sscaw
543
+ stosw
544
+ sstol
545
+
546
+ bsf 0x1000, %ebx
547
+ bsr 0x1000, %ebx
548
+ bt %edx, 0x1000
549
+ btl $2, 0x1000
550
+ btc %edx, 0x1000
551
+ btcl $2, 0x1000
552
+ btr %edx, 0x1000
553
+ btrl $2, 0x1000
554
+ bts %edx, 0x1000
555
+ btsl $2, 0x1000
556
+
557
+
558
+
559
+ boundl %edx, 0x10000
560
+ boundw %bx, 0x1000
561
+
562
+ arpl %bx, 0x1000
563
+ lar 0x1000, %eax
564
+ lgdt 0x1000
565
+ lidt 0x1000
566
+ lldt 0x1000
567
+ lmsw 0x1000
568
+ lsl 0x1000, %ecx
569
+ ltr 0x1000
570
+
571
+ sgdt 0x1000
572
+ sidt 0x1000
573
+ sldt 0x1000
574
+ smsw 0x1000
575
+ str 0x1000
576
+
577
+ verr 0x1000
578
+ verw 0x1000
579
+
580
+ push %ds
581
+ pushw %ds
582
+ pushl %ds
583
+ pop %ds
584
+ popw %ds
585
+ popl %ds
586
+ fxsave 1(%ebx)
587
+ fxrstor 1(%ecx)
588
+ pushl $1
589
+ pushw $1
590
+ push $1
591
+
592
+ #ifdef __ASSEMBLER__ // should be defined, for S files
593
+ inc %eax
594
+ #endif
595
+
596
+ ft1: ft2: ft3: ft4: ft5: ft6: ft7: ft8: ft9:
597
+ xor %eax, %eax
598
+ ret
599
+
600
+ .type ft1,STT_FUNC
601
+ .type ft2,@STT_FUNC
602
+ .type ft3,%STT_FUNC
603
+ .type ft4,"STT_FUNC"
604
+ .type ft5,function
605
+ .type ft6,@function
606
+ .type ft7,%function
607
+ .type ft8,"function"
608
+
609
+ pause