johnson 2.0.0.pre1 → 2.0.0.pre2

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 (311) hide show
  1. data/CHANGELOG.rdoc +12 -0
  2. data/Manifest.txt +4 -285
  3. data/Rakefile +13 -20
  4. data/ext/tracemonkey/global.cc +4 -1
  5. data/ext/tracemonkey/js.cc +30 -33
  6. data/ext/tracemonkey/runtime.cc +96 -6
  7. data/ext/tracemonkey/split_global.cc +0 -5
  8. data/ext/tracemonkey/tracemonkey.h +2 -2
  9. data/lib/johnson.rb +2 -2
  10. data/lib/johnson/runtime.rb +25 -15
  11. data/lib/johnson/tracemonkey/runtime.rb +6 -3
  12. data/vendor/tracemonkey/config/system-headers +1 -3
  13. data/vendor/tracemonkey/jscntxt.h +5 -2
  14. data/vendor/tracemonkey/jsdbgapi.cpp +9 -1
  15. data/vendor/tracemonkey/jsdbgapi.h +4 -0
  16. data/vendor/tracemonkey/tests/ecma/NativeObjects/browser.js +0 -0
  17. data/vendor/tracemonkey/tests/ecma/NativeObjects/jstests.list +0 -0
  18. data/vendor/tracemonkey/tests/ecma_3_1/Object/jstests.list +1 -1
  19. data/vendor/tracemonkey/tests/js1_3/misc/browser.js +0 -0
  20. data/vendor/tracemonkey/tests/js1_3/misc/jstests.list +0 -0
  21. data/vendor/tracemonkey/tests/js1_5/Regress/jstests.list +4 -4
  22. data/vendor/tracemonkey/tests/js1_5/Scope/jstests.list +1 -1
  23. data/vendor/tracemonkey/tests/js1_5/decompilation/jstests.list +2 -2
  24. data/vendor/tracemonkey/tests/js1_7/decompilation/jstests.list +1 -1
  25. data/vendor/tracemonkey/tests/shell.js +2 -1
  26. metadata +51 -309
  27. data/ext/spidermonkey/context.c +0 -116
  28. data/ext/spidermonkey/context.h +0 -19
  29. data/ext/spidermonkey/conversions.c +0 -361
  30. data/ext/spidermonkey/conversions.h +0 -31
  31. data/ext/spidermonkey/debugger.c +0 -234
  32. data/ext/spidermonkey/debugger.h +0 -10
  33. data/ext/spidermonkey/extconf.rb +0 -32
  34. data/ext/spidermonkey/extensions.c +0 -37
  35. data/ext/spidermonkey/extensions.h +0 -12
  36. data/ext/spidermonkey/global.c +0 -40
  37. data/ext/spidermonkey/global.h +0 -11
  38. data/ext/spidermonkey/idhash.c +0 -16
  39. data/ext/spidermonkey/idhash.h +0 -8
  40. data/ext/spidermonkey/immutable_node.c +0 -1153
  41. data/ext/spidermonkey/immutable_node.c.erb +0 -523
  42. data/ext/spidermonkey/immutable_node.h +0 -22
  43. data/ext/spidermonkey/jroot.h +0 -197
  44. data/ext/spidermonkey/js_land_proxy.c +0 -620
  45. data/ext/spidermonkey/js_land_proxy.h +0 -20
  46. data/ext/spidermonkey/ruby_land_proxy.c +0 -618
  47. data/ext/spidermonkey/ruby_land_proxy.h +0 -38
  48. data/ext/spidermonkey/runtime.c +0 -396
  49. data/ext/spidermonkey/runtime.h +0 -27
  50. data/ext/spidermonkey/spidermonkey.c +0 -22
  51. data/ext/spidermonkey/spidermonkey.h +0 -29
  52. data/lib/johnson/spidermonkey.rb +0 -12
  53. data/lib/johnson/spidermonkey/context.rb +0 -10
  54. data/lib/johnson/spidermonkey/debugger.rb +0 -67
  55. data/lib/johnson/spidermonkey/immutable_node.rb +0 -282
  56. data/lib/johnson/spidermonkey/js_land_proxy.rb +0 -64
  57. data/lib/johnson/spidermonkey/mutable_tree_visitor.rb +0 -242
  58. data/lib/johnson/spidermonkey/ruby_land_proxy.rb +0 -17
  59. data/lib/johnson/spidermonkey/runtime.rb +0 -74
  60. data/test/johnson/spidermonkey/context_test.rb +0 -21
  61. data/test/johnson/spidermonkey/immutable_node_test.rb +0 -34
  62. data/test/johnson/spidermonkey/js_land_proxy_test.rb +0 -273
  63. data/test/johnson/spidermonkey/ruby_land_proxy_test.rb +0 -274
  64. data/test/johnson/spidermonkey/runtime_test.rb +0 -41
  65. data/vendor/spidermonkey/.cvsignore +0 -9
  66. data/vendor/spidermonkey/Makefile.in +0 -449
  67. data/vendor/spidermonkey/Makefile.ref +0 -365
  68. data/vendor/spidermonkey/README.html +0 -820
  69. data/vendor/spidermonkey/SpiderMonkey.rsp +0 -12
  70. data/vendor/spidermonkey/Y.js +0 -19
  71. data/vendor/spidermonkey/build.mk +0 -43
  72. data/vendor/spidermonkey/config.mk +0 -192
  73. data/vendor/spidermonkey/config/AIX4.1.mk +0 -65
  74. data/vendor/spidermonkey/config/AIX4.2.mk +0 -64
  75. data/vendor/spidermonkey/config/AIX4.3.mk +0 -65
  76. data/vendor/spidermonkey/config/Darwin.mk +0 -83
  77. data/vendor/spidermonkey/config/Darwin1.3.mk +0 -81
  78. data/vendor/spidermonkey/config/Darwin1.4.mk +0 -41
  79. data/vendor/spidermonkey/config/Darwin5.2.mk +0 -81
  80. data/vendor/spidermonkey/config/Darwin5.3.mk +0 -81
  81. data/vendor/spidermonkey/config/HP-UXB.10.10.mk +0 -77
  82. data/vendor/spidermonkey/config/HP-UXB.10.20.mk +0 -77
  83. data/vendor/spidermonkey/config/HP-UXB.11.00.mk +0 -80
  84. data/vendor/spidermonkey/config/IRIX.mk +0 -87
  85. data/vendor/spidermonkey/config/IRIX5.3.mk +0 -44
  86. data/vendor/spidermonkey/config/IRIX6.1.mk +0 -44
  87. data/vendor/spidermonkey/config/IRIX6.2.mk +0 -44
  88. data/vendor/spidermonkey/config/IRIX6.3.mk +0 -44
  89. data/vendor/spidermonkey/config/IRIX6.5.mk +0 -44
  90. data/vendor/spidermonkey/config/Linux_All.mk +0 -103
  91. data/vendor/spidermonkey/config/Mac_OS10.0.mk +0 -82
  92. data/vendor/spidermonkey/config/OSF1V4.0.mk +0 -72
  93. data/vendor/spidermonkey/config/OSF1V5.0.mk +0 -69
  94. data/vendor/spidermonkey/config/SunOS4.1.4.mk +0 -101
  95. data/vendor/spidermonkey/config/SunOS5.10.mk +0 -50
  96. data/vendor/spidermonkey/config/SunOS5.3.mk +0 -91
  97. data/vendor/spidermonkey/config/SunOS5.4.mk +0 -92
  98. data/vendor/spidermonkey/config/SunOS5.5.1.mk +0 -44
  99. data/vendor/spidermonkey/config/SunOS5.5.mk +0 -87
  100. data/vendor/spidermonkey/config/SunOS5.6.mk +0 -89
  101. data/vendor/spidermonkey/config/SunOS5.7.mk +0 -44
  102. data/vendor/spidermonkey/config/SunOS5.8.mk +0 -44
  103. data/vendor/spidermonkey/config/SunOS5.9.mk +0 -44
  104. data/vendor/spidermonkey/config/WINNT4.0.mk +0 -117
  105. data/vendor/spidermonkey/config/WINNT5.0.mk +0 -117
  106. data/vendor/spidermonkey/config/WINNT5.1.mk +0 -117
  107. data/vendor/spidermonkey/config/WINNT5.2.mk +0 -117
  108. data/vendor/spidermonkey/config/WINNT6.0.mk +0 -117
  109. data/vendor/spidermonkey/config/dgux.mk +0 -64
  110. data/vendor/spidermonkey/editline/Makefile.ref +0 -144
  111. data/vendor/spidermonkey/editline/README +0 -83
  112. data/vendor/spidermonkey/editline/editline.3 +0 -175
  113. data/vendor/spidermonkey/editline/editline.c +0 -1369
  114. data/vendor/spidermonkey/editline/editline.h +0 -135
  115. data/vendor/spidermonkey/editline/sysunix.c +0 -182
  116. data/vendor/spidermonkey/editline/unix.h +0 -82
  117. data/vendor/spidermonkey/fdlibm/.cvsignore +0 -7
  118. data/vendor/spidermonkey/fdlibm/Makefile.in +0 -127
  119. data/vendor/spidermonkey/fdlibm/Makefile.ref +0 -192
  120. data/vendor/spidermonkey/fdlibm/e_acos.c +0 -147
  121. data/vendor/spidermonkey/fdlibm/e_acosh.c +0 -105
  122. data/vendor/spidermonkey/fdlibm/e_asin.c +0 -156
  123. data/vendor/spidermonkey/fdlibm/e_atan2.c +0 -165
  124. data/vendor/spidermonkey/fdlibm/e_atanh.c +0 -110
  125. data/vendor/spidermonkey/fdlibm/e_cosh.c +0 -133
  126. data/vendor/spidermonkey/fdlibm/e_exp.c +0 -202
  127. data/vendor/spidermonkey/fdlibm/e_fmod.c +0 -184
  128. data/vendor/spidermonkey/fdlibm/e_gamma.c +0 -71
  129. data/vendor/spidermonkey/fdlibm/e_gamma_r.c +0 -70
  130. data/vendor/spidermonkey/fdlibm/e_hypot.c +0 -173
  131. data/vendor/spidermonkey/fdlibm/e_j0.c +0 -524
  132. data/vendor/spidermonkey/fdlibm/e_j1.c +0 -523
  133. data/vendor/spidermonkey/fdlibm/e_jn.c +0 -315
  134. data/vendor/spidermonkey/fdlibm/e_lgamma.c +0 -71
  135. data/vendor/spidermonkey/fdlibm/e_lgamma_r.c +0 -347
  136. data/vendor/spidermonkey/fdlibm/e_log.c +0 -184
  137. data/vendor/spidermonkey/fdlibm/e_log10.c +0 -134
  138. data/vendor/spidermonkey/fdlibm/e_pow.c +0 -386
  139. data/vendor/spidermonkey/fdlibm/e_rem_pio2.c +0 -222
  140. data/vendor/spidermonkey/fdlibm/e_remainder.c +0 -120
  141. data/vendor/spidermonkey/fdlibm/e_scalb.c +0 -89
  142. data/vendor/spidermonkey/fdlibm/e_sinh.c +0 -122
  143. data/vendor/spidermonkey/fdlibm/e_sqrt.c +0 -497
  144. data/vendor/spidermonkey/fdlibm/fdlibm.h +0 -273
  145. data/vendor/spidermonkey/fdlibm/fdlibm.mak +0 -1453
  146. data/vendor/spidermonkey/fdlibm/fdlibm.mdp +0 -0
  147. data/vendor/spidermonkey/fdlibm/k_cos.c +0 -135
  148. data/vendor/spidermonkey/fdlibm/k_rem_pio2.c +0 -354
  149. data/vendor/spidermonkey/fdlibm/k_sin.c +0 -114
  150. data/vendor/spidermonkey/fdlibm/k_standard.c +0 -785
  151. data/vendor/spidermonkey/fdlibm/k_tan.c +0 -170
  152. data/vendor/spidermonkey/fdlibm/s_asinh.c +0 -101
  153. data/vendor/spidermonkey/fdlibm/s_atan.c +0 -175
  154. data/vendor/spidermonkey/fdlibm/s_cbrt.c +0 -133
  155. data/vendor/spidermonkey/fdlibm/s_ceil.c +0 -120
  156. data/vendor/spidermonkey/fdlibm/s_copysign.c +0 -72
  157. data/vendor/spidermonkey/fdlibm/s_cos.c +0 -118
  158. data/vendor/spidermonkey/fdlibm/s_erf.c +0 -356
  159. data/vendor/spidermonkey/fdlibm/s_expm1.c +0 -267
  160. data/vendor/spidermonkey/fdlibm/s_fabs.c +0 -70
  161. data/vendor/spidermonkey/fdlibm/s_finite.c +0 -71
  162. data/vendor/spidermonkey/fdlibm/s_floor.c +0 -121
  163. data/vendor/spidermonkey/fdlibm/s_frexp.c +0 -99
  164. data/vendor/spidermonkey/fdlibm/s_ilogb.c +0 -85
  165. data/vendor/spidermonkey/fdlibm/s_isnan.c +0 -74
  166. data/vendor/spidermonkey/fdlibm/s_ldexp.c +0 -66
  167. data/vendor/spidermonkey/fdlibm/s_lib_version.c +0 -73
  168. data/vendor/spidermonkey/fdlibm/s_log1p.c +0 -211
  169. data/vendor/spidermonkey/fdlibm/s_logb.c +0 -79
  170. data/vendor/spidermonkey/fdlibm/s_matherr.c +0 -64
  171. data/vendor/spidermonkey/fdlibm/s_modf.c +0 -132
  172. data/vendor/spidermonkey/fdlibm/s_nextafter.c +0 -124
  173. data/vendor/spidermonkey/fdlibm/s_rint.c +0 -131
  174. data/vendor/spidermonkey/fdlibm/s_scalbn.c +0 -107
  175. data/vendor/spidermonkey/fdlibm/s_signgam.c +0 -40
  176. data/vendor/spidermonkey/fdlibm/s_significand.c +0 -68
  177. data/vendor/spidermonkey/fdlibm/s_sin.c +0 -118
  178. data/vendor/spidermonkey/fdlibm/s_tan.c +0 -112
  179. data/vendor/spidermonkey/fdlibm/s_tanh.c +0 -122
  180. data/vendor/spidermonkey/fdlibm/w_acos.c +0 -78
  181. data/vendor/spidermonkey/fdlibm/w_acosh.c +0 -78
  182. data/vendor/spidermonkey/fdlibm/w_asin.c +0 -80
  183. data/vendor/spidermonkey/fdlibm/w_atan2.c +0 -79
  184. data/vendor/spidermonkey/fdlibm/w_atanh.c +0 -81
  185. data/vendor/spidermonkey/fdlibm/w_cosh.c +0 -77
  186. data/vendor/spidermonkey/fdlibm/w_exp.c +0 -88
  187. data/vendor/spidermonkey/fdlibm/w_fmod.c +0 -78
  188. data/vendor/spidermonkey/fdlibm/w_gamma.c +0 -85
  189. data/vendor/spidermonkey/fdlibm/w_gamma_r.c +0 -81
  190. data/vendor/spidermonkey/fdlibm/w_hypot.c +0 -78
  191. data/vendor/spidermonkey/fdlibm/w_j0.c +0 -105
  192. data/vendor/spidermonkey/fdlibm/w_j1.c +0 -106
  193. data/vendor/spidermonkey/fdlibm/w_jn.c +0 -128
  194. data/vendor/spidermonkey/fdlibm/w_lgamma.c +0 -85
  195. data/vendor/spidermonkey/fdlibm/w_lgamma_r.c +0 -81
  196. data/vendor/spidermonkey/fdlibm/w_log.c +0 -78
  197. data/vendor/spidermonkey/fdlibm/w_log10.c +0 -81
  198. data/vendor/spidermonkey/fdlibm/w_pow.c +0 -99
  199. data/vendor/spidermonkey/fdlibm/w_remainder.c +0 -77
  200. data/vendor/spidermonkey/fdlibm/w_scalb.c +0 -95
  201. data/vendor/spidermonkey/fdlibm/w_sinh.c +0 -77
  202. data/vendor/spidermonkey/fdlibm/w_sqrt.c +0 -77
  203. data/vendor/spidermonkey/javascript-trace.d +0 -73
  204. data/vendor/spidermonkey/js.c +0 -3951
  205. data/vendor/spidermonkey/js.mdp +0 -0
  206. data/vendor/spidermonkey/js.msg +0 -308
  207. data/vendor/spidermonkey/js.pkg +0 -2
  208. data/vendor/spidermonkey/js3240.rc +0 -79
  209. data/vendor/spidermonkey/jsOS240.def +0 -654
  210. data/vendor/spidermonkey/jsapi.c +0 -5836
  211. data/vendor/spidermonkey/jsapi.h +0 -2624
  212. data/vendor/spidermonkey/jsarena.c +0 -450
  213. data/vendor/spidermonkey/jsarena.h +0 -318
  214. data/vendor/spidermonkey/jsarray.c +0 -2996
  215. data/vendor/spidermonkey/jsarray.h +0 -127
  216. data/vendor/spidermonkey/jsatom.c +0 -1045
  217. data/vendor/spidermonkey/jsatom.h +0 -442
  218. data/vendor/spidermonkey/jsbit.h +0 -253
  219. data/vendor/spidermonkey/jsbool.c +0 -176
  220. data/vendor/spidermonkey/jsbool.h +0 -73
  221. data/vendor/spidermonkey/jsclist.h +0 -139
  222. data/vendor/spidermonkey/jscntxt.c +0 -1348
  223. data/vendor/spidermonkey/jscntxt.h +0 -1120
  224. data/vendor/spidermonkey/jscompat.h +0 -57
  225. data/vendor/spidermonkey/jsconfig.h +0 -248
  226. data/vendor/spidermonkey/jsconfig.mk +0 -181
  227. data/vendor/spidermonkey/jscpucfg.c +0 -396
  228. data/vendor/spidermonkey/jscpucfg.h +0 -212
  229. data/vendor/spidermonkey/jsdate.c +0 -2390
  230. data/vendor/spidermonkey/jsdate.h +0 -124
  231. data/vendor/spidermonkey/jsdbgapi.c +0 -1802
  232. data/vendor/spidermonkey/jsdbgapi.h +0 -464
  233. data/vendor/spidermonkey/jsdhash.c +0 -868
  234. data/vendor/spidermonkey/jsdhash.h +0 -592
  235. data/vendor/spidermonkey/jsdtoa.c +0 -3167
  236. data/vendor/spidermonkey/jsdtoa.h +0 -130
  237. data/vendor/spidermonkey/jsdtracef.c +0 -317
  238. data/vendor/spidermonkey/jsdtracef.h +0 -77
  239. data/vendor/spidermonkey/jsemit.c +0 -6909
  240. data/vendor/spidermonkey/jsemit.h +0 -741
  241. data/vendor/spidermonkey/jsexn.c +0 -1371
  242. data/vendor/spidermonkey/jsexn.h +0 -96
  243. data/vendor/spidermonkey/jsfile.c +0 -2736
  244. data/vendor/spidermonkey/jsfile.h +0 -56
  245. data/vendor/spidermonkey/jsfile.msg +0 -90
  246. data/vendor/spidermonkey/jsfun.c +0 -2634
  247. data/vendor/spidermonkey/jsfun.h +0 -254
  248. data/vendor/spidermonkey/jsgc.c +0 -3562
  249. data/vendor/spidermonkey/jsgc.h +0 -403
  250. data/vendor/spidermonkey/jshash.c +0 -476
  251. data/vendor/spidermonkey/jshash.h +0 -151
  252. data/vendor/spidermonkey/jsify.pl +0 -485
  253. data/vendor/spidermonkey/jsinterp.c +0 -7007
  254. data/vendor/spidermonkey/jsinterp.h +0 -525
  255. data/vendor/spidermonkey/jsinvoke.c +0 -43
  256. data/vendor/spidermonkey/jsiter.c +0 -1067
  257. data/vendor/spidermonkey/jsiter.h +0 -122
  258. data/vendor/spidermonkey/jskeyword.tbl +0 -124
  259. data/vendor/spidermonkey/jskwgen.c +0 -460
  260. data/vendor/spidermonkey/jslibmath.h +0 -266
  261. data/vendor/spidermonkey/jslock.c +0 -1309
  262. data/vendor/spidermonkey/jslock.h +0 -313
  263. data/vendor/spidermonkey/jslocko.asm +0 -60
  264. data/vendor/spidermonkey/jslog2.c +0 -94
  265. data/vendor/spidermonkey/jslong.c +0 -264
  266. data/vendor/spidermonkey/jslong.h +0 -412
  267. data/vendor/spidermonkey/jsmath.c +0 -567
  268. data/vendor/spidermonkey/jsmath.h +0 -57
  269. data/vendor/spidermonkey/jsnum.c +0 -1239
  270. data/vendor/spidermonkey/jsnum.h +0 -283
  271. data/vendor/spidermonkey/jsobj.c +0 -5282
  272. data/vendor/spidermonkey/jsobj.h +0 -709
  273. data/vendor/spidermonkey/jsopcode.c +0 -5245
  274. data/vendor/spidermonkey/jsopcode.h +0 -394
  275. data/vendor/spidermonkey/jsopcode.tbl +0 -523
  276. data/vendor/spidermonkey/jsotypes.h +0 -202
  277. data/vendor/spidermonkey/jsparse.c +0 -6704
  278. data/vendor/spidermonkey/jsparse.h +0 -511
  279. data/vendor/spidermonkey/jsprf.c +0 -1264
  280. data/vendor/spidermonkey/jsprf.h +0 -150
  281. data/vendor/spidermonkey/jsproto.tbl +0 -128
  282. data/vendor/spidermonkey/jsprvtd.h +0 -267
  283. data/vendor/spidermonkey/jspubtd.h +0 -744
  284. data/vendor/spidermonkey/jsregexp.c +0 -4364
  285. data/vendor/spidermonkey/jsregexp.h +0 -183
  286. data/vendor/spidermonkey/jsreops.tbl +0 -145
  287. data/vendor/spidermonkey/jsscan.c +0 -2012
  288. data/vendor/spidermonkey/jsscan.h +0 -387
  289. data/vendor/spidermonkey/jsscope.c +0 -1957
  290. data/vendor/spidermonkey/jsscope.h +0 -418
  291. data/vendor/spidermonkey/jsscript.c +0 -1832
  292. data/vendor/spidermonkey/jsscript.h +0 -287
  293. data/vendor/spidermonkey/jsshell.msg +0 -50
  294. data/vendor/spidermonkey/jsstddef.h +0 -83
  295. data/vendor/spidermonkey/jsstr.c +0 -5005
  296. data/vendor/spidermonkey/jsstr.h +0 -641
  297. data/vendor/spidermonkey/jstypes.h +0 -475
  298. data/vendor/spidermonkey/jsutil.c +0 -345
  299. data/vendor/spidermonkey/jsutil.h +0 -157
  300. data/vendor/spidermonkey/jsxdrapi.c +0 -800
  301. data/vendor/spidermonkey/jsxdrapi.h +0 -218
  302. data/vendor/spidermonkey/jsxml.c +0 -8476
  303. data/vendor/spidermonkey/jsxml.h +0 -349
  304. data/vendor/spidermonkey/lock_SunOS.s +0 -119
  305. data/vendor/spidermonkey/perfect.js +0 -39
  306. data/vendor/spidermonkey/plify_jsdhash.sed +0 -36
  307. data/vendor/spidermonkey/prmjtime.c +0 -846
  308. data/vendor/spidermonkey/prmjtime.h +0 -103
  309. data/vendor/spidermonkey/resource.h +0 -15
  310. data/vendor/spidermonkey/rules.mk +0 -197
  311. data/vendor/spidermonkey/win32.order +0 -384
@@ -1,396 +0,0 @@
1
- /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
- *
3
- * ***** BEGIN LICENSE BLOCK *****
4
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
- *
6
- * The contents of this file are subject to the Mozilla Public License Version
7
- * 1.1 (the "License"); you may not use this file except in compliance with
8
- * the License. You may obtain a copy of the License at
9
- * http://www.mozilla.org/MPL/
10
- *
11
- * Software distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
- * for the specific language governing rights and limitations under the
14
- * License.
15
- *
16
- * The Original Code is Mozilla Communicator client code, released
17
- * March 31, 1998.
18
- *
19
- * The Initial Developer of the Original Code is
20
- * Netscape Communications Corporation.
21
- * Portions created by the Initial Developer are Copyright (C) 1998
22
- * the Initial Developer. All Rights Reserved.
23
- *
24
- * Contributor(s):
25
- * Roland Mainz <roland.mainz@informatik.med.uni-giessen.de>
26
- *
27
- * Alternatively, the contents of this file may be used under the terms of
28
- * either of the GNU General Public License Version 2 or later (the "GPL"),
29
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
30
- * in which case the provisions of the GPL or the LGPL are applicable instead
31
- * of those above. If you wish to allow use of your version of this file only
32
- * under the terms of either the GPL or the LGPL, and not to allow others to
33
- * use your version of this file under the terms of the MPL, indicate your
34
- * decision by deleting the provisions above and replace them with the notice
35
- * and other provisions required by the GPL or the LGPL. If you do not delete
36
- * the provisions above, a recipient may use your version of this file under
37
- * the terms of any one of the MPL, the GPL or the LGPL.
38
- *
39
- * ***** END LICENSE BLOCK ***** */
40
-
41
- /*
42
- * Generate CPU-specific bit-size and similar #defines.
43
- */
44
- #include <stdio.h>
45
- #include <stdlib.h>
46
-
47
- #ifdef CROSS_COMPILE
48
- #include <prtypes.h>
49
- #define INT64 PRInt64
50
- #else
51
-
52
- /************************************************************************/
53
-
54
- /* Generate cpucfg.h */
55
-
56
- #if defined(XP_WIN) || defined(XP_OS2)
57
- #ifdef WIN32
58
- #if defined(__GNUC__)
59
- #define INT64 long long
60
- #else
61
- #define INT64 _int64
62
- #endif /* __GNUC__ */
63
- #else
64
- #define INT64 long
65
- #endif
66
- #else
67
- #if defined(HPUX) || defined(__QNX__)
68
- #define INT64 long
69
- #else
70
- #define INT64 long long
71
- #endif
72
- #endif
73
-
74
- #endif /* CROSS_COMPILE */
75
-
76
- #ifdef __GNUC__
77
- #define NS_NEVER_INLINE __attribute__((noinline))
78
- #else
79
- #define NS_NEVER_INLINE
80
- #endif
81
-
82
- #ifdef __SUNPRO_C
83
- static int StackGrowthDirection(int *dummy1addr);
84
- #pragma no_inline(StackGrowthDirection)
85
- #endif
86
-
87
- typedef void *prword;
88
-
89
- struct align_short {
90
- char c;
91
- short a;
92
- };
93
- struct align_int {
94
- char c;
95
- int a;
96
- };
97
- struct align_long {
98
- char c;
99
- long a;
100
- };
101
- struct align_int64 {
102
- char c;
103
- INT64 a;
104
- };
105
- struct align_fakelonglong {
106
- char c;
107
- struct {
108
- long hi, lo;
109
- } a;
110
- };
111
- struct align_float {
112
- char c;
113
- float a;
114
- };
115
- struct align_double {
116
- char c;
117
- double a;
118
- };
119
- struct align_pointer {
120
- char c;
121
- void *a;
122
- };
123
- struct align_prword {
124
- char c;
125
- prword a;
126
- };
127
-
128
- #define ALIGN_OF(type) \
129
- (((char*)&(((struct align_##type *)0)->a)) - ((char*)0))
130
-
131
- unsigned int bpb;
132
-
133
- static int Log2(unsigned int n)
134
- {
135
- int log2 = 0;
136
-
137
- if (n & (n-1))
138
- log2++;
139
- if (n >> 16)
140
- log2 += 16, n >>= 16;
141
- if (n >> 8)
142
- log2 += 8, n >>= 8;
143
- if (n >> 4)
144
- log2 += 4, n >>= 4;
145
- if (n >> 2)
146
- log2 += 2, n >>= 2;
147
- if (n >> 1)
148
- log2++;
149
- return log2;
150
- }
151
-
152
- /*
153
- * Conceivably this could actually be used, but there is lots of code out
154
- * there with ands and shifts in it that assumes a byte is exactly 8 bits,
155
- * so forget about porting THIS code to all those non 8 bit byte machines.
156
- */
157
- static void BitsPerByte(void)
158
- {
159
- bpb = 8;
160
- }
161
-
162
- static int NS_NEVER_INLINE StackGrowthDirection(int *dummy1addr)
163
- {
164
- int dummy2;
165
-
166
- return (&dummy2 < dummy1addr) ? -1 : 1;
167
- }
168
-
169
- int main(int argc, char **argv)
170
- {
171
- int sizeof_char, sizeof_short, sizeof_int, sizeof_int64, sizeof_long,
172
- sizeof_float, sizeof_double, sizeof_word, sizeof_dword;
173
- int bits_per_int64_log2, align_of_short, align_of_int, align_of_long,
174
- align_of_int64, align_of_float, align_of_double, align_of_pointer,
175
- align_of_word;
176
- int dummy1;
177
-
178
- BitsPerByte();
179
-
180
- printf("#ifndef js_cpucfg___\n");
181
- printf("#define js_cpucfg___\n\n");
182
-
183
- printf("/* AUTOMATICALLY GENERATED - DO NOT EDIT */\n\n");
184
-
185
- #ifdef CROSS_COMPILE
186
- #if defined(__APPLE__)
187
- /*
188
- * Darwin NSPR uses the same MDCPUCFG (_darwin.cfg) for multiple
189
- * processors, and determines which processor to configure for based
190
- * on compiler predefined macros. We do the same thing here.
191
- */
192
- printf("#ifdef __LITTLE_ENDIAN__\n");
193
- printf("#define IS_LITTLE_ENDIAN 1\n");
194
- printf("#undef IS_BIG_ENDIAN\n");
195
- printf("#else\n");
196
- printf("#undef IS_LITTLE_ENDIAN\n");
197
- printf("#define IS_BIG_ENDIAN 1\n");
198
- printf("#endif\n\n");
199
- #elif defined(IS_LITTLE_ENDIAN)
200
- printf("#define IS_LITTLE_ENDIAN 1\n");
201
- printf("#undef IS_BIG_ENDIAN\n\n");
202
- #elif defined(IS_BIG_ENDIAN)
203
- printf("#undef IS_LITTLE_ENDIAN\n");
204
- printf("#define IS_BIG_ENDIAN 1\n\n");
205
- #else
206
- #error "Endianess not defined."
207
- #endif
208
-
209
- sizeof_char = PR_BYTES_PER_BYTE;
210
- sizeof_short = PR_BYTES_PER_SHORT;
211
- sizeof_int = PR_BYTES_PER_INT;
212
- sizeof_int64 = PR_BYTES_PER_INT64;
213
- sizeof_long = PR_BYTES_PER_LONG;
214
- sizeof_float = PR_BYTES_PER_FLOAT;
215
- sizeof_double = PR_BYTES_PER_DOUBLE;
216
- sizeof_word = PR_BYTES_PER_WORD;
217
- sizeof_dword = PR_BYTES_PER_DWORD;
218
-
219
- bits_per_int64_log2 = PR_BITS_PER_INT64_LOG2;
220
-
221
- align_of_short = PR_ALIGN_OF_SHORT;
222
- align_of_int = PR_ALIGN_OF_INT;
223
- align_of_long = PR_ALIGN_OF_LONG;
224
- align_of_int64 = PR_ALIGN_OF_INT64;
225
- align_of_float = PR_ALIGN_OF_FLOAT;
226
- align_of_double = PR_ALIGN_OF_DOUBLE;
227
- align_of_pointer = PR_ALIGN_OF_POINTER;
228
- align_of_word = PR_ALIGN_OF_WORD;
229
-
230
- #else /* !CROSS_COMPILE */
231
-
232
- /*
233
- * We don't handle PDP-endian or similar orders: if a short is big-endian,
234
- * so must int and long be big-endian for us to generate the IS_BIG_ENDIAN
235
- * #define and the IS_LITTLE_ENDIAN #undef.
236
- */
237
- {
238
- int big_endian = 0, little_endian = 0, ntests = 0;
239
-
240
- if (sizeof(short) == 2) {
241
- /* force |volatile| here to get rid of any compiler optimisations
242
- * (var in register etc.) which may be appiled to |auto| vars -
243
- * even those in |union|s...
244
- * (|static| is used to get the same functionality for compilers
245
- * which do not honor |volatile|...).
246
- */
247
- volatile static union {
248
- short i;
249
- char c[2];
250
- } u;
251
-
252
- u.i = 0x0102;
253
- big_endian += (u.c[0] == 0x01 && u.c[1] == 0x02);
254
- little_endian += (u.c[0] == 0x02 && u.c[1] == 0x01);
255
- ntests++;
256
- }
257
-
258
- if (sizeof(int) == 4) {
259
- /* force |volatile| here ... */
260
- volatile static union {
261
- int i;
262
- char c[4];
263
- } u;
264
-
265
- u.i = 0x01020304;
266
- big_endian += (u.c[0] == 0x01 && u.c[1] == 0x02 &&
267
- u.c[2] == 0x03 && u.c[3] == 0x04);
268
- little_endian += (u.c[0] == 0x04 && u.c[1] == 0x03 &&
269
- u.c[2] == 0x02 && u.c[3] == 0x01);
270
- ntests++;
271
- }
272
-
273
- if (sizeof(long) == 8) {
274
- /* force |volatile| here ... */
275
- volatile static union {
276
- long i;
277
- char c[8];
278
- } u;
279
-
280
- /*
281
- * Write this as portably as possible: avoid 0x0102030405060708L
282
- * and <<= 32.
283
- */
284
- u.i = 0x01020304;
285
- u.i <<= 16, u.i <<= 16;
286
- u.i |= 0x05060708;
287
- big_endian += (u.c[0] == 0x01 && u.c[1] == 0x02 &&
288
- u.c[2] == 0x03 && u.c[3] == 0x04 &&
289
- u.c[4] == 0x05 && u.c[5] == 0x06 &&
290
- u.c[6] == 0x07 && u.c[7] == 0x08);
291
- little_endian += (u.c[0] == 0x08 && u.c[1] == 0x07 &&
292
- u.c[2] == 0x06 && u.c[3] == 0x05 &&
293
- u.c[4] == 0x04 && u.c[5] == 0x03 &&
294
- u.c[6] == 0x02 && u.c[7] == 0x01);
295
- ntests++;
296
- }
297
-
298
- if (big_endian && big_endian == ntests) {
299
- printf("#undef IS_LITTLE_ENDIAN\n");
300
- printf("#define IS_BIG_ENDIAN 1\n\n");
301
- } else if (little_endian && little_endian == ntests) {
302
- printf("#define IS_LITTLE_ENDIAN 1\n");
303
- printf("#undef IS_BIG_ENDIAN\n\n");
304
- } else {
305
- fprintf(stderr, "%s: unknown byte order"
306
- "(big_endian=%d, little_endian=%d, ntests=%d)!\n",
307
- argv[0], big_endian, little_endian, ntests);
308
- return EXIT_FAILURE;
309
- }
310
- }
311
-
312
- sizeof_char = sizeof(char);
313
- sizeof_short = sizeof(short);
314
- sizeof_int = sizeof(int);
315
- sizeof_int64 = 8;
316
- sizeof_long = sizeof(long);
317
- sizeof_float = sizeof(float);
318
- sizeof_double = sizeof(double);
319
- sizeof_word = sizeof(prword);
320
- sizeof_dword = 8;
321
-
322
- bits_per_int64_log2 = 6;
323
-
324
- align_of_short = ALIGN_OF(short);
325
- align_of_int = ALIGN_OF(int);
326
- align_of_long = ALIGN_OF(long);
327
- if (sizeof(INT64) < 8) {
328
- /* this machine doesn't actually support int64's */
329
- align_of_int64 = ALIGN_OF(fakelonglong);
330
- } else {
331
- align_of_int64 = ALIGN_OF(int64);
332
- }
333
- align_of_float = ALIGN_OF(float);
334
- align_of_double = ALIGN_OF(double);
335
- align_of_pointer = ALIGN_OF(pointer);
336
- align_of_word = ALIGN_OF(prword);
337
-
338
- #endif /* CROSS_COMPILE */
339
-
340
- printf("#define JS_BYTES_PER_BYTE %dL\n", sizeof_char);
341
- printf("#define JS_BYTES_PER_SHORT %dL\n", sizeof_short);
342
- printf("#define JS_BYTES_PER_INT %dL\n", sizeof_int);
343
- printf("#define JS_BYTES_PER_INT64 %dL\n", sizeof_int64);
344
- printf("#define JS_BYTES_PER_LONG %dL\n", sizeof_long);
345
- printf("#define JS_BYTES_PER_FLOAT %dL\n", sizeof_float);
346
- printf("#define JS_BYTES_PER_DOUBLE %dL\n", sizeof_double);
347
- printf("#define JS_BYTES_PER_WORD %dL\n", sizeof_word);
348
- printf("#define JS_BYTES_PER_DWORD %dL\n", sizeof_dword);
349
- printf("\n");
350
-
351
- printf("#define JS_BITS_PER_BYTE %dL\n", bpb);
352
- printf("#define JS_BITS_PER_SHORT %dL\n", bpb * sizeof_short);
353
- printf("#define JS_BITS_PER_INT %dL\n", bpb * sizeof_int);
354
- printf("#define JS_BITS_PER_INT64 %dL\n", bpb * sizeof_int64);
355
- printf("#define JS_BITS_PER_LONG %dL\n", bpb * sizeof_long);
356
- printf("#define JS_BITS_PER_FLOAT %dL\n", bpb * sizeof_float);
357
- printf("#define JS_BITS_PER_DOUBLE %dL\n", bpb * sizeof_double);
358
- printf("#define JS_BITS_PER_WORD %dL\n", bpb * sizeof_word);
359
- printf("\n");
360
-
361
- printf("#define JS_BITS_PER_BYTE_LOG2 %dL\n", Log2(bpb));
362
- printf("#define JS_BITS_PER_SHORT_LOG2 %dL\n", Log2(bpb * sizeof_short));
363
- printf("#define JS_BITS_PER_INT_LOG2 %dL\n", Log2(bpb * sizeof_int));
364
- printf("#define JS_BITS_PER_INT64_LOG2 %dL\n", bits_per_int64_log2);
365
- printf("#define JS_BITS_PER_LONG_LOG2 %dL\n", Log2(bpb * sizeof_long));
366
- printf("#define JS_BITS_PER_FLOAT_LOG2 %dL\n", Log2(bpb * sizeof_float));
367
- printf("#define JS_BITS_PER_DOUBLE_LOG2 %dL\n", Log2(bpb * sizeof_double));
368
- printf("#define JS_BITS_PER_WORD_LOG2 %dL\n", Log2(bpb * sizeof_word));
369
- printf("\n");
370
-
371
- printf("#define JS_ALIGN_OF_SHORT %dL\n", align_of_short);
372
- printf("#define JS_ALIGN_OF_INT %dL\n", align_of_int);
373
- printf("#define JS_ALIGN_OF_LONG %dL\n", align_of_long);
374
- printf("#define JS_ALIGN_OF_INT64 %dL\n", align_of_int64);
375
- printf("#define JS_ALIGN_OF_FLOAT %dL\n", align_of_float);
376
- printf("#define JS_ALIGN_OF_DOUBLE %dL\n", align_of_double);
377
- printf("#define JS_ALIGN_OF_POINTER %dL\n", align_of_pointer);
378
- printf("#define JS_ALIGN_OF_WORD %dL\n", align_of_word);
379
- printf("\n");
380
-
381
- printf("#define JS_BYTES_PER_WORD_LOG2 %dL\n", Log2(sizeof_word));
382
- printf("#define JS_BYTES_PER_DWORD_LOG2 %dL\n", Log2(sizeof_dword));
383
- printf("#define JS_WORDS_PER_DWORD_LOG2 %dL\n", Log2(sizeof_dword/sizeof_word));
384
- printf("\n");
385
-
386
- printf("#define JS_STACK_GROWTH_DIRECTION (%d)\n", StackGrowthDirection(&dummy1));
387
- printf("\n");
388
-
389
- printf("#define JS_HAVE_LONG_LONG\n");
390
- printf("\n");
391
-
392
- printf("#endif /* js_cpucfg___ */\n");
393
-
394
- return EXIT_SUCCESS;
395
- }
396
-
@@ -1,212 +0,0 @@
1
- /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
- *
3
- * ***** BEGIN LICENSE BLOCK *****
4
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
- *
6
- * The contents of this file are subject to the Mozilla Public License Version
7
- * 1.1 (the "License"); you may not use this file except in compliance with
8
- * the License. You may obtain a copy of the License at
9
- * http://www.mozilla.org/MPL/
10
- *
11
- * Software distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
- * for the specific language governing rights and limitations under the
14
- * License.
15
- *
16
- * The Original Code is Mozilla Communicator client code, released
17
- * March 31, 1998.
18
- *
19
- * The Initial Developer of the Original Code is
20
- * Netscape Communications Corporation.
21
- * Portions created by the Initial Developer are Copyright (C) 1998
22
- * the Initial Developer. All Rights Reserved.
23
- *
24
- * Contributor(s):
25
- *
26
- * Alternatively, the contents of this file may be used under the terms of
27
- * either of the GNU General Public License Version 2 or later (the "GPL"),
28
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29
- * in which case the provisions of the GPL or the LGPL are applicable instead
30
- * of those above. If you wish to allow use of your version of this file only
31
- * under the terms of either the GPL or the LGPL, and not to allow others to
32
- * use your version of this file under the terms of the MPL, indicate your
33
- * decision by deleting the provisions above and replace them with the notice
34
- * and other provisions required by the GPL or the LGPL. If you do not delete
35
- * the provisions above, a recipient may use your version of this file under
36
- * the terms of any one of the MPL, the GPL or the LGPL.
37
- *
38
- * ***** END LICENSE BLOCK ***** */
39
-
40
- #ifndef js_cpucfg___
41
- #define js_cpucfg___
42
-
43
- #define JS_HAVE_LONG_LONG
44
-
45
- #if defined(XP_WIN) || defined(XP_OS2) || defined(WINCE)
46
-
47
- #if defined(_WIN64)
48
-
49
- #if defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_)
50
- #define IS_LITTLE_ENDIAN 1
51
- #undef IS_BIG_ENDIAN
52
-
53
- #define JS_BYTES_PER_BYTE 1L
54
- #define JS_BYTES_PER_SHORT 2L
55
- #define JS_BYTES_PER_INT 4L
56
- #define JS_BYTES_PER_INT64 8L
57
- #define JS_BYTES_PER_LONG 4L
58
- #define JS_BYTES_PER_FLOAT 4L
59
- #define JS_BYTES_PER_DOUBLE 8L
60
- #define JS_BYTES_PER_WORD 8L
61
- #define JS_BYTES_PER_DWORD 8L
62
-
63
- #define JS_BITS_PER_BYTE 8L
64
- #define JS_BITS_PER_SHORT 16L
65
- #define JS_BITS_PER_INT 32L
66
- #define JS_BITS_PER_INT64 64L
67
- #define JS_BITS_PER_LONG 32L
68
- #define JS_BITS_PER_FLOAT 32L
69
- #define JS_BITS_PER_DOUBLE 64L
70
- #define JS_BITS_PER_WORD 64L
71
-
72
- #define JS_BITS_PER_BYTE_LOG2 3L
73
- #define JS_BITS_PER_SHORT_LOG2 4L
74
- #define JS_BITS_PER_INT_LOG2 5L
75
- #define JS_BITS_PER_INT64_LOG2 6L
76
- #define JS_BITS_PER_LONG_LOG2 5L
77
- #define JS_BITS_PER_FLOAT_LOG2 5L
78
- #define JS_BITS_PER_DOUBLE_LOG2 6L
79
- #define JS_BITS_PER_WORD_LOG2 6L
80
-
81
- #define JS_ALIGN_OF_SHORT 2L
82
- #define JS_ALIGN_OF_INT 4L
83
- #define JS_ALIGN_OF_LONG 4L
84
- #define JS_ALIGN_OF_INT64 8L
85
- #define JS_ALIGN_OF_FLOAT 4L
86
- #define JS_ALIGN_OF_DOUBLE 8L
87
- #define JS_ALIGN_OF_POINTER 8L
88
- #define JS_ALIGN_OF_WORD 8L
89
-
90
- #define JS_BYTES_PER_WORD_LOG2 3L
91
- #define JS_BYTES_PER_DWORD_LOG2 3L
92
- #define PR_WORDS_PER_DWORD_LOG2 0L
93
- #else /* !(defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_)) */
94
- #error "CPU type is unknown"
95
- #endif /* !(defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_)) */
96
-
97
- #elif defined(_WIN32) || defined(XP_OS2) || defined(WINCE)
98
-
99
- #ifdef __WATCOMC__
100
- #define HAVE_VA_LIST_AS_ARRAY
101
- #endif
102
-
103
- #define IS_LITTLE_ENDIAN 1
104
- #undef IS_BIG_ENDIAN
105
-
106
- #define JS_BYTES_PER_BYTE 1L
107
- #define JS_BYTES_PER_SHORT 2L
108
- #define JS_BYTES_PER_INT 4L
109
- #define JS_BYTES_PER_INT64 8L
110
- #define JS_BYTES_PER_LONG 4L
111
- #define JS_BYTES_PER_FLOAT 4L
112
- #define JS_BYTES_PER_DOUBLE 8L
113
- #define JS_BYTES_PER_WORD 4L
114
- #define JS_BYTES_PER_DWORD 8L
115
-
116
- #define JS_BITS_PER_BYTE 8L
117
- #define JS_BITS_PER_SHORT 16L
118
- #define JS_BITS_PER_INT 32L
119
- #define JS_BITS_PER_INT64 64L
120
- #define JS_BITS_PER_LONG 32L
121
- #define JS_BITS_PER_FLOAT 32L
122
- #define JS_BITS_PER_DOUBLE 64L
123
- #define JS_BITS_PER_WORD 32L
124
-
125
- #define JS_BITS_PER_BYTE_LOG2 3L
126
- #define JS_BITS_PER_SHORT_LOG2 4L
127
- #define JS_BITS_PER_INT_LOG2 5L
128
- #define JS_BITS_PER_INT64_LOG2 6L
129
- #define JS_BITS_PER_LONG_LOG2 5L
130
- #define JS_BITS_PER_FLOAT_LOG2 5L
131
- #define JS_BITS_PER_DOUBLE_LOG2 6L
132
- #define JS_BITS_PER_WORD_LOG2 5L
133
-
134
- #define JS_ALIGN_OF_SHORT 2L
135
- #define JS_ALIGN_OF_INT 4L
136
- #define JS_ALIGN_OF_LONG 4L
137
- #define JS_ALIGN_OF_INT64 8L
138
- #define JS_ALIGN_OF_FLOAT 4L
139
- #define JS_ALIGN_OF_DOUBLE 4L
140
- #define JS_ALIGN_OF_POINTER 4L
141
- #define JS_ALIGN_OF_WORD 4L
142
-
143
- #define JS_BYTES_PER_WORD_LOG2 2L
144
- #define JS_BYTES_PER_DWORD_LOG2 3L
145
- #define PR_WORDS_PER_DWORD_LOG2 1L
146
- #endif /* _WIN32 || XP_OS2 || WINCE*/
147
-
148
- #if defined(_WINDOWS) && !defined(_WIN32) /* WIN16 */
149
-
150
- #define IS_LITTLE_ENDIAN 1
151
- #undef IS_BIG_ENDIAN
152
-
153
- #define JS_BYTES_PER_BYTE 1L
154
- #define JS_BYTES_PER_SHORT 2L
155
- #define JS_BYTES_PER_INT 2L
156
- #define JS_BYTES_PER_INT64 8L
157
- #define JS_BYTES_PER_LONG 4L
158
- #define JS_BYTES_PER_FLOAT 4L
159
- #define JS_BYTES_PER_DOUBLE 8L
160
- #define JS_BYTES_PER_WORD 4L
161
- #define JS_BYTES_PER_DWORD 8L
162
-
163
- #define JS_BITS_PER_BYTE 8L
164
- #define JS_BITS_PER_SHORT 16L
165
- #define JS_BITS_PER_INT 16L
166
- #define JS_BITS_PER_INT64 64L
167
- #define JS_BITS_PER_LONG 32L
168
- #define JS_BITS_PER_FLOAT 32L
169
- #define JS_BITS_PER_DOUBLE 64L
170
- #define JS_BITS_PER_WORD 32L
171
-
172
- #define JS_BITS_PER_BYTE_LOG2 3L
173
- #define JS_BITS_PER_SHORT_LOG2 4L
174
- #define JS_BITS_PER_INT_LOG2 4L
175
- #define JS_BITS_PER_INT64_LOG2 6L
176
- #define JS_BITS_PER_LONG_LOG2 5L
177
- #define JS_BITS_PER_FLOAT_LOG2 5L
178
- #define JS_BITS_PER_DOUBLE_LOG2 6L
179
- #define JS_BITS_PER_WORD_LOG2 5L
180
-
181
- #define JS_ALIGN_OF_SHORT 2L
182
- #define JS_ALIGN_OF_INT 2L
183
- #define JS_ALIGN_OF_LONG 2L
184
- #define JS_ALIGN_OF_INT64 2L
185
- #define JS_ALIGN_OF_FLOAT 2L
186
- #define JS_ALIGN_OF_DOUBLE 2L
187
- #define JS_ALIGN_OF_POINTER 2L
188
- #define JS_ALIGN_OF_WORD 2L
189
-
190
- #define JS_BYTES_PER_WORD_LOG2 2L
191
- #define JS_BYTES_PER_DWORD_LOG2 3L
192
- #define PR_WORDS_PER_DWORD_LOG2 1L
193
-
194
- #endif /* defined(_WINDOWS) && !defined(_WIN32) */
195
-
196
- #elif defined(XP_UNIX) || defined(XP_BEOS)
197
-
198
- #error "This file is supposed to be auto-generated on UNIX platforms, but the"
199
- #error "static version for Mac and Windows platforms is being used."
200
- #error "Something's probably wrong with paths/headers/dependencies/Makefiles."
201
-
202
- #else
203
-
204
- #error "Must define one of XP_BEOS, XP_OS2, XP_WIN, or XP_UNIX"
205
-
206
- #endif
207
-
208
- #ifndef JS_STACK_GROWTH_DIRECTION
209
- #define JS_STACK_GROWTH_DIRECTION (-1)
210
- #endif
211
-
212
- #endif /* js_cpucfg___ */