mustang 0.0.1 → 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 (560) hide show
  1. data/.rspec +1 -0
  2. data/Isolate +9 -0
  3. data/README.md +6 -12
  4. data/Rakefile +30 -4
  5. data/TODO.md +9 -0
  6. data/ext/v8/extconf.rb +56 -0
  7. data/ext/v8/v8.cpp +37 -0
  8. data/ext/v8/v8_array.cpp +161 -0
  9. data/ext/v8/v8_array.h +17 -0
  10. data/ext/v8/v8_base.cpp +147 -0
  11. data/ext/v8/v8_base.h +23 -0
  12. data/ext/v8/v8_cast.cpp +151 -0
  13. data/ext/v8/v8_cast.h +64 -0
  14. data/ext/v8/v8_context.cpp +174 -0
  15. data/ext/v8/v8_context.h +12 -0
  16. data/ext/v8/v8_date.cpp +61 -0
  17. data/ext/v8/v8_date.h +16 -0
  18. data/ext/v8/v8_errors.cpp +147 -0
  19. data/ext/v8/v8_errors.h +19 -0
  20. data/ext/v8/v8_external.cpp +66 -0
  21. data/ext/v8/v8_external.h +16 -0
  22. data/ext/v8/v8_function.cpp +182 -0
  23. data/ext/v8/v8_function.h +14 -0
  24. data/ext/v8/v8_integer.cpp +70 -0
  25. data/ext/v8/v8_integer.h +16 -0
  26. data/ext/v8/v8_macros.h +30 -0
  27. data/ext/v8/v8_main.cpp +53 -0
  28. data/ext/v8/v8_main.h +13 -0
  29. data/ext/v8/v8_number.cpp +62 -0
  30. data/ext/v8/v8_number.h +16 -0
  31. data/ext/v8/v8_object.cpp +172 -0
  32. data/ext/v8/v8_object.h +17 -0
  33. data/ext/v8/v8_ref.cpp +72 -0
  34. data/ext/v8/v8_ref.h +43 -0
  35. data/ext/v8/v8_regexp.cpp +148 -0
  36. data/ext/v8/v8_regexp.h +16 -0
  37. data/ext/v8/v8_string.cpp +78 -0
  38. data/ext/v8/v8_string.h +16 -0
  39. data/ext/v8/v8_value.cpp +370 -0
  40. data/ext/v8/v8_value.h +19 -0
  41. data/gemspec.yml +2 -1
  42. data/lib/core_ext/class.rb +14 -0
  43. data/lib/core_ext/object.rb +12 -0
  44. data/lib/core_ext/symbol.rb +23 -0
  45. data/lib/mustang.rb +44 -0
  46. data/lib/mustang/context.rb +69 -0
  47. data/lib/mustang/errors.rb +36 -0
  48. data/lib/support/delegated.rb +25 -0
  49. data/lib/v8/array.rb +21 -0
  50. data/lib/v8/context.rb +13 -0
  51. data/lib/v8/date.rb +20 -0
  52. data/lib/v8/error.rb +15 -0
  53. data/lib/v8/external.rb +16 -0
  54. data/lib/v8/function.rb +11 -0
  55. data/lib/v8/integer.rb +16 -0
  56. data/lib/v8/number.rb +16 -0
  57. data/lib/v8/object.rb +66 -0
  58. data/lib/v8/regexp.rb +23 -0
  59. data/lib/v8/string.rb +27 -0
  60. data/mustang.gemspec +3 -0
  61. data/spec/core_ext/class_spec.rb +19 -0
  62. data/spec/core_ext/object_spec.rb +19 -0
  63. data/spec/core_ext/symbol_spec.rb +27 -0
  64. data/spec/fixtures/test1.js +2 -0
  65. data/spec/fixtures/test2.js +2 -0
  66. data/spec/spec_helper.rb +20 -0
  67. data/spec/v8/array_spec.rb +88 -0
  68. data/spec/v8/cast_spec.rb +151 -0
  69. data/spec/v8/context_spec.rb +78 -0
  70. data/spec/v8/data_spec.rb +39 -0
  71. data/spec/v8/date_spec.rb +45 -0
  72. data/spec/v8/empty_spec.rb +27 -0
  73. data/spec/v8/errors_spec.rb +142 -0
  74. data/spec/v8/external_spec.rb +44 -0
  75. data/spec/v8/function_spec.rb +170 -0
  76. data/spec/v8/integer_spec.rb +41 -0
  77. data/spec/v8/main_spec.rb +18 -0
  78. data/spec/v8/null_spec.rb +27 -0
  79. data/spec/v8/number_spec.rb +40 -0
  80. data/spec/v8/object_spec.rb +79 -0
  81. data/spec/v8/primitive_spec.rb +9 -0
  82. data/spec/v8/regexp_spec.rb +65 -0
  83. data/spec/v8/string_spec.rb +48 -0
  84. data/spec/v8/undefined_spec.rb +27 -0
  85. data/spec/v8/value_spec.rb +215 -0
  86. data/vendor/v8/.gitignore +2 -0
  87. data/vendor/v8/AUTHORS +3 -1
  88. data/vendor/v8/ChangeLog +117 -0
  89. data/vendor/v8/SConstruct +334 -53
  90. data/vendor/v8/include/v8-debug.h +21 -11
  91. data/vendor/v8/include/v8-preparser.h +1 -1
  92. data/vendor/v8/include/v8-profiler.h +122 -43
  93. data/vendor/v8/include/v8-testing.h +5 -0
  94. data/vendor/v8/include/v8.h +171 -17
  95. data/vendor/v8/preparser/SConscript +38 -0
  96. data/vendor/v8/preparser/preparser-process.cc +77 -114
  97. data/vendor/v8/samples/shell.cc +232 -46
  98. data/vendor/v8/src/SConscript +29 -5
  99. data/vendor/v8/src/accessors.cc +70 -211
  100. data/vendor/v8/{test/cctest/test-mips.cc → src/allocation-inl.h} +15 -18
  101. data/vendor/v8/src/allocation.cc +0 -82
  102. data/vendor/v8/src/allocation.h +9 -42
  103. data/vendor/v8/src/api.cc +1645 -1156
  104. data/vendor/v8/src/api.h +76 -12
  105. data/vendor/v8/src/apiutils.h +0 -7
  106. data/vendor/v8/src/arguments.h +15 -4
  107. data/vendor/v8/src/arm/assembler-arm-inl.h +10 -9
  108. data/vendor/v8/src/arm/assembler-arm.cc +62 -23
  109. data/vendor/v8/src/arm/assembler-arm.h +76 -11
  110. data/vendor/v8/src/arm/builtins-arm.cc +39 -33
  111. data/vendor/v8/src/arm/code-stubs-arm.cc +1182 -402
  112. data/vendor/v8/src/arm/code-stubs-arm.h +20 -54
  113. data/vendor/v8/src/arm/codegen-arm.cc +159 -106
  114. data/vendor/v8/src/arm/codegen-arm.h +6 -6
  115. data/vendor/v8/src/arm/constants-arm.h +16 -1
  116. data/vendor/v8/src/arm/cpu-arm.cc +7 -5
  117. data/vendor/v8/src/arm/debug-arm.cc +6 -4
  118. data/vendor/v8/src/arm/deoptimizer-arm.cc +51 -14
  119. data/vendor/v8/src/arm/disasm-arm.cc +47 -15
  120. data/vendor/v8/src/arm/frames-arm.h +1 -1
  121. data/vendor/v8/src/arm/full-codegen-arm.cc +724 -408
  122. data/vendor/v8/src/arm/ic-arm.cc +90 -85
  123. data/vendor/v8/src/arm/lithium-arm.cc +140 -69
  124. data/vendor/v8/src/arm/lithium-arm.h +161 -46
  125. data/vendor/v8/src/arm/lithium-codegen-arm.cc +567 -297
  126. data/vendor/v8/src/arm/lithium-codegen-arm.h +21 -9
  127. data/vendor/v8/src/arm/lithium-gap-resolver-arm.cc +2 -0
  128. data/vendor/v8/src/arm/macro-assembler-arm.cc +457 -96
  129. data/vendor/v8/src/arm/macro-assembler-arm.h +115 -18
  130. data/vendor/v8/src/arm/regexp-macro-assembler-arm.cc +20 -13
  131. data/vendor/v8/src/arm/regexp-macro-assembler-arm.h +1 -0
  132. data/vendor/v8/src/arm/simulator-arm.cc +184 -101
  133. data/vendor/v8/src/arm/simulator-arm.h +26 -21
  134. data/vendor/v8/src/arm/stub-cache-arm.cc +450 -467
  135. data/vendor/v8/src/arm/virtual-frame-arm.cc +14 -12
  136. data/vendor/v8/src/arm/virtual-frame-arm.h +11 -8
  137. data/vendor/v8/src/array.js +35 -18
  138. data/vendor/v8/src/assembler.cc +186 -92
  139. data/vendor/v8/src/assembler.h +106 -69
  140. data/vendor/v8/src/ast-inl.h +5 -0
  141. data/vendor/v8/src/ast.cc +46 -35
  142. data/vendor/v8/src/ast.h +107 -50
  143. data/vendor/v8/src/atomicops.h +2 -0
  144. data/vendor/v8/src/atomicops_internals_mips_gcc.h +169 -0
  145. data/vendor/v8/src/bootstrapper.cc +649 -399
  146. data/vendor/v8/src/bootstrapper.h +94 -27
  147. data/vendor/v8/src/builtins.cc +359 -227
  148. data/vendor/v8/src/builtins.h +157 -123
  149. data/vendor/v8/src/checks.cc +2 -2
  150. data/vendor/v8/src/checks.h +4 -0
  151. data/vendor/v8/src/code-stubs.cc +27 -17
  152. data/vendor/v8/src/code-stubs.h +38 -17
  153. data/vendor/v8/src/codegen-inl.h +5 -1
  154. data/vendor/v8/src/codegen.cc +27 -17
  155. data/vendor/v8/src/codegen.h +9 -9
  156. data/vendor/v8/src/compilation-cache.cc +92 -206
  157. data/vendor/v8/src/compilation-cache.h +205 -30
  158. data/vendor/v8/src/compiler.cc +107 -120
  159. data/vendor/v8/src/compiler.h +17 -2
  160. data/vendor/v8/src/contexts.cc +22 -15
  161. data/vendor/v8/src/contexts.h +14 -8
  162. data/vendor/v8/src/conversions.cc +86 -30
  163. data/vendor/v8/src/counters.cc +19 -4
  164. data/vendor/v8/src/counters.h +28 -16
  165. data/vendor/v8/src/cpu-profiler-inl.h +4 -3
  166. data/vendor/v8/src/cpu-profiler.cc +123 -72
  167. data/vendor/v8/src/cpu-profiler.h +33 -19
  168. data/vendor/v8/src/cpu.h +2 -0
  169. data/vendor/v8/src/d8-debug.cc +3 -3
  170. data/vendor/v8/src/d8-debug.h +7 -6
  171. data/vendor/v8/src/d8-posix.cc +2 -0
  172. data/vendor/v8/src/d8.cc +22 -12
  173. data/vendor/v8/src/d8.gyp +3 -0
  174. data/vendor/v8/src/d8.js +618 -0
  175. data/vendor/v8/src/data-flow.h +3 -3
  176. data/vendor/v8/src/dateparser.h +4 -2
  177. data/vendor/v8/src/debug-agent.cc +10 -9
  178. data/vendor/v8/src/debug-agent.h +9 -11
  179. data/vendor/v8/src/debug-debugger.js +121 -0
  180. data/vendor/v8/src/debug.cc +331 -227
  181. data/vendor/v8/src/debug.h +248 -219
  182. data/vendor/v8/src/deoptimizer.cc +173 -62
  183. data/vendor/v8/src/deoptimizer.h +119 -19
  184. data/vendor/v8/src/disasm.h +3 -0
  185. data/vendor/v8/src/disassembler.cc +10 -9
  186. data/vendor/v8/src/execution.cc +185 -129
  187. data/vendor/v8/src/execution.h +47 -78
  188. data/vendor/v8/src/extensions/experimental/break-iterator.cc +250 -0
  189. data/vendor/v8/src/extensions/experimental/break-iterator.h +89 -0
  190. data/vendor/v8/src/extensions/experimental/experimental.gyp +2 -0
  191. data/vendor/v8/src/extensions/experimental/i18n-extension.cc +22 -2
  192. data/vendor/v8/src/extensions/externalize-string-extension.cc +2 -2
  193. data/vendor/v8/src/extensions/gc-extension.cc +1 -1
  194. data/vendor/v8/src/factory.cc +261 -154
  195. data/vendor/v8/src/factory.h +162 -158
  196. data/vendor/v8/src/flag-definitions.h +17 -11
  197. data/vendor/v8/src/frame-element.cc +0 -5
  198. data/vendor/v8/src/frame-element.h +9 -13
  199. data/vendor/v8/src/frames-inl.h +7 -0
  200. data/vendor/v8/src/frames.cc +56 -46
  201. data/vendor/v8/src/frames.h +36 -25
  202. data/vendor/v8/src/full-codegen.cc +15 -24
  203. data/vendor/v8/src/full-codegen.h +13 -41
  204. data/vendor/v8/src/func-name-inferrer.cc +7 -6
  205. data/vendor/v8/src/func-name-inferrer.h +1 -1
  206. data/vendor/v8/src/gdb-jit.cc +1 -0
  207. data/vendor/v8/src/global-handles.cc +118 -56
  208. data/vendor/v8/src/global-handles.h +98 -40
  209. data/vendor/v8/src/globals.h +2 -2
  210. data/vendor/v8/src/handles-inl.h +106 -9
  211. data/vendor/v8/src/handles.cc +220 -157
  212. data/vendor/v8/src/handles.h +38 -59
  213. data/vendor/v8/src/hashmap.h +3 -3
  214. data/vendor/v8/src/heap-inl.h +141 -25
  215. data/vendor/v8/src/heap-profiler.cc +117 -63
  216. data/vendor/v8/src/heap-profiler.h +38 -21
  217. data/vendor/v8/src/heap.cc +805 -564
  218. data/vendor/v8/src/heap.h +640 -594
  219. data/vendor/v8/src/hydrogen-instructions.cc +216 -73
  220. data/vendor/v8/src/hydrogen-instructions.h +259 -124
  221. data/vendor/v8/src/hydrogen.cc +996 -1171
  222. data/vendor/v8/src/hydrogen.h +163 -144
  223. data/vendor/v8/src/ia32/assembler-ia32-inl.h +12 -11
  224. data/vendor/v8/src/ia32/assembler-ia32.cc +85 -39
  225. data/vendor/v8/src/ia32/assembler-ia32.h +82 -16
  226. data/vendor/v8/src/ia32/builtins-ia32.cc +64 -58
  227. data/vendor/v8/src/ia32/code-stubs-ia32.cc +248 -324
  228. data/vendor/v8/src/ia32/code-stubs-ia32.h +3 -44
  229. data/vendor/v8/src/ia32/codegen-ia32.cc +217 -165
  230. data/vendor/v8/src/ia32/codegen-ia32.h +3 -0
  231. data/vendor/v8/src/ia32/cpu-ia32.cc +6 -5
  232. data/vendor/v8/src/ia32/debug-ia32.cc +8 -5
  233. data/vendor/v8/src/ia32/deoptimizer-ia32.cc +124 -14
  234. data/vendor/v8/src/ia32/disasm-ia32.cc +85 -62
  235. data/vendor/v8/src/ia32/frames-ia32.h +1 -1
  236. data/vendor/v8/src/ia32/full-codegen-ia32.cc +348 -435
  237. data/vendor/v8/src/ia32/ic-ia32.cc +91 -91
  238. data/vendor/v8/src/ia32/lithium-codegen-ia32.cc +500 -255
  239. data/vendor/v8/src/ia32/lithium-codegen-ia32.h +13 -4
  240. data/vendor/v8/src/ia32/lithium-gap-resolver-ia32.cc +6 -0
  241. data/vendor/v8/src/ia32/lithium-ia32.cc +122 -45
  242. data/vendor/v8/src/ia32/lithium-ia32.h +128 -41
  243. data/vendor/v8/src/ia32/macro-assembler-ia32.cc +109 -84
  244. data/vendor/v8/src/ia32/macro-assembler-ia32.h +18 -9
  245. data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.cc +26 -15
  246. data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.h +1 -0
  247. data/vendor/v8/src/ia32/register-allocator-ia32.cc +30 -30
  248. data/vendor/v8/src/ia32/simulator-ia32.h +4 -4
  249. data/vendor/v8/src/ia32/stub-cache-ia32.cc +383 -400
  250. data/vendor/v8/src/ia32/virtual-frame-ia32.cc +36 -13
  251. data/vendor/v8/src/ia32/virtual-frame-ia32.h +11 -5
  252. data/vendor/v8/src/ic-inl.h +12 -2
  253. data/vendor/v8/src/ic.cc +304 -221
  254. data/vendor/v8/src/ic.h +115 -58
  255. data/vendor/v8/src/interpreter-irregexp.cc +25 -21
  256. data/vendor/v8/src/interpreter-irregexp.h +2 -1
  257. data/vendor/v8/src/isolate.cc +883 -0
  258. data/vendor/v8/src/isolate.h +1304 -0
  259. data/vendor/v8/src/json.js +10 -10
  260. data/vendor/v8/src/jsregexp.cc +111 -80
  261. data/vendor/v8/src/jsregexp.h +6 -7
  262. data/vendor/v8/src/jump-target-heavy.cc +5 -8
  263. data/vendor/v8/src/jump-target-heavy.h +0 -6
  264. data/vendor/v8/src/jump-target-inl.h +1 -1
  265. data/vendor/v8/src/jump-target-light.cc +3 -3
  266. data/vendor/v8/src/lithium-allocator-inl.h +2 -0
  267. data/vendor/v8/src/lithium-allocator.cc +42 -30
  268. data/vendor/v8/src/lithium-allocator.h +8 -22
  269. data/vendor/v8/src/lithium.cc +1 -0
  270. data/vendor/v8/src/liveedit.cc +141 -99
  271. data/vendor/v8/src/liveedit.h +7 -2
  272. data/vendor/v8/src/liveobjectlist-inl.h +90 -0
  273. data/vendor/v8/src/liveobjectlist.cc +2537 -1
  274. data/vendor/v8/src/liveobjectlist.h +245 -35
  275. data/vendor/v8/src/log-utils.cc +122 -35
  276. data/vendor/v8/src/log-utils.h +33 -36
  277. data/vendor/v8/src/log.cc +299 -241
  278. data/vendor/v8/src/log.h +177 -110
  279. data/vendor/v8/src/mark-compact.cc +612 -470
  280. data/vendor/v8/src/mark-compact.h +153 -80
  281. data/vendor/v8/src/messages.cc +16 -14
  282. data/vendor/v8/src/messages.js +30 -7
  283. data/vendor/v8/src/mips/assembler-mips-inl.h +155 -35
  284. data/vendor/v8/src/mips/assembler-mips.cc +1093 -219
  285. data/vendor/v8/src/mips/assembler-mips.h +552 -153
  286. data/vendor/v8/src/mips/builtins-mips.cc +43 -100
  287. data/vendor/v8/src/mips/code-stubs-mips.cc +752 -0
  288. data/vendor/v8/src/mips/code-stubs-mips.h +511 -0
  289. data/vendor/v8/src/mips/codegen-mips-inl.h +8 -14
  290. data/vendor/v8/src/mips/codegen-mips.cc +672 -896
  291. data/vendor/v8/src/mips/codegen-mips.h +271 -69
  292. data/vendor/v8/src/mips/constants-mips.cc +44 -20
  293. data/vendor/v8/src/mips/constants-mips.h +238 -40
  294. data/vendor/v8/src/mips/cpu-mips.cc +20 -3
  295. data/vendor/v8/src/mips/debug-mips.cc +35 -7
  296. data/vendor/v8/src/mips/deoptimizer-mips.cc +91 -0
  297. data/vendor/v8/src/mips/disasm-mips.cc +329 -93
  298. data/vendor/v8/src/mips/frames-mips.cc +2 -50
  299. data/vendor/v8/src/mips/frames-mips.h +24 -9
  300. data/vendor/v8/src/mips/full-codegen-mips.cc +473 -23
  301. data/vendor/v8/src/mips/ic-mips.cc +81 -45
  302. data/vendor/v8/src/mips/jump-target-mips.cc +11 -106
  303. data/vendor/v8/src/mips/lithium-codegen-mips.h +65 -0
  304. data/vendor/v8/src/mips/lithium-mips.h +304 -0
  305. data/vendor/v8/src/mips/macro-assembler-mips.cc +2391 -390
  306. data/vendor/v8/src/mips/macro-assembler-mips.h +718 -121
  307. data/vendor/v8/src/mips/regexp-macro-assembler-mips.cc +478 -0
  308. data/vendor/v8/src/mips/regexp-macro-assembler-mips.h +250 -0
  309. data/vendor/v8/src/mips/register-allocator-mips-inl.h +0 -3
  310. data/vendor/v8/src/mips/register-allocator-mips.h +3 -2
  311. data/vendor/v8/src/mips/simulator-mips.cc +1009 -221
  312. data/vendor/v8/src/mips/simulator-mips.h +119 -36
  313. data/vendor/v8/src/mips/stub-cache-mips.cc +331 -148
  314. data/vendor/v8/src/mips/{fast-codegen-mips.cc → virtual-frame-mips-inl.h} +11 -30
  315. data/vendor/v8/src/mips/virtual-frame-mips.cc +137 -149
  316. data/vendor/v8/src/mips/virtual-frame-mips.h +294 -312
  317. data/vendor/v8/src/mirror-debugger.js +9 -8
  318. data/vendor/v8/src/mksnapshot.cc +2 -2
  319. data/vendor/v8/src/objects-debug.cc +16 -16
  320. data/vendor/v8/src/objects-inl.h +421 -195
  321. data/vendor/v8/src/objects-printer.cc +7 -7
  322. data/vendor/v8/src/objects-visiting.cc +1 -1
  323. data/vendor/v8/src/objects-visiting.h +33 -12
  324. data/vendor/v8/src/objects.cc +935 -658
  325. data/vendor/v8/src/objects.h +234 -139
  326. data/vendor/v8/src/parser.cc +484 -439
  327. data/vendor/v8/src/parser.h +35 -14
  328. data/vendor/v8/src/platform-cygwin.cc +173 -107
  329. data/vendor/v8/src/platform-freebsd.cc +224 -72
  330. data/vendor/v8/src/platform-linux.cc +234 -95
  331. data/vendor/v8/src/platform-macos.cc +215 -82
  332. data/vendor/v8/src/platform-nullos.cc +9 -3
  333. data/vendor/v8/src/platform-openbsd.cc +22 -7
  334. data/vendor/v8/src/platform-posix.cc +30 -5
  335. data/vendor/v8/src/platform-solaris.cc +120 -38
  336. data/vendor/v8/src/platform-tls-mac.h +62 -0
  337. data/vendor/v8/src/platform-tls-win32.h +62 -0
  338. data/vendor/v8/src/platform-tls.h +50 -0
  339. data/vendor/v8/src/platform-win32.cc +195 -97
  340. data/vendor/v8/src/platform.h +72 -15
  341. data/vendor/v8/src/preparse-data.cc +2 -0
  342. data/vendor/v8/src/preparser-api.cc +8 -2
  343. data/vendor/v8/src/preparser.cc +1 -1
  344. data/vendor/v8/src/prettyprinter.cc +43 -52
  345. data/vendor/v8/src/prettyprinter.h +1 -1
  346. data/vendor/v8/src/profile-generator-inl.h +0 -28
  347. data/vendor/v8/src/profile-generator.cc +942 -685
  348. data/vendor/v8/src/profile-generator.h +210 -176
  349. data/vendor/v8/src/property.cc +6 -0
  350. data/vendor/v8/src/property.h +14 -3
  351. data/vendor/v8/src/regexp-macro-assembler-irregexp.cc +1 -1
  352. data/vendor/v8/src/regexp-macro-assembler.cc +28 -19
  353. data/vendor/v8/src/regexp-macro-assembler.h +11 -6
  354. data/vendor/v8/src/regexp-stack.cc +18 -10
  355. data/vendor/v8/src/regexp-stack.h +45 -21
  356. data/vendor/v8/src/regexp.js +3 -3
  357. data/vendor/v8/src/register-allocator-inl.h +3 -3
  358. data/vendor/v8/src/register-allocator.cc +1 -7
  359. data/vendor/v8/src/register-allocator.h +5 -15
  360. data/vendor/v8/src/rewriter.cc +2 -1
  361. data/vendor/v8/src/runtime-profiler.cc +158 -128
  362. data/vendor/v8/src/runtime-profiler.h +131 -15
  363. data/vendor/v8/src/runtime.cc +2409 -1692
  364. data/vendor/v8/src/runtime.h +93 -17
  365. data/vendor/v8/src/safepoint-table.cc +3 -0
  366. data/vendor/v8/src/safepoint-table.h +9 -3
  367. data/vendor/v8/src/scanner-base.cc +21 -28
  368. data/vendor/v8/src/scanner-base.h +22 -11
  369. data/vendor/v8/src/scanner.cc +3 -5
  370. data/vendor/v8/src/scanner.h +4 -2
  371. data/vendor/v8/src/scopeinfo.cc +11 -16
  372. data/vendor/v8/src/scopeinfo.h +26 -15
  373. data/vendor/v8/src/scopes.cc +67 -37
  374. data/vendor/v8/src/scopes.h +26 -12
  375. data/vendor/v8/src/serialize.cc +193 -154
  376. data/vendor/v8/src/serialize.h +41 -36
  377. data/vendor/v8/src/small-pointer-list.h +163 -0
  378. data/vendor/v8/src/snapshot-common.cc +1 -1
  379. data/vendor/v8/src/snapshot.h +3 -1
  380. data/vendor/v8/src/spaces-inl.h +30 -25
  381. data/vendor/v8/src/spaces.cc +263 -370
  382. data/vendor/v8/src/spaces.h +178 -166
  383. data/vendor/v8/src/string-search.cc +4 -3
  384. data/vendor/v8/src/string-search.h +21 -20
  385. data/vendor/v8/src/string-stream.cc +32 -24
  386. data/vendor/v8/src/string.js +7 -7
  387. data/vendor/v8/src/stub-cache.cc +324 -248
  388. data/vendor/v8/src/stub-cache.h +181 -155
  389. data/vendor/v8/src/token.cc +3 -3
  390. data/vendor/v8/src/token.h +3 -3
  391. data/vendor/v8/src/top.cc +218 -390
  392. data/vendor/v8/src/type-info.cc +98 -32
  393. data/vendor/v8/src/type-info.h +10 -3
  394. data/vendor/v8/src/unicode.cc +1 -1
  395. data/vendor/v8/src/unicode.h +1 -1
  396. data/vendor/v8/src/utils.h +3 -0
  397. data/vendor/v8/src/v8-counters.cc +18 -11
  398. data/vendor/v8/src/v8-counters.h +34 -13
  399. data/vendor/v8/src/v8.cc +66 -121
  400. data/vendor/v8/src/v8.h +7 -4
  401. data/vendor/v8/src/v8globals.h +18 -12
  402. data/vendor/v8/src/{memory.h → v8memory.h} +0 -0
  403. data/vendor/v8/src/v8natives.js +59 -18
  404. data/vendor/v8/src/v8threads.cc +127 -114
  405. data/vendor/v8/src/v8threads.h +42 -35
  406. data/vendor/v8/src/v8utils.h +2 -39
  407. data/vendor/v8/src/variables.h +1 -1
  408. data/vendor/v8/src/version.cc +26 -5
  409. data/vendor/v8/src/version.h +4 -0
  410. data/vendor/v8/src/virtual-frame-heavy-inl.h +2 -4
  411. data/vendor/v8/src/virtual-frame-light-inl.h +5 -4
  412. data/vendor/v8/src/vm-state-inl.h +21 -17
  413. data/vendor/v8/src/vm-state.h +7 -5
  414. data/vendor/v8/src/win32-headers.h +1 -0
  415. data/vendor/v8/src/x64/assembler-x64-inl.h +12 -11
  416. data/vendor/v8/src/x64/assembler-x64.cc +80 -40
  417. data/vendor/v8/src/x64/assembler-x64.h +67 -17
  418. data/vendor/v8/src/x64/builtins-x64.cc +34 -33
  419. data/vendor/v8/src/x64/code-stubs-x64.cc +636 -377
  420. data/vendor/v8/src/x64/code-stubs-x64.h +14 -48
  421. data/vendor/v8/src/x64/codegen-x64-inl.h +1 -1
  422. data/vendor/v8/src/x64/codegen-x64.cc +158 -136
  423. data/vendor/v8/src/x64/codegen-x64.h +4 -1
  424. data/vendor/v8/src/x64/cpu-x64.cc +7 -5
  425. data/vendor/v8/src/x64/debug-x64.cc +8 -6
  426. data/vendor/v8/src/x64/deoptimizer-x64.cc +195 -20
  427. data/vendor/v8/src/x64/disasm-x64.cc +42 -23
  428. data/vendor/v8/src/x64/frames-x64.cc +1 -1
  429. data/vendor/v8/src/x64/frames-x64.h +2 -2
  430. data/vendor/v8/src/x64/full-codegen-x64.cc +780 -218
  431. data/vendor/v8/src/x64/ic-x64.cc +77 -79
  432. data/vendor/v8/src/x64/jump-target-x64.cc +1 -1
  433. data/vendor/v8/src/x64/lithium-codegen-x64.cc +698 -181
  434. data/vendor/v8/src/x64/lithium-codegen-x64.h +31 -6
  435. data/vendor/v8/src/x64/lithium-x64.cc +136 -54
  436. data/vendor/v8/src/x64/lithium-x64.h +142 -51
  437. data/vendor/v8/src/x64/macro-assembler-x64.cc +456 -187
  438. data/vendor/v8/src/x64/macro-assembler-x64.h +166 -34
  439. data/vendor/v8/src/x64/regexp-macro-assembler-x64.cc +44 -28
  440. data/vendor/v8/src/x64/regexp-macro-assembler-x64.h +8 -4
  441. data/vendor/v8/src/x64/register-allocator-x64-inl.h +3 -3
  442. data/vendor/v8/src/x64/register-allocator-x64.cc +12 -8
  443. data/vendor/v8/src/x64/simulator-x64.h +5 -5
  444. data/vendor/v8/src/x64/stub-cache-x64.cc +299 -344
  445. data/vendor/v8/src/x64/virtual-frame-x64.cc +37 -13
  446. data/vendor/v8/src/x64/virtual-frame-x64.h +13 -7
  447. data/vendor/v8/src/zone-inl.h +49 -3
  448. data/vendor/v8/src/zone.cc +42 -41
  449. data/vendor/v8/src/zone.h +37 -34
  450. data/vendor/v8/test/benchmarks/testcfg.py +100 -0
  451. data/vendor/v8/test/cctest/SConscript +5 -4
  452. data/vendor/v8/test/cctest/cctest.h +3 -2
  453. data/vendor/v8/test/cctest/cctest.status +6 -11
  454. data/vendor/v8/test/cctest/test-accessors.cc +3 -3
  455. data/vendor/v8/test/cctest/test-alloc.cc +39 -33
  456. data/vendor/v8/test/cctest/test-api.cc +1092 -205
  457. data/vendor/v8/test/cctest/test-assembler-arm.cc +39 -25
  458. data/vendor/v8/test/cctest/test-assembler-ia32.cc +36 -37
  459. data/vendor/v8/test/cctest/test-assembler-mips.cc +1098 -40
  460. data/vendor/v8/test/cctest/test-assembler-x64.cc +32 -25
  461. data/vendor/v8/test/cctest/test-ast.cc +1 -0
  462. data/vendor/v8/test/cctest/test-circular-queue.cc +8 -5
  463. data/vendor/v8/test/cctest/test-compiler.cc +24 -24
  464. data/vendor/v8/test/cctest/test-cpu-profiler.cc +140 -5
  465. data/vendor/v8/test/cctest/test-dataflow.cc +1 -0
  466. data/vendor/v8/test/cctest/test-debug.cc +136 -77
  467. data/vendor/v8/test/cctest/test-decls.cc +1 -1
  468. data/vendor/v8/test/cctest/test-deoptimization.cc +25 -24
  469. data/vendor/v8/test/cctest/test-disasm-arm.cc +9 -4
  470. data/vendor/v8/test/cctest/test-disasm-ia32.cc +10 -8
  471. data/vendor/v8/test/cctest/test-func-name-inference.cc +10 -4
  472. data/vendor/v8/test/cctest/test-heap-profiler.cc +226 -164
  473. data/vendor/v8/test/cctest/test-heap.cc +240 -217
  474. data/vendor/v8/test/cctest/test-liveedit.cc +1 -0
  475. data/vendor/v8/test/cctest/test-log-stack-tracer.cc +18 -20
  476. data/vendor/v8/test/cctest/test-log.cc +114 -108
  477. data/vendor/v8/test/cctest/test-macro-assembler-x64.cc +247 -177
  478. data/vendor/v8/test/cctest/test-mark-compact.cc +129 -90
  479. data/vendor/v8/test/cctest/test-parsing.cc +15 -14
  480. data/vendor/v8/test/cctest/test-platform-linux.cc +1 -0
  481. data/vendor/v8/test/cctest/test-platform-tls.cc +66 -0
  482. data/vendor/v8/test/cctest/test-platform-win32.cc +1 -0
  483. data/vendor/v8/test/cctest/test-profile-generator.cc +1 -1
  484. data/vendor/v8/test/cctest/test-regexp.cc +53 -41
  485. data/vendor/v8/test/cctest/test-reloc-info.cc +18 -11
  486. data/vendor/v8/test/cctest/test-serialize.cc +44 -43
  487. data/vendor/v8/test/cctest/test-sockets.cc +8 -3
  488. data/vendor/v8/test/cctest/test-spaces.cc +47 -29
  489. data/vendor/v8/test/cctest/test-strings.cc +20 -20
  490. data/vendor/v8/test/cctest/test-thread-termination.cc +8 -3
  491. data/vendor/v8/test/cctest/test-threads.cc +5 -3
  492. data/vendor/v8/test/cctest/test-utils.cc +5 -4
  493. data/vendor/v8/test/cctest/testcfg.py +7 -3
  494. data/vendor/v8/test/es5conform/es5conform.status +2 -77
  495. data/vendor/v8/test/es5conform/testcfg.py +1 -1
  496. data/vendor/v8/test/message/testcfg.py +1 -1
  497. data/vendor/v8/test/mjsunit/accessors-on-global-object.js +3 -3
  498. data/vendor/v8/test/mjsunit/array-concat.js +43 -1
  499. data/vendor/v8/test/mjsunit/array-join.js +25 -0
  500. data/vendor/v8/test/mjsunit/bitops-info.js +7 -1
  501. data/vendor/v8/test/mjsunit/compiler/array-length.js +2 -2
  502. data/vendor/v8/test/mjsunit/compiler/global-accessors.js +47 -0
  503. data/vendor/v8/test/mjsunit/compiler/pic.js +1 -1
  504. data/vendor/v8/test/mjsunit/compiler/regress-loadfield.js +65 -0
  505. data/vendor/v8/test/mjsunit/math-sqrt.js +5 -1
  506. data/vendor/v8/test/mjsunit/mjsunit.js +59 -8
  507. data/vendor/v8/test/mjsunit/mjsunit.status +0 -12
  508. data/vendor/v8/test/mjsunit/mul-exhaustive.js +129 -11
  509. data/vendor/v8/test/mjsunit/negate-zero.js +1 -1
  510. data/vendor/v8/test/mjsunit/object-freeze.js +5 -13
  511. data/vendor/v8/test/mjsunit/object-prevent-extensions.js +9 -50
  512. data/vendor/v8/test/mjsunit/object-seal.js +4 -13
  513. data/vendor/v8/test/mjsunit/override-eval-with-non-function.js +36 -0
  514. data/vendor/v8/test/mjsunit/regress/regress-1145.js +54 -0
  515. data/vendor/v8/test/mjsunit/regress/regress-1172-bis.js +37 -0
  516. data/vendor/v8/test/mjsunit/regress/regress-1181.js +54 -0
  517. data/vendor/v8/test/mjsunit/regress/regress-1207.js +35 -0
  518. data/vendor/v8/test/mjsunit/regress/regress-1209.js +34 -0
  519. data/vendor/v8/test/mjsunit/regress/regress-1210.js +48 -0
  520. data/vendor/v8/test/mjsunit/regress/regress-1213.js +43 -0
  521. data/vendor/v8/test/mjsunit/regress/regress-1218.js +29 -0
  522. data/vendor/v8/test/mjsunit/regress/regress-1229.js +79 -0
  523. data/vendor/v8/test/mjsunit/regress/regress-1233.js +47 -0
  524. data/vendor/v8/test/mjsunit/regress/regress-1236.js +34 -0
  525. data/vendor/v8/test/mjsunit/regress/regress-1237.js +36 -0
  526. data/vendor/v8/test/mjsunit/regress/regress-1240.js +39 -0
  527. data/vendor/v8/test/mjsunit/regress/regress-1257.js +58 -0
  528. data/vendor/v8/test/mjsunit/regress/regress-1278.js +69 -0
  529. data/vendor/v8/test/mjsunit/regress/regress-create-exception.js +1 -0
  530. data/vendor/v8/test/mjsunit/regress/regress-lazy-deopt-reloc.js +52 -0
  531. data/vendor/v8/test/mjsunit/sin-cos.js +15 -10
  532. data/vendor/v8/test/mjsunit/smi-negative-zero.js +2 -2
  533. data/vendor/v8/test/mjsunit/str-to-num.js +1 -1
  534. data/vendor/v8/test/mjsunit/strict-mode.js +435 -0
  535. data/vendor/v8/test/mjsunit/testcfg.py +23 -6
  536. data/vendor/v8/test/mozilla/mozilla.status +0 -2
  537. data/vendor/v8/test/mozilla/testcfg.py +1 -1
  538. data/vendor/v8/test/preparser/empty.js +28 -0
  539. data/vendor/v8/test/preparser/functions-only.js +38 -0
  540. data/vendor/v8/test/preparser/non-alphanum.js +34 -0
  541. data/vendor/v8/test/preparser/symbols-only.js +49 -0
  542. data/vendor/v8/test/preparser/testcfg.py +90 -0
  543. data/vendor/v8/test/sputnik/testcfg.py +1 -1
  544. data/vendor/v8/test/test262/README +16 -0
  545. data/vendor/v8/test/test262/harness-adapt.js +80 -0
  546. data/vendor/v8/test/test262/test262.status +1506 -0
  547. data/vendor/v8/test/test262/testcfg.py +123 -0
  548. data/vendor/v8/tools/freebsd-tick-processor +10 -0
  549. data/vendor/v8/tools/gyp/v8.gyp +8 -33
  550. data/vendor/v8/tools/linux-tick-processor +5 -3
  551. data/vendor/v8/tools/test.py +37 -14
  552. data/vendor/v8/tools/tickprocessor.js +22 -8
  553. data/vendor/v8/tools/visual_studio/v8_base.vcproj +13 -1
  554. data/vendor/v8/tools/visual_studio/v8_base_arm.vcproj +5 -1
  555. data/vendor/v8/tools/visual_studio/v8_base_x64.vcproj +5 -1
  556. data/vendor/v8/tools/visual_studio/x64.vsprops +1 -0
  557. metadata +1495 -1341
  558. data/ext/extconf.rb +0 -22
  559. data/ext/mustang.cpp +0 -58
  560. data/vendor/v8/src/top.h +0 -608
@@ -33,6 +33,8 @@
33
33
 
34
34
  #include "codegen-inl.h"
35
35
  #include "debug.h"
36
+ #include "deoptimizer.h"
37
+ #include "full-codegen.h"
36
38
  #include "runtime.h"
37
39
 
38
40
  namespace v8 {
@@ -59,126 +61,68 @@ void Builtins::Generate_ArrayConstructCode(MacroAssembler* masm) {
59
61
  }
60
62
 
61
63
 
64
+ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) {
65
+ UNIMPLEMENTED_MIPS();
66
+ }
67
+
68
+
62
69
  void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
63
70
  UNIMPLEMENTED_MIPS();
64
71
  }
65
72
 
66
73
 
67
- void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
74
+ void Builtins::Generate_JSConstructStubCountdown(MacroAssembler* masm) {
68
75
  UNIMPLEMENTED_MIPS();
69
76
  }
70
77
 
71
78
 
72
- void Builtins::Generate_JSConstructStubApi(MacroAssembler* masm) {
79
+ void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
73
80
  UNIMPLEMENTED_MIPS();
74
81
  }
75
82
 
76
83
 
77
- static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
78
- bool is_construct) {
79
- // Called from JSEntryStub::GenerateBody
80
-
81
- // Registers:
82
- // a0: entry_address
83
- // a1: function
84
- // a2: reveiver_pointer
85
- // a3: argc
86
- // s0: argv
87
- //
88
- // Stack:
89
- // arguments slots
90
- // handler frame
91
- // entry frame
92
- // callee saved registers + ra
93
- // 4 args slots
94
- // args
95
-
96
- // Clear the context before we push it when entering the JS frame.
97
- __ li(cp, Operand(0, RelocInfo::NONE));
98
-
99
- // Enter an internal frame.
100
- __ EnterInternalFrame();
101
-
102
- // Set up the context from the function argument.
103
- __ lw(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
104
-
105
- // Set up the roots register.
106
- ExternalReference roots_address = ExternalReference::roots_address();
107
- __ li(s6, Operand(roots_address));
108
-
109
- // Push the function and the receiver onto the stack.
110
- __ MultiPushReversed(a1.bit() | a2.bit());
111
-
112
- // Copy arguments to the stack in a loop.
113
- // a3: argc
114
- // s0: argv, ie points to first arg
115
- Label loop, entry;
116
- __ sll(t0, a3, kPointerSizeLog2);
117
- __ add(t2, s0, t0);
118
- __ b(&entry);
119
- __ nop(); // Branch delay slot nop.
120
- // t2 points past last arg.
121
- __ bind(&loop);
122
- __ lw(t0, MemOperand(s0)); // Read next parameter.
123
- __ addiu(s0, s0, kPointerSize);
124
- __ lw(t0, MemOperand(t0)); // Dereference handle.
125
- __ Push(t0); // Push parameter.
126
- __ bind(&entry);
127
- __ Branch(ne, &loop, s0, Operand(t2));
128
-
129
- // Registers:
130
- // a0: entry_address
131
- // a1: function
132
- // a2: reveiver_pointer
133
- // a3: argc
134
- // s0: argv
135
- // s6: roots_address
136
- //
137
- // Stack:
138
- // arguments
139
- // receiver
140
- // function
141
- // arguments slots
142
- // handler frame
143
- // entry frame
144
- // callee saved registers + ra
145
- // 4 args slots
146
- // args
147
-
148
- // Initialize all JavaScript callee-saved registers, since they will be seen
149
- // by the garbage collector as part of handlers.
150
- __ LoadRoot(t4, Heap::kUndefinedValueRootIndex);
151
- __ mov(s1, t4);
152
- __ mov(s2, t4);
153
- __ mov(s3, t4);
154
- __ mov(s4, s4);
155
- __ mov(s5, t4);
156
- // s6 holds the root address. Do not clobber.
157
- // s7 is cp. Do not init.
158
-
159
- // Invoke the code and pass argc as a0.
160
- __ mov(a0, a3);
161
- if (is_construct) {
162
- UNIMPLEMENTED_MIPS();
163
- __ break_(0x164);
164
- } else {
165
- ParameterCount actual(a0);
166
- __ InvokeFunction(a1, actual, CALL_FUNCTION);
167
- }
168
-
169
- __ LeaveInternalFrame();
170
-
171
- __ Jump(ra);
84
+ void Builtins::Generate_JSConstructStubApi(MacroAssembler* masm) {
85
+ UNIMPLEMENTED_MIPS();
172
86
  }
173
87
 
174
88
 
175
89
  void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
176
- Generate_JSEntryTrampolineHelper(masm, false);
90
+ UNIMPLEMENTED_MIPS();
177
91
  }
178
92
 
179
93
 
180
94
  void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
181
- Generate_JSEntryTrampolineHelper(masm, true);
95
+ UNIMPLEMENTED_MIPS();
96
+ }
97
+
98
+
99
+ void Builtins::Generate_LazyCompile(MacroAssembler* masm) {
100
+ UNIMPLEMENTED_MIPS();
101
+ }
102
+
103
+
104
+ void Builtins::Generate_LazyRecompile(MacroAssembler* masm) {
105
+ UNIMPLEMENTED_MIPS();
106
+ }
107
+
108
+
109
+ void Builtins::Generate_NotifyDeoptimized(MacroAssembler* masm) {
110
+ UNIMPLEMENTED_MIPS();
111
+ }
112
+
113
+
114
+ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) {
115
+ UNIMPLEMENTED_MIPS();
116
+ }
117
+
118
+
119
+ void Builtins::Generate_NotifyOSR(MacroAssembler* masm) {
120
+ UNIMPLEMENTED_MIPS();
121
+ }
122
+
123
+
124
+ void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
125
+ UNIMPLEMENTED_MIPS();
182
126
  }
183
127
 
184
128
 
@@ -194,7 +138,6 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) {
194
138
 
195
139
  void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
196
140
  UNIMPLEMENTED_MIPS();
197
- __ break_(0x201);
198
141
  }
199
142
 
200
143
 
@@ -0,0 +1,752 @@
1
+ // Copyright 2011 the V8 project authors. All rights reserved.
2
+ // Redistribution and use in source and binary forms, with or without
3
+ // modification, are permitted provided that the following conditions are
4
+ // met:
5
+ //
6
+ // * Redistributions of source code must retain the above copyright
7
+ // notice, this list of conditions and the following disclaimer.
8
+ // * Redistributions in binary form must reproduce the above
9
+ // copyright notice, this list of conditions and the following
10
+ // disclaimer in the documentation and/or other materials provided
11
+ // with the distribution.
12
+ // * Neither the name of Google Inc. nor the names of its
13
+ // contributors may be used to endorse or promote products derived
14
+ // from this software without specific prior written permission.
15
+ //
16
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+
28
+ #include "v8.h"
29
+
30
+ #if defined(V8_TARGET_ARCH_MIPS)
31
+
32
+ #include "bootstrapper.h"
33
+ #include "code-stubs.h"
34
+ #include "codegen-inl.h"
35
+ #include "regexp-macro-assembler.h"
36
+
37
+ namespace v8 {
38
+ namespace internal {
39
+
40
+
41
+ #define __ ACCESS_MASM(masm)
42
+
43
+
44
+ void ToNumberStub::Generate(MacroAssembler* masm) {
45
+ UNIMPLEMENTED_MIPS();
46
+ }
47
+
48
+
49
+ void FastNewClosureStub::Generate(MacroAssembler* masm) {
50
+ UNIMPLEMENTED_MIPS();
51
+ }
52
+
53
+
54
+ void FastNewContextStub::Generate(MacroAssembler* masm) {
55
+ UNIMPLEMENTED_MIPS();
56
+ }
57
+
58
+
59
+ void FastCloneShallowArrayStub::Generate(MacroAssembler* masm) {
60
+ UNIMPLEMENTED_MIPS();
61
+ }
62
+
63
+
64
+ // Takes a Smi and converts to an IEEE 64 bit floating point value in two
65
+ // registers. The format is 1 sign bit, 11 exponent bits (biased 1023) and
66
+ // 52 fraction bits (20 in the first word, 32 in the second). Zeros is a
67
+ // scratch register. Destroys the source register. No GC occurs during this
68
+ // stub so you don't have to set up the frame.
69
+ class ConvertToDoubleStub : public CodeStub {
70
+ public:
71
+ ConvertToDoubleStub(Register result_reg_1,
72
+ Register result_reg_2,
73
+ Register source_reg,
74
+ Register scratch_reg)
75
+ : result1_(result_reg_1),
76
+ result2_(result_reg_2),
77
+ source_(source_reg),
78
+ zeros_(scratch_reg) { }
79
+
80
+ private:
81
+ Register result1_;
82
+ Register result2_;
83
+ Register source_;
84
+ Register zeros_;
85
+
86
+ // Minor key encoding in 16 bits.
87
+ class ModeBits: public BitField<OverwriteMode, 0, 2> {};
88
+ class OpBits: public BitField<Token::Value, 2, 14> {};
89
+
90
+ Major MajorKey() { return ConvertToDouble; }
91
+ int MinorKey() {
92
+ // Encode the parameters in a unique 16 bit value.
93
+ return result1_.code() +
94
+ (result2_.code() << 4) +
95
+ (source_.code() << 8) +
96
+ (zeros_.code() << 12);
97
+ }
98
+
99
+ void Generate(MacroAssembler* masm);
100
+
101
+ const char* GetName() { return "ConvertToDoubleStub"; }
102
+
103
+ #ifdef DEBUG
104
+ void Print() { PrintF("ConvertToDoubleStub\n"); }
105
+ #endif
106
+ };
107
+
108
+
109
+ void ConvertToDoubleStub::Generate(MacroAssembler* masm) {
110
+ UNIMPLEMENTED_MIPS();
111
+ }
112
+
113
+
114
+ class FloatingPointHelper : public AllStatic {
115
+ public:
116
+
117
+ enum Destination {
118
+ kFPURegisters,
119
+ kCoreRegisters
120
+ };
121
+
122
+
123
+ // Loads smis from a0 and a1 (right and left in binary operations) into
124
+ // floating point registers. Depending on the destination the values ends up
125
+ // either f14 and f12 or in a2/a3 and a0/a1 respectively. If the destination
126
+ // is floating point registers FPU must be supported. If core registers are
127
+ // requested when FPU is supported f12 and f14 will be scratched.
128
+ static void LoadSmis(MacroAssembler* masm,
129
+ Destination destination,
130
+ Register scratch1,
131
+ Register scratch2);
132
+
133
+ // Loads objects from a0 and a1 (right and left in binary operations) into
134
+ // floating point registers. Depending on the destination the values ends up
135
+ // either f14 and f12 or in a2/a3 and a0/a1 respectively. If the destination
136
+ // is floating point registers FPU must be supported. If core registers are
137
+ // requested when FPU is supported f12 and f14 will still be scratched. If
138
+ // either a0 or a1 is not a number (not smi and not heap number object) the
139
+ // not_number label is jumped to with a0 and a1 intact.
140
+ static void LoadOperands(MacroAssembler* masm,
141
+ FloatingPointHelper::Destination destination,
142
+ Register heap_number_map,
143
+ Register scratch1,
144
+ Register scratch2,
145
+ Label* not_number);
146
+ // Loads the number from object into dst as a 32-bit integer if possible. If
147
+ // the object is not a 32-bit integer control continues at the label
148
+ // not_int32. If FPU is supported double_scratch is used but not scratch2.
149
+ static void LoadNumberAsInteger(MacroAssembler* masm,
150
+ Register object,
151
+ Register dst,
152
+ Register heap_number_map,
153
+ Register scratch1,
154
+ Register scratch2,
155
+ FPURegister double_scratch,
156
+ Label* not_int32);
157
+ private:
158
+ static void LoadNumber(MacroAssembler* masm,
159
+ FloatingPointHelper::Destination destination,
160
+ Register object,
161
+ FPURegister dst,
162
+ Register dst1,
163
+ Register dst2,
164
+ Register heap_number_map,
165
+ Register scratch1,
166
+ Register scratch2,
167
+ Label* not_number);
168
+ };
169
+
170
+
171
+ void FloatingPointHelper::LoadSmis(MacroAssembler* masm,
172
+ FloatingPointHelper::Destination destination,
173
+ Register scratch1,
174
+ Register scratch2) {
175
+ UNIMPLEMENTED_MIPS();
176
+ }
177
+
178
+
179
+ void FloatingPointHelper::LoadOperands(
180
+ MacroAssembler* masm,
181
+ FloatingPointHelper::Destination destination,
182
+ Register heap_number_map,
183
+ Register scratch1,
184
+ Register scratch2,
185
+ Label* slow) {
186
+ UNIMPLEMENTED_MIPS();
187
+ }
188
+
189
+
190
+ void FloatingPointHelper::LoadNumber(MacroAssembler* masm,
191
+ Destination destination,
192
+ Register object,
193
+ FPURegister dst,
194
+ Register dst1,
195
+ Register dst2,
196
+ Register heap_number_map,
197
+ Register scratch1,
198
+ Register scratch2,
199
+ Label* not_number) {
200
+ UNIMPLEMENTED_MIPS();
201
+ }
202
+
203
+
204
+ void FloatingPointHelper::LoadNumberAsInteger(MacroAssembler* masm,
205
+ Register object,
206
+ Register dst,
207
+ Register heap_number_map,
208
+ Register scratch1,
209
+ Register scratch2,
210
+ FPURegister double_scratch,
211
+ Label* not_int32) {
212
+ UNIMPLEMENTED_MIPS();
213
+ }
214
+
215
+
216
+ // See comment for class, this does NOT work for int32's that are in Smi range.
217
+ void WriteInt32ToHeapNumberStub::Generate(MacroAssembler* masm) {
218
+ UNIMPLEMENTED_MIPS();
219
+ }
220
+
221
+
222
+ void EmitNanCheck(MacroAssembler* masm, Condition cc) {
223
+ UNIMPLEMENTED_MIPS();
224
+ }
225
+
226
+
227
+ void NumberToStringStub::GenerateLookupNumberStringCache(MacroAssembler* masm,
228
+ Register object,
229
+ Register result,
230
+ Register scratch1,
231
+ Register scratch2,
232
+ Register scratch3,
233
+ bool object_is_smi,
234
+ Label* not_found) {
235
+ UNIMPLEMENTED_MIPS();
236
+ }
237
+
238
+
239
+ void NumberToStringStub::Generate(MacroAssembler* masm) {
240
+ UNIMPLEMENTED_MIPS();
241
+ }
242
+
243
+
244
+ // On entry lhs_ (lhs) and rhs_ (rhs) are the things to be compared.
245
+ // On exit, v0 is 0, positive, or negative (smi) to indicate the result
246
+ // of the comparison.
247
+ void CompareStub::Generate(MacroAssembler* masm) {
248
+ UNIMPLEMENTED_MIPS();
249
+ }
250
+
251
+
252
+ // This stub does not handle the inlined cases (Smis, Booleans, undefined).
253
+ // The stub returns zero for false, and a non-zero value for true.
254
+ void ToBooleanStub::Generate(MacroAssembler* masm) {
255
+ UNIMPLEMENTED_MIPS();
256
+ }
257
+
258
+
259
+ // We fall into this code if the operands were Smis, but the result was
260
+ // not (eg. overflow). We branch into this code (to the not_smi label) if
261
+ // the operands were not both Smi. The operands are in lhs and rhs.
262
+ // To call the C-implemented binary fp operation routines we need to end up
263
+ // with the double precision floating point operands in a0 and a1 (for the
264
+ // value in a1) and a2 and a3 (for the value in a0).
265
+ void GenericBinaryOpStub::HandleBinaryOpSlowCases(MacroAssembler* masm,
266
+ Label* not_smi,
267
+ Register lhs,
268
+ Register rhs,
269
+ const Builtins::JavaScript& builtin) {
270
+ UNIMPLEMENTED_MIPS();
271
+ }
272
+
273
+
274
+ // For bitwise ops where the inputs are not both Smis we here try to determine
275
+ // whether both inputs are either Smis or at least heap numbers that can be
276
+ // represented by a 32 bit signed value. We truncate towards zero as required
277
+ // by the ES spec. If this is the case we do the bitwise op and see if the
278
+ // result is a Smi. If so, great, otherwise we try to find a heap number to
279
+ // write the answer into (either by allocating or by overwriting).
280
+ // On entry the operands are in lhs (x) and rhs (y). (Result = x op y).
281
+ // On exit the result is in v0.
282
+ void GenericBinaryOpStub::HandleNonSmiBitwiseOp(MacroAssembler* masm,
283
+ Register lhs,
284
+ Register rhs) {
285
+ UNIMPLEMENTED_MIPS();
286
+ }
287
+
288
+
289
+ void GenericBinaryOpStub::Generate(MacroAssembler* masm) {
290
+ UNIMPLEMENTED_MIPS();
291
+ }
292
+
293
+
294
+ void GenericBinaryOpStub::GenerateTypeTransition(MacroAssembler* masm) {
295
+ UNIMPLEMENTED_MIPS();
296
+ }
297
+
298
+
299
+ Handle<Code> GetBinaryOpStub(int key, BinaryOpIC::TypeInfo type_info) {
300
+ GenericBinaryOpStub stub(key, type_info);
301
+ return stub.GetCode();
302
+ }
303
+
304
+
305
+ Handle<Code> GetTypeRecordingBinaryOpStub(int key,
306
+ TRBinaryOpIC::TypeInfo type_info,
307
+ TRBinaryOpIC::TypeInfo result_type_info) {
308
+ TypeRecordingBinaryOpStub stub(key, type_info, result_type_info);
309
+ return stub.GetCode();
310
+ }
311
+
312
+
313
+ void TypeRecordingBinaryOpStub::GenerateTypeTransition(MacroAssembler* masm) {
314
+ UNIMPLEMENTED_MIPS();
315
+ }
316
+
317
+
318
+ void TypeRecordingBinaryOpStub::GenerateTypeTransitionWithSavedArgs(
319
+ MacroAssembler* masm) {
320
+ UNIMPLEMENTED();
321
+ }
322
+
323
+
324
+ void TypeRecordingBinaryOpStub::Generate(MacroAssembler* masm) {
325
+ UNIMPLEMENTED_MIPS();
326
+ }
327
+
328
+
329
+ const char* TypeRecordingBinaryOpStub::GetName() {
330
+ UNIMPLEMENTED_MIPS();
331
+ return name_;
332
+ }
333
+
334
+
335
+
336
+ void TypeRecordingBinaryOpStub::GenerateSmiSmiOperation(
337
+ MacroAssembler* masm) {
338
+ UNIMPLEMENTED_MIPS();
339
+ }
340
+
341
+
342
+ void TypeRecordingBinaryOpStub::GenerateFPOperation(MacroAssembler* masm,
343
+ bool smi_operands,
344
+ Label* not_numbers,
345
+ Label* gc_required) {
346
+ UNIMPLEMENTED_MIPS();
347
+ }
348
+
349
+
350
+ // Generate the smi code. If the operation on smis are successful this return is
351
+ // generated. If the result is not a smi and heap number allocation is not
352
+ // requested the code falls through. If number allocation is requested but a
353
+ // heap number cannot be allocated the code jumps to the lable gc_required.
354
+ void TypeRecordingBinaryOpStub::GenerateSmiCode(MacroAssembler* masm,
355
+ Label* gc_required,
356
+ SmiCodeGenerateHeapNumberResults allow_heapnumber_results) {
357
+ UNIMPLEMENTED_MIPS();
358
+ }
359
+
360
+
361
+ void TypeRecordingBinaryOpStub::GenerateSmiStub(MacroAssembler* masm) {
362
+ UNIMPLEMENTED_MIPS();
363
+ }
364
+
365
+
366
+ void TypeRecordingBinaryOpStub::GenerateStringStub(MacroAssembler* masm) {
367
+ UNIMPLEMENTED_MIPS();
368
+ }
369
+
370
+
371
+ void TypeRecordingBinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) {
372
+ UNIMPLEMENTED_MIPS();
373
+ }
374
+
375
+
376
+ void TypeRecordingBinaryOpStub::GenerateHeapNumberStub(MacroAssembler* masm) {
377
+ UNIMPLEMENTED_MIPS();
378
+ }
379
+
380
+
381
+ void TypeRecordingBinaryOpStub::GenerateGeneric(MacroAssembler* masm) {
382
+ UNIMPLEMENTED_MIPS();
383
+ }
384
+
385
+
386
+ void TypeRecordingBinaryOpStub::GenerateAddStrings(MacroAssembler* masm) {
387
+ UNIMPLEMENTED_MIPS();
388
+ }
389
+
390
+
391
+ void TypeRecordingBinaryOpStub::GenerateCallRuntime(MacroAssembler* masm) {
392
+ UNIMPLEMENTED_MIPS();
393
+ }
394
+
395
+
396
+ void TypeRecordingBinaryOpStub::GenerateHeapResultAllocation(
397
+ MacroAssembler* masm,
398
+ Register result,
399
+ Register heap_number_map,
400
+ Register scratch1,
401
+ Register scratch2,
402
+ Label* gc_required) {
403
+ UNIMPLEMENTED_MIPS();
404
+ }
405
+
406
+
407
+ void TypeRecordingBinaryOpStub::GenerateRegisterArgsPush(MacroAssembler* masm) {
408
+ UNIMPLEMENTED_MIPS();
409
+ }
410
+
411
+
412
+
413
+ void TranscendentalCacheStub::Generate(MacroAssembler* masm) {
414
+ UNIMPLEMENTED_MIPS();
415
+ }
416
+
417
+
418
+ Runtime::FunctionId TranscendentalCacheStub::RuntimeFunction() {
419
+ UNIMPLEMENTED_MIPS();
420
+ return Runtime::kAbort;
421
+ }
422
+
423
+
424
+ void StackCheckStub::Generate(MacroAssembler* masm) {
425
+ UNIMPLEMENTED_MIPS();
426
+ }
427
+
428
+
429
+ void GenericUnaryOpStub::Generate(MacroAssembler* masm) {
430
+ UNIMPLEMENTED_MIPS();
431
+ }
432
+
433
+
434
+ bool CEntryStub::NeedsImmovableCode() {
435
+ return true;
436
+ }
437
+
438
+
439
+ void CEntryStub::GenerateThrowTOS(MacroAssembler* masm) {
440
+ UNIMPLEMENTED_MIPS();
441
+ }
442
+
443
+
444
+ void CEntryStub::GenerateThrowUncatchable(MacroAssembler* masm,
445
+ UncatchableExceptionType type) {
446
+ UNIMPLEMENTED_MIPS();
447
+ }
448
+
449
+
450
+ void CEntryStub::GenerateCore(MacroAssembler* masm,
451
+ Label* throw_normal_exception,
452
+ Label* throw_termination_exception,
453
+ Label* throw_out_of_memory_exception,
454
+ bool do_gc,
455
+ bool always_allocate) {
456
+ UNIMPLEMENTED_MIPS();
457
+ }
458
+
459
+
460
+ void CEntryStub::Generate(MacroAssembler* masm) {
461
+ UNIMPLEMENTED_MIPS();
462
+ }
463
+
464
+
465
+ void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) {
466
+ UNIMPLEMENTED_MIPS();
467
+ }
468
+
469
+
470
+ // Uses registers a0 to t0. Expected input is
471
+ // object in a0 (or at sp+1*kPointerSize) and function in
472
+ // a1 (or at sp), depending on whether or not
473
+ // args_in_registers() is true.
474
+ void InstanceofStub::Generate(MacroAssembler* masm) {
475
+ UNIMPLEMENTED_MIPS();
476
+ }
477
+
478
+
479
+ void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) {
480
+ UNIMPLEMENTED_MIPS();
481
+ }
482
+
483
+
484
+ void ArgumentsAccessStub::GenerateNewObject(MacroAssembler* masm) {
485
+ UNIMPLEMENTED_MIPS();
486
+ }
487
+
488
+
489
+ void RegExpExecStub::Generate(MacroAssembler* masm) {
490
+ UNIMPLEMENTED_MIPS();
491
+ }
492
+
493
+
494
+ void RegExpConstructResultStub::Generate(MacroAssembler* masm) {
495
+ UNIMPLEMENTED_MIPS();
496
+ }
497
+
498
+
499
+ void CallFunctionStub::Generate(MacroAssembler* masm) {
500
+ UNIMPLEMENTED_MIPS();
501
+ }
502
+
503
+
504
+ // Unfortunately you have to run without snapshots to see most of these
505
+ // names in the profile since most compare stubs end up in the snapshot.
506
+ const char* CompareStub::GetName() {
507
+ UNIMPLEMENTED_MIPS();
508
+ return name_;
509
+ }
510
+
511
+
512
+ int CompareStub::MinorKey() {
513
+ UNIMPLEMENTED_MIPS();
514
+ return 0;
515
+ }
516
+
517
+
518
+ // StringCharCodeAtGenerator
519
+
520
+ void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
521
+ UNIMPLEMENTED_MIPS();
522
+ }
523
+
524
+
525
+ void StringCharCodeAtGenerator::GenerateSlow(
526
+ MacroAssembler* masm, const RuntimeCallHelper& call_helper) {
527
+ UNIMPLEMENTED_MIPS();
528
+ }
529
+
530
+
531
+ // -------------------------------------------------------------------------
532
+ // StringCharFromCodeGenerator
533
+
534
+ void StringCharFromCodeGenerator::GenerateFast(MacroAssembler* masm) {
535
+ UNIMPLEMENTED_MIPS();
536
+ }
537
+
538
+
539
+ void StringCharFromCodeGenerator::GenerateSlow(
540
+ MacroAssembler* masm, const RuntimeCallHelper& call_helper) {
541
+ UNIMPLEMENTED_MIPS();
542
+ }
543
+
544
+
545
+ // -------------------------------------------------------------------------
546
+ // StringCharAtGenerator
547
+
548
+ void StringCharAtGenerator::GenerateFast(MacroAssembler* masm) {
549
+ UNIMPLEMENTED_MIPS();
550
+ }
551
+
552
+
553
+ void StringCharAtGenerator::GenerateSlow(
554
+ MacroAssembler* masm, const RuntimeCallHelper& call_helper) {
555
+ UNIMPLEMENTED_MIPS();
556
+ }
557
+
558
+
559
+ class StringHelper : public AllStatic {
560
+ public:
561
+ // Generate code for copying characters using a simple loop. This should only
562
+ // be used in places where the number of characters is small and the
563
+ // additional setup and checking in GenerateCopyCharactersLong adds too much
564
+ // overhead. Copying of overlapping regions is not supported.
565
+ // Dest register ends at the position after the last character written.
566
+ static void GenerateCopyCharacters(MacroAssembler* masm,
567
+ Register dest,
568
+ Register src,
569
+ Register count,
570
+ Register scratch,
571
+ bool ascii);
572
+
573
+ // Generate code for copying a large number of characters. This function
574
+ // is allowed to spend extra time setting up conditions to make copying
575
+ // faster. Copying of overlapping regions is not supported.
576
+ // Dest register ends at the position after the last character written.
577
+ static void GenerateCopyCharactersLong(MacroAssembler* masm,
578
+ Register dest,
579
+ Register src,
580
+ Register count,
581
+ Register scratch1,
582
+ Register scratch2,
583
+ Register scratch3,
584
+ Register scratch4,
585
+ Register scratch5,
586
+ int flags);
587
+
588
+
589
+ // Probe the symbol table for a two character string. If the string is
590
+ // not found by probing a jump to the label not_found is performed. This jump
591
+ // does not guarantee that the string is not in the symbol table. If the
592
+ // string is found the code falls through with the string in register r0.
593
+ // Contents of both c1 and c2 registers are modified. At the exit c1 is
594
+ // guaranteed to contain halfword with low and high bytes equal to
595
+ // initial contents of c1 and c2 respectively.
596
+ static void GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm,
597
+ Register c1,
598
+ Register c2,
599
+ Register scratch1,
600
+ Register scratch2,
601
+ Register scratch3,
602
+ Register scratch4,
603
+ Register scratch5,
604
+ Label* not_found);
605
+
606
+ // Generate string hash.
607
+ static void GenerateHashInit(MacroAssembler* masm,
608
+ Register hash,
609
+ Register character);
610
+
611
+ static void GenerateHashAddCharacter(MacroAssembler* masm,
612
+ Register hash,
613
+ Register character);
614
+
615
+ static void GenerateHashGetHash(MacroAssembler* masm,
616
+ Register hash);
617
+
618
+ private:
619
+ DISALLOW_IMPLICIT_CONSTRUCTORS(StringHelper);
620
+ };
621
+
622
+
623
+ void StringHelper::GenerateCopyCharacters(MacroAssembler* masm,
624
+ Register dest,
625
+ Register src,
626
+ Register count,
627
+ Register scratch,
628
+ bool ascii) {
629
+ UNIMPLEMENTED_MIPS();
630
+ }
631
+
632
+
633
+ enum CopyCharactersFlags {
634
+ COPY_ASCII = 1,
635
+ DEST_ALWAYS_ALIGNED = 2
636
+ };
637
+
638
+
639
+ void StringHelper::GenerateCopyCharactersLong(MacroAssembler* masm,
640
+ Register dest,
641
+ Register src,
642
+ Register count,
643
+ Register scratch1,
644
+ Register scratch2,
645
+ Register scratch3,
646
+ Register scratch4,
647
+ Register scratch5,
648
+ int flags) {
649
+ UNIMPLEMENTED_MIPS();
650
+ }
651
+
652
+
653
+ void StringHelper::GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm,
654
+ Register c1,
655
+ Register c2,
656
+ Register scratch1,
657
+ Register scratch2,
658
+ Register scratch3,
659
+ Register scratch4,
660
+ Register scratch5,
661
+ Label* not_found) {
662
+ UNIMPLEMENTED_MIPS();
663
+ }
664
+
665
+
666
+ void StringHelper::GenerateHashInit(MacroAssembler* masm,
667
+ Register hash,
668
+ Register character) {
669
+ UNIMPLEMENTED_MIPS();
670
+ }
671
+
672
+
673
+ void StringHelper::GenerateHashAddCharacter(MacroAssembler* masm,
674
+ Register hash,
675
+ Register character) {
676
+ UNIMPLEMENTED_MIPS();
677
+ }
678
+
679
+
680
+ void StringHelper::GenerateHashGetHash(MacroAssembler* masm,
681
+ Register hash) {
682
+ UNIMPLEMENTED_MIPS();
683
+ }
684
+
685
+
686
+ void SubStringStub::Generate(MacroAssembler* masm) {
687
+ UNIMPLEMENTED_MIPS();
688
+ }
689
+
690
+
691
+ void StringCompareStub::GenerateCompareFlatAsciiStrings(MacroAssembler* masm,
692
+ Register right,
693
+ Register left,
694
+ Register scratch1,
695
+ Register scratch2,
696
+ Register scratch3,
697
+ Register scratch4) {
698
+ UNIMPLEMENTED_MIPS();
699
+ }
700
+
701
+
702
+ void StringCompareStub::Generate(MacroAssembler* masm) {
703
+ UNIMPLEMENTED_MIPS();
704
+ }
705
+
706
+
707
+ void StringAddStub::Generate(MacroAssembler* masm) {
708
+ UNIMPLEMENTED_MIPS();
709
+ }
710
+
711
+
712
+ void ICCompareStub::GenerateSmis(MacroAssembler* masm) {
713
+ UNIMPLEMENTED_MIPS();
714
+ }
715
+
716
+
717
+ void ICCompareStub::GenerateHeapNumbers(MacroAssembler* masm) {
718
+ UNIMPLEMENTED_MIPS();
719
+ }
720
+
721
+
722
+ void ICCompareStub::GenerateObjects(MacroAssembler* masm) {
723
+ UNIMPLEMENTED_MIPS();
724
+ }
725
+
726
+
727
+ void ICCompareStub::GenerateMiss(MacroAssembler* masm) {
728
+ UNIMPLEMENTED_MIPS();
729
+ }
730
+
731
+
732
+ void GenerateFastPixelArrayLoad(MacroAssembler* masm,
733
+ Register receiver,
734
+ Register key,
735
+ Register elements_map,
736
+ Register elements,
737
+ Register scratch1,
738
+ Register scratch2,
739
+ Register result,
740
+ Label* not_pixel_array,
741
+ Label* key_not_smi,
742
+ Label* out_of_range) {
743
+ UNIMPLEMENTED_MIPS();
744
+ }
745
+
746
+
747
+ #undef __
748
+
749
+ } } // namespace v8::internal
750
+
751
+ #endif // V8_TARGET_ARCH_MIPS
752
+