therubyracer 0.7.4 → 0.7.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of therubyracer might be problematic. Click here for more details.
- data/History.txt +11 -0
- data/Rakefile +1 -1
- data/ext/v8/extconf.rb +0 -18
- data/ext/v8/rr.cpp +2 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/AUTHORS +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/ChangeLog +239 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/LICENSE +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/SConstruct +29 -17
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8-debug.h +61 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8-profiler.h +182 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8.h +458 -257
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/SConscript +2 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/accessors.cc +2 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/accessors.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/allocation.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/allocation.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/api.cc +574 -30
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/api.h +12 -10
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/apinatives.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/apiutils.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arguments.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm-inl.h +38 -15
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm.cc +646 -101
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm.h +174 -15
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/builtins-arm.cc +56 -47
- data/ext/v8/upstream/2.3.3/src/arm/codegen-arm-inl.h +48 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/codegen-arm.cc +2957 -1448
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/codegen-arm.h +230 -74
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/constants-arm.cc +25 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/constants-arm.h +16 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/cpu-arm.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/debug-arm.cc +76 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/disasm-arm.cc +168 -20
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/fast-codegen-arm.cc +5 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/frames-arm.cc +4 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/frames-arm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/full-codegen-arm.cc +1558 -248
- data/ext/v8/upstream/2.3.3/src/arm/ic-arm.cc +2258 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/jump-target-arm.cc +55 -103
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/macro-assembler-arm.cc +358 -185
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/macro-assembler-arm.h +136 -41
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/regexp-macro-assembler-arm.cc +26 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/regexp-macro-assembler-arm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/simulator-arm.cc +203 -22
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/simulator-arm.h +7 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/stub-cache-arm.cc +531 -324
- data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm-inl.h +59 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/virtual-frame-arm.cc +247 -81
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/virtual-frame-arm.h +99 -83
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/array.js +2 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/assembler.cc +6 -13
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/assembler.h +36 -10
- data/ext/v8/upstream/2.3.3/src/ast-inl.h +81 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ast.cc +14 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ast.h +20 -35
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bootstrapper.cc +32 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bootstrapper.h +0 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/builtins.cc +50 -33
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/builtins.h +2 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bytecodes-irregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cached-powers.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/char-predicates-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/char-predicates.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/checks.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/checks.h +8 -6
- data/ext/v8/upstream/2.3.3/src/circular-queue-inl.h +53 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/circular-queue.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/circular-queue.h +0 -26
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code-stubs.cc +2 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code-stubs.h +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen.cc +44 -13
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen.h +310 -31
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compilation-cache.cc +28 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compilation-cache.h +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compiler.cc +45 -14
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compiler.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/contexts.cc +11 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/contexts.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions.cc +25 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/counters.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/counters.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler-inl.h +2 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler.cc +68 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler.h +19 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-debug.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-debug.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-posix.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-readline.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-windows.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.js +55 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/data-flow.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/data-flow.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/date.js +68 -137
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser.cc +2 -8
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-agent.cc +3 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-agent.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-debugger.js +81 -23
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug.cc +275 -81
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug.h +85 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disasm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disassembler.cc +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disassembler.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/diy-fp.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/diy-fp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/double.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dtoa-config.c +0 -0
- data/ext/v8/upstream/2.3.3/src/dtoa.cc +77 -0
- data/ext/v8/upstream/2.3.3/src/dtoa.h +81 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/execution.cc +111 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/execution.h +12 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/factory.cc +25 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/factory.h +16 -9
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-codegen.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-codegen.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-dtoa.cc +2 -9
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-dtoa.h +1 -2
- data/ext/v8/upstream/2.3.3/src/fixed-dtoa.cc +405 -0
- data/ext/v8/upstream/{2.1.10/src/jump-target-light.cc → 2.3.3/src/fixed-dtoa.h} +22 -53
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flag-definitions.h +14 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flags.cc +5 -9
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flags.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flow-graph.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flow-graph.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frame-element.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frame-element.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames.cc +5 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames.h +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/full-codegen.cc +387 -20
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/full-codegen.h +102 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/func-name-inferrer.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/func-name-inferrer.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/global-handles.cc +8 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/global-handles.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/globals.h +44 -7
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles.cc +19 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles.h +8 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/hashmap.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/hashmap.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-inl.h +56 -14
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-profiler.cc +85 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-profiler.h +45 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap.cc +994 -396
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap.h +220 -65
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32-inl.h +41 -12
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32.cc +94 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32.h +32 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/builtins-ia32.cc +42 -30
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32.cc +1758 -916
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32.h +67 -74
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/cpu-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/debug-ia32.cc +46 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/disasm-ia32.cc +37 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/fast-codegen-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/fast-codegen-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/frames-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/frames-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/full-codegen-ia32.cc +1465 -198
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/ic-ia32.cc +688 -367
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/jump-target-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/macro-assembler-ia32.cc +82 -180
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/macro-assembler-ia32.h +41 -25
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/regexp-macro-assembler-ia32.cc +68 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/regexp-macro-assembler-ia32.h +1 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/simulator-ia32.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/simulator-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/stub-cache-ia32.cc +649 -302
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/virtual-frame-ia32.cc +23 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/virtual-frame-ia32.h +18 -27
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic-inl.h +30 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic.cc +384 -66
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic.h +65 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/interpreter-irregexp.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/interpreter-irregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/json.js +3 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jsregexp.cc +20 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jsregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-heavy-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-heavy.cc +79 -13
- data/ext/v8/upstream/{2.1.10/src/jump-target.h → 2.3.3/src/jump-target-heavy.h} +5 -47
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-light-inl.h +16 -2
- data/ext/v8/upstream/2.3.3/src/jump-target-light.cc +110 -0
- data/ext/v8/upstream/2.3.3/src/jump-target-light.h +192 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target.cc +0 -64
- data/ext/v8/upstream/2.3.3/src/jump-target.h +90 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/list-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/list.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit-debugger.js +141 -28
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit.cc +19 -7
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-utils.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-utils.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log.cc +12 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log.h +12 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/macro-assembler.h +0 -16
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/macros.py +21 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mark-compact.cc +120 -109
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mark-compact.h +25 -37
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/math.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/memory.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.cc +8 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.h +2 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.js +15 -7
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips.cc +12 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips.h +4 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/builtins-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips.cc +9 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips.h +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/constants-mips.cc +5 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/constants-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/cpu-mips.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/debug-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/disasm-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/fast-codegen-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/frames-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/frames-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/full-codegen-mips.cc +5 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/ic-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/jump-target-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/macro-assembler-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/macro-assembler-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/simulator-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/simulator-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/stub-cache-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/virtual-frame-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/virtual-frame-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mirror-debugger.js +46 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mksnapshot.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/natives.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects-debug.cc +8 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects-inl.h +235 -62
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects.cc +497 -231
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects.h +355 -149
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/oprofile-agent.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/oprofile-agent.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/parser.cc +31 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/parser.h +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-freebsd.cc +9 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-linux.cc +26 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-macos.cc +11 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-nullos.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-openbsd.cc +6 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-posix.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-solaris.cc +69 -23
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-win32.cc +15 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform.h +10 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/powers-ten.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/prettyprinter.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/prettyprinter.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/profile-generator-inl.h +26 -2
- data/ext/v8/upstream/2.3.3/src/profile-generator.cc +1830 -0
- data/ext/v8/upstream/2.3.3/src/profile-generator.h +853 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/property.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/property.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-tracer.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-tracer.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler.cc +1 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-stack.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-stack.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp.js +25 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator.cc +4 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/rewriter.cc +85 -8
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/rewriter.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.cc +547 -221
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.h +5 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.js +23 -31
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scanner.cc +12 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scanner.h +60 -53
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopeinfo.cc +156 -168
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopeinfo.h +58 -62
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopes.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopes.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/serialize.cc +320 -242
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/serialize.h +81 -48
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/shell.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/simulator.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/smart-pointer.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot-common.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot-empty.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces-inl.h +177 -74
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces.cc +138 -315
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces.h +155 -124
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/splay-tree-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/splay-tree.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string-stream.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string-stream.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string.js +113 -119
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/stub-cache.cc +242 -97
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/stub-cache.h +118 -55
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/dtoa/COPYING +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/dtoa/dtoa.c +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/valgrind/valgrind.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/token.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/token.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/top.cc +107 -26
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/top.h +9 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/type-info.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/type-info.h +2 -2
- data/ext/v8/upstream/2.3.3/src/unbound-queue-inl.h +95 -0
- data/ext/v8/upstream/2.3.3/src/unbound-queue.h +67 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/uri.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/utils.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/utils.h +83 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8-counters.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8-counters.h +20 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8.cc +5 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8.h +0 -0
- data/ext/v8/upstream/2.3.3/src/v8dll-main.cc +39 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8natives.js +210 -33
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8threads.cc +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8threads.h +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/variables.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/variables.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/version.cc +3 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/version.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-heavy-inl.h +40 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-heavy.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-light-inl.h +106 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-light.cc +4 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state-inl.h +6 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state.cc +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state.h +6 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64-inl.h +42 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64.cc +285 -53
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64.h +54 -18
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/builtins-x64.cc +31 -33
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64.cc +9787 -8722
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64.h +82 -47
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/cpu-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/debug-x64.cc +55 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/disasm-x64.cc +42 -19
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/fast-codegen-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/frames-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/frames-x64.h +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/full-codegen-x64.cc +1487 -210
- data/ext/v8/upstream/2.3.3/src/x64/ic-x64.cc +1907 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/jump-target-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/macro-assembler-x64.cc +366 -338
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/macro-assembler-x64.h +83 -38
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/regexp-macro-assembler-x64.cc +82 -23
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/regexp-macro-assembler-x64.h +1 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64-inl.h +6 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64.h +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/simulator-x64.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/simulator-x64.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/stub-cache-x64.cc +556 -377
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/virtual-frame-x64.cc +197 -98
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/virtual-frame-x64.h +37 -28
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/codemap.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/consarray.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/csvparser.js +0 -0
- data/ext/v8/upstream/2.3.3/tools/gc-nvp-trace-processor.py +317 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/generate-ten-powers.scm +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/gyp/v8.gyp +87 -20
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/js2c.py +19 -15
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/jsmin.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/linux-tick-processor +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/linux-tick-processor.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/logreader.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/mac-nm +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/mac-tick-processor +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/annotate +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/common +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/dump +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/report +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/reset +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/run +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/shutdown +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/start +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/presubmit.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/process-heap-prof.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/profile.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/profile_view.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/run-valgrind.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/splaytree.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/splaytree.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/stats-viewer.py +25 -13
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/test.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor-driver.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/utils.py +0 -0
- data/ext/v8/upstream/2.3.3/tools/v8.xcodeproj/project.pbxproj +1855 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/README.txt +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/arm.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/common.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8js2c.cmd +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/debug.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/ia32.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/js2c.cmd +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/release.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8.sln +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_arm.sln +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base.vcproj +40 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base_arm.vcproj +20 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base_x64.vcproj +16 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest.vcproj +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_mksnapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_x64.sln +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/x64.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/windows-tick-processor.bat +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/windows-tick-processor.py +0 -0
- data/ext/v8/upstream/Makefile +1 -1
- data/ext/v8/v8_template.cpp +94 -2
- data/ext/v8/v8_try_catch.cpp +2 -2
- data/lib/v8.rb +1 -1
- data/lib/v8/access.rb +93 -40
- data/lib/v8/cli.rb +1 -1
- data/lib/v8/function.rb +14 -2
- data/spec/redjs/jsapi_spec.rb +231 -42
- data/therubyracer.gemspec +3 -3
- metadata +463 -453
- data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2-inl.h +0 -263
- data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2.cc +0 -1878
- data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2.h +0 -1036
- data/ext/v8/upstream/2.1.10/src/arm/codegen-arm-inl.h +0 -72
- data/ext/v8/upstream/2.1.10/src/arm/ic-arm.cc +0 -1833
- data/ext/v8/upstream/2.1.10/src/circular-queue-inl.h +0 -101
- data/ext/v8/upstream/2.1.10/src/profile-generator.cc +0 -583
- data/ext/v8/upstream/2.1.10/src/profile-generator.h +0 -364
- data/ext/v8/upstream/2.1.10/src/x64/ic-x64.cc +0 -1621
@@ -29,6 +29,7 @@
|
|
29
29
|
#define V8_ARM_CODEGEN_ARM_H_
|
30
30
|
|
31
31
|
#include "ic-inl.h"
|
32
|
+
#include "ast.h"
|
32
33
|
|
33
34
|
namespace v8 {
|
34
35
|
namespace internal {
|
@@ -36,11 +37,14 @@ namespace internal {
|
|
36
37
|
// Forward declarations
|
37
38
|
class CompilationInfo;
|
38
39
|
class DeferredCode;
|
40
|
+
class JumpTarget;
|
39
41
|
class RegisterAllocator;
|
40
42
|
class RegisterFile;
|
41
43
|
|
42
44
|
enum InitState { CONST_INIT, NOT_CONST_INIT };
|
43
45
|
enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF };
|
46
|
+
enum GenerateInlineSmi { DONT_GENERATE_INLINE_SMI, GENERATE_INLINE_SMI };
|
47
|
+
enum WriteBarrierCharacter { UNLIKELY_SMI, LIKELY_SMI, NEVER_NEWSPACE };
|
44
48
|
|
45
49
|
|
46
50
|
// -------------------------------------------------------------------------
|
@@ -97,7 +101,12 @@ class Reference BASE_EMBEDDED {
|
|
97
101
|
// on the expression stack. The value is stored in the location specified
|
98
102
|
// by the reference, and is left on top of the stack, after the reference
|
99
103
|
// is popped from beneath it (unloaded).
|
100
|
-
void SetValue(InitState init_state);
|
104
|
+
void SetValue(InitState init_state, WriteBarrierCharacter wb);
|
105
|
+
|
106
|
+
// This is in preparation for something that uses the reference on the stack.
|
107
|
+
// If we need this reference afterwards get then dup it now. Otherwise mark
|
108
|
+
// it as used.
|
109
|
+
inline void DupIfPersist();
|
101
110
|
|
102
111
|
private:
|
103
112
|
CodeGenerator* cgen_;
|
@@ -122,24 +131,55 @@ class CodeGenState BASE_EMBEDDED {
|
|
122
131
|
// leaves the code generator with a NULL state.
|
123
132
|
explicit CodeGenState(CodeGenerator* owner);
|
124
133
|
|
125
|
-
// Create a code generator state based on a code generator's current
|
126
|
-
// state. The new state has its own pair of branch labels.
|
127
|
-
CodeGenState(CodeGenerator* owner,
|
128
|
-
JumpTarget* true_target,
|
129
|
-
JumpTarget* false_target);
|
130
|
-
|
131
134
|
// Destroy a code generator state and restore the owning code generator's
|
132
135
|
// previous state.
|
133
|
-
~CodeGenState();
|
136
|
+
virtual ~CodeGenState();
|
137
|
+
|
138
|
+
virtual JumpTarget* true_target() const { return NULL; }
|
139
|
+
virtual JumpTarget* false_target() const { return NULL; }
|
134
140
|
|
135
|
-
|
136
|
-
|
141
|
+
protected:
|
142
|
+
inline CodeGenerator* owner() { return owner_; }
|
143
|
+
inline CodeGenState* previous() const { return previous_; }
|
137
144
|
|
138
145
|
private:
|
139
146
|
CodeGenerator* owner_;
|
147
|
+
CodeGenState* previous_;
|
148
|
+
};
|
149
|
+
|
150
|
+
|
151
|
+
class ConditionCodeGenState : public CodeGenState {
|
152
|
+
public:
|
153
|
+
// Create a code generator state based on a code generator's current
|
154
|
+
// state. The new state has its own pair of branch labels.
|
155
|
+
ConditionCodeGenState(CodeGenerator* owner,
|
156
|
+
JumpTarget* true_target,
|
157
|
+
JumpTarget* false_target);
|
158
|
+
|
159
|
+
virtual JumpTarget* true_target() const { return true_target_; }
|
160
|
+
virtual JumpTarget* false_target() const { return false_target_; }
|
161
|
+
|
162
|
+
private:
|
140
163
|
JumpTarget* true_target_;
|
141
164
|
JumpTarget* false_target_;
|
142
|
-
|
165
|
+
};
|
166
|
+
|
167
|
+
|
168
|
+
class TypeInfoCodeGenState : public CodeGenState {
|
169
|
+
public:
|
170
|
+
TypeInfoCodeGenState(CodeGenerator* owner,
|
171
|
+
Slot* slot_number,
|
172
|
+
TypeInfo info);
|
173
|
+
~TypeInfoCodeGenState();
|
174
|
+
|
175
|
+
virtual JumpTarget* true_target() const { return previous()->true_target(); }
|
176
|
+
virtual JumpTarget* false_target() const {
|
177
|
+
return previous()->false_target();
|
178
|
+
}
|
179
|
+
|
180
|
+
private:
|
181
|
+
Slot* slot_;
|
182
|
+
TypeInfo old_type_info_;
|
143
183
|
};
|
144
184
|
|
145
185
|
|
@@ -187,7 +227,9 @@ class CodeGenerator: public AstVisitor {
|
|
187
227
|
bool is_toplevel,
|
188
228
|
Handle<Script> script);
|
189
229
|
|
190
|
-
static
|
230
|
+
static bool RecordPositions(MacroAssembler* masm,
|
231
|
+
int pos,
|
232
|
+
bool right_here = false);
|
191
233
|
|
192
234
|
// Accessors
|
193
235
|
MacroAssembler* masm() { return masm_; }
|
@@ -209,6 +251,23 @@ class CodeGenerator: public AstVisitor {
|
|
209
251
|
CodeGenState* state() { return state_; }
|
210
252
|
void set_state(CodeGenState* state) { state_ = state; }
|
211
253
|
|
254
|
+
TypeInfo type_info(Slot* slot) {
|
255
|
+
int index = NumberOfSlot(slot);
|
256
|
+
if (index == kInvalidSlotNumber) return TypeInfo::Unknown();
|
257
|
+
return (*type_info_)[index];
|
258
|
+
}
|
259
|
+
|
260
|
+
TypeInfo set_type_info(Slot* slot, TypeInfo info) {
|
261
|
+
int index = NumberOfSlot(slot);
|
262
|
+
ASSERT(index >= kInvalidSlotNumber);
|
263
|
+
if (index != kInvalidSlotNumber) {
|
264
|
+
TypeInfo previous_value = (*type_info_)[index];
|
265
|
+
(*type_info_)[index] = info;
|
266
|
+
return previous_value;
|
267
|
+
}
|
268
|
+
return TypeInfo::Unknown();
|
269
|
+
}
|
270
|
+
|
212
271
|
void AddDeferred(DeferredCode* code) { deferred_.Add(code); }
|
213
272
|
|
214
273
|
static const int kUnknownIntValue = -1;
|
@@ -217,6 +276,16 @@ class CodeGenerator: public AstVisitor {
|
|
217
276
|
// expected arguments. Otherwise return -1.
|
218
277
|
static int InlineRuntimeCallArgumentsCount(Handle<String> name);
|
219
278
|
|
279
|
+
// Constants related to patching of inlined load/store.
|
280
|
+
static int GetInlinedKeyedLoadInstructionsAfterPatch() {
|
281
|
+
return FLAG_debug_code ? 27 : 13;
|
282
|
+
}
|
283
|
+
static const int kInlinedKeyedStoreInstructionsAfterPatch = 5;
|
284
|
+
static int GetInlinedNamedStoreInstructionsAfterPatch() {
|
285
|
+
ASSERT(inlined_write_barrier_size_ != -1);
|
286
|
+
return inlined_write_barrier_size_ + 4;
|
287
|
+
}
|
288
|
+
|
220
289
|
private:
|
221
290
|
// Construction/Destruction
|
222
291
|
explicit CodeGenerator(MacroAssembler* masm);
|
@@ -228,6 +297,10 @@ class CodeGenerator: public AstVisitor {
|
|
228
297
|
// Generating deferred code.
|
229
298
|
void ProcessDeferred();
|
230
299
|
|
300
|
+
static const int kInvalidSlotNumber = -1;
|
301
|
+
|
302
|
+
int NumberOfSlot(Slot* slot);
|
303
|
+
|
231
304
|
// State
|
232
305
|
bool has_cc() const { return cc_reg_ != al; }
|
233
306
|
JumpTarget* true_target() const { return state_->true_target(); }
|
@@ -246,19 +319,15 @@ class CodeGenerator: public AstVisitor {
|
|
246
319
|
AST_NODE_LIST(DEF_VISIT)
|
247
320
|
#undef DEF_VISIT
|
248
321
|
|
249
|
-
// Visit a statement and then spill the virtual frame if control flow can
|
250
|
-
// reach the end of the statement (ie, it does not exit via break,
|
251
|
-
// continue, return, or throw). This function is used temporarily while
|
252
|
-
// the code generator is being transformed.
|
253
|
-
inline void VisitAndSpill(Statement* statement);
|
254
|
-
|
255
|
-
// Visit a list of statements and then spill the virtual frame if control
|
256
|
-
// flow can reach the end of the list.
|
257
|
-
inline void VisitStatementsAndSpill(ZoneList<Statement*>* statements);
|
258
|
-
|
259
322
|
// Main code generation function
|
260
323
|
void Generate(CompilationInfo* info);
|
261
324
|
|
325
|
+
// Generate the return sequence code. Should be called no more than
|
326
|
+
// once per compiled function, immediately after binding the return
|
327
|
+
// target (which can not be done more than once). The return value should
|
328
|
+
// be in r0.
|
329
|
+
void GenerateReturnSequence();
|
330
|
+
|
262
331
|
// Returns the arguments allocation mode.
|
263
332
|
ArgumentsAllocationMode ArgumentsMode();
|
264
333
|
|
@@ -293,22 +362,10 @@ class CodeGenerator: public AstVisitor {
|
|
293
362
|
void LoadGlobal();
|
294
363
|
void LoadGlobalReceiver(Register scratch);
|
295
364
|
|
296
|
-
// Generate code to push the value of an expression on top of the frame
|
297
|
-
// and then spill the frame fully to memory. This function is used
|
298
|
-
// temporarily while the code generator is being transformed.
|
299
|
-
inline void LoadAndSpill(Expression* expression);
|
300
|
-
|
301
|
-
// Call LoadCondition and then spill the virtual frame unless control flow
|
302
|
-
// cannot reach the end of the expression (ie, by emitting only
|
303
|
-
// unconditional jumps to the control targets).
|
304
|
-
inline void LoadConditionAndSpill(Expression* expression,
|
305
|
-
JumpTarget* true_target,
|
306
|
-
JumpTarget* false_target,
|
307
|
-
bool force_control);
|
308
|
-
|
309
365
|
// Read a value from a slot and leave it on top of the expression stack.
|
310
366
|
void LoadFromSlot(Slot* slot, TypeofState typeof_state);
|
311
367
|
void LoadFromSlotCheckForArguments(Slot* slot, TypeofState state);
|
368
|
+
|
312
369
|
// Store the value on top of the stack to a slot.
|
313
370
|
void StoreToSlot(Slot* slot, InitState init_state);
|
314
371
|
|
@@ -332,12 +389,21 @@ class CodeGenerator: public AstVisitor {
|
|
332
389
|
|
333
390
|
// Store a keyed property. Key and receiver are on the stack and the value is
|
334
391
|
// in r0. Result is returned in r0.
|
335
|
-
void EmitKeyedStore(StaticType* key_type);
|
392
|
+
void EmitKeyedStore(StaticType* key_type, WriteBarrierCharacter wb_info);
|
336
393
|
|
337
394
|
void LoadFromGlobalSlotCheckExtensions(Slot* slot,
|
338
395
|
TypeofState typeof_state,
|
339
396
|
JumpTarget* slow);
|
340
397
|
|
398
|
+
// Support for loading from local/global variables and arguments
|
399
|
+
// whose location is known unless they are shadowed by
|
400
|
+
// eval-introduced bindings. Generates no code for unsupported slot
|
401
|
+
// types and therefore expects to fall through to the slow jump target.
|
402
|
+
void EmitDynamicLoadFromSlotFastCase(Slot* slot,
|
403
|
+
TypeofState typeof_state,
|
404
|
+
JumpTarget* slow,
|
405
|
+
JumpTarget* done);
|
406
|
+
|
341
407
|
// Special code for typeof expressions: Unfortunately, we must
|
342
408
|
// be careful when loading the expression in 'typeof'
|
343
409
|
// expressions. We are not allowed to throw reference errors for
|
@@ -353,10 +419,8 @@ class CodeGenerator: public AstVisitor {
|
|
353
419
|
|
354
420
|
void GenericBinaryOperation(Token::Value op,
|
355
421
|
OverwriteMode overwrite_mode,
|
422
|
+
GenerateInlineSmi inline_smi,
|
356
423
|
int known_rhs = kUnknownIntValue);
|
357
|
-
void VirtualFrameBinaryOperation(Token::Value op,
|
358
|
-
OverwriteMode overwrite_mode,
|
359
|
-
int known_rhs = kUnknownIntValue);
|
360
424
|
void Comparison(Condition cc,
|
361
425
|
Expression* left,
|
362
426
|
Expression* right,
|
@@ -400,6 +464,8 @@ class CodeGenerator: public AstVisitor {
|
|
400
464
|
|
401
465
|
static Handle<Code> ComputeCallInitialize(int argc, InLoopFlag in_loop);
|
402
466
|
|
467
|
+
static Handle<Code> ComputeKeyedCallInitialize(int argc, InLoopFlag in_loop);
|
468
|
+
|
403
469
|
// Declare global variables and functions in the given array of
|
404
470
|
// name/value pairs.
|
405
471
|
void DeclareGlobals(Handle<FixedArray> pairs);
|
@@ -413,6 +479,7 @@ class CodeGenerator: public AstVisitor {
|
|
413
479
|
void GenerateIsArray(ZoneList<Expression*>* args);
|
414
480
|
void GenerateIsRegExp(ZoneList<Expression*>* args);
|
415
481
|
void GenerateIsObject(ZoneList<Expression*>* args);
|
482
|
+
void GenerateIsSpecObject(ZoneList<Expression*>* args);
|
416
483
|
void GenerateIsFunction(ZoneList<Expression*>* args);
|
417
484
|
void GenerateIsUndetectableObject(ZoneList<Expression*>* args);
|
418
485
|
|
@@ -429,10 +496,13 @@ class CodeGenerator: public AstVisitor {
|
|
429
496
|
void GenerateSetValueOf(ZoneList<Expression*>* args);
|
430
497
|
|
431
498
|
// Fast support for charCodeAt(n).
|
432
|
-
void
|
499
|
+
void GenerateStringCharCodeAt(ZoneList<Expression*>* args);
|
433
500
|
|
434
501
|
// Fast support for string.charAt(n) and string[n].
|
435
|
-
void
|
502
|
+
void GenerateStringCharFromCode(ZoneList<Expression*>* args);
|
503
|
+
|
504
|
+
// Fast support for string.charAt(n) and string[n].
|
505
|
+
void GenerateStringCharAt(ZoneList<Expression*>* args);
|
436
506
|
|
437
507
|
// Fast support for object equality testing.
|
438
508
|
void GenerateObjectEquals(ZoneList<Expression*>* args);
|
@@ -510,6 +580,8 @@ class CodeGenerator: public AstVisitor {
|
|
510
580
|
CodeGenState* state_;
|
511
581
|
int loop_nesting_;
|
512
582
|
|
583
|
+
Vector<TypeInfo>* type_info_;
|
584
|
+
|
513
585
|
// Jump targets
|
514
586
|
BreakTarget function_return_;
|
515
587
|
|
@@ -518,6 +590,9 @@ class CodeGenerator: public AstVisitor {
|
|
518
590
|
// to some unlinking code).
|
519
591
|
bool function_return_is_shadowed_;
|
520
592
|
|
593
|
+
// Size of inlined write barriers generated by EmitNamedStore.
|
594
|
+
static int inlined_write_barrier_size_;
|
595
|
+
|
521
596
|
static InlineRuntimeLUT kInlineRuntimeLUT[];
|
522
597
|
|
523
598
|
friend class VirtualFrame;
|
@@ -531,6 +606,21 @@ class CodeGenerator: public AstVisitor {
|
|
531
606
|
};
|
532
607
|
|
533
608
|
|
609
|
+
// Compute a transcendental math function natively, or call the
|
610
|
+
// TranscendentalCache runtime function.
|
611
|
+
class TranscendentalCacheStub: public CodeStub {
|
612
|
+
public:
|
613
|
+
explicit TranscendentalCacheStub(TranscendentalCache::Type type)
|
614
|
+
: type_(type) {}
|
615
|
+
void Generate(MacroAssembler* masm);
|
616
|
+
private:
|
617
|
+
TranscendentalCache::Type type_;
|
618
|
+
Major MajorKey() { return TranscendentalCache; }
|
619
|
+
int MinorKey() { return type_; }
|
620
|
+
Runtime::FunctionId RuntimeFunction();
|
621
|
+
};
|
622
|
+
|
623
|
+
|
534
624
|
class GenericBinaryOpStub : public CodeStub {
|
535
625
|
public:
|
536
626
|
GenericBinaryOpStub(Token::Value op,
|
@@ -590,7 +680,9 @@ class GenericBinaryOpStub : public CodeStub {
|
|
590
680
|
}
|
591
681
|
|
592
682
|
void Generate(MacroAssembler* masm);
|
593
|
-
void HandleNonSmiBitwiseOp(MacroAssembler* masm,
|
683
|
+
void HandleNonSmiBitwiseOp(MacroAssembler* masm,
|
684
|
+
Register lhs,
|
685
|
+
Register rhs);
|
594
686
|
void HandleBinaryOpSlowCases(MacroAssembler* masm,
|
595
687
|
Label* not_smi,
|
596
688
|
Register lhs,
|
@@ -677,38 +769,6 @@ class GenericBinaryOpStub : public CodeStub {
|
|
677
769
|
|
678
770
|
class StringHelper : public AllStatic {
|
679
771
|
public:
|
680
|
-
// Generates fast code for getting a char code out of a string
|
681
|
-
// object at the given index. May bail out for four reasons (in the
|
682
|
-
// listed order):
|
683
|
-
// * Receiver is not a string (receiver_not_string label).
|
684
|
-
// * Index is not a smi (index_not_smi label).
|
685
|
-
// * Index is out of range (index_out_of_range).
|
686
|
-
// * Some other reason (slow_case label). In this case it's
|
687
|
-
// guaranteed that the above conditions are not violated,
|
688
|
-
// e.g. it's safe to assume the receiver is a string and the
|
689
|
-
// index is a non-negative smi < length.
|
690
|
-
// When successful, object, index, and scratch are clobbered.
|
691
|
-
// Otherwise, scratch and result are clobbered.
|
692
|
-
static void GenerateFastCharCodeAt(MacroAssembler* masm,
|
693
|
-
Register object,
|
694
|
-
Register index,
|
695
|
-
Register scratch,
|
696
|
-
Register result,
|
697
|
-
Label* receiver_not_string,
|
698
|
-
Label* index_not_smi,
|
699
|
-
Label* index_out_of_range,
|
700
|
-
Label* slow_case);
|
701
|
-
|
702
|
-
// Generates code for creating a one-char string from the given char
|
703
|
-
// code. May do a runtime call, so any register can be clobbered
|
704
|
-
// and, if the given invoke flag specifies a call, an internal frame
|
705
|
-
// is required. In tail call mode the result must be r0 register.
|
706
|
-
static void GenerateCharFromCode(MacroAssembler* masm,
|
707
|
-
Register code,
|
708
|
-
Register scratch,
|
709
|
-
Register result,
|
710
|
-
InvokeFlag flag);
|
711
|
-
|
712
772
|
// Generate code for copying characters using a simple loop. This should only
|
713
773
|
// be used in places where the number of characters is small and the
|
714
774
|
// additional setup and checking in GenerateCopyCharactersLong adds too much
|
@@ -830,6 +890,102 @@ class StringCompareStub: public CodeStub {
|
|
830
890
|
};
|
831
891
|
|
832
892
|
|
893
|
+
// This stub can do a fast mod operation without using fp.
|
894
|
+
// It is tail called from the GenericBinaryOpStub and it always
|
895
|
+
// returns an answer. It never causes GC so it doesn't need a real frame.
|
896
|
+
//
|
897
|
+
// The inputs are always positive Smis. This is never called
|
898
|
+
// where the denominator is a power of 2. We handle that separately.
|
899
|
+
//
|
900
|
+
// If we consider the denominator as an odd number multiplied by a power of 2,
|
901
|
+
// then:
|
902
|
+
// * The exponent (power of 2) is in the shift_distance register.
|
903
|
+
// * The odd number is in the odd_number register. It is always in the range
|
904
|
+
// of 3 to 25.
|
905
|
+
// * The bits from the numerator that are to be copied to the answer (there are
|
906
|
+
// shift_distance of them) are in the mask_bits register.
|
907
|
+
// * The other bits of the numerator have been shifted down and are in the lhs
|
908
|
+
// register.
|
909
|
+
class IntegerModStub : public CodeStub {
|
910
|
+
public:
|
911
|
+
IntegerModStub(Register result,
|
912
|
+
Register shift_distance,
|
913
|
+
Register odd_number,
|
914
|
+
Register mask_bits,
|
915
|
+
Register lhs,
|
916
|
+
Register scratch)
|
917
|
+
: result_(result),
|
918
|
+
shift_distance_(shift_distance),
|
919
|
+
odd_number_(odd_number),
|
920
|
+
mask_bits_(mask_bits),
|
921
|
+
lhs_(lhs),
|
922
|
+
scratch_(scratch) {
|
923
|
+
// We don't code these in the minor key, so they should always be the same.
|
924
|
+
// We don't really want to fix that since this stub is rather large and we
|
925
|
+
// don't want many copies of it.
|
926
|
+
ASSERT(shift_distance_.is(r9));
|
927
|
+
ASSERT(odd_number_.is(r4));
|
928
|
+
ASSERT(mask_bits_.is(r3));
|
929
|
+
ASSERT(scratch_.is(r5));
|
930
|
+
}
|
931
|
+
|
932
|
+
private:
|
933
|
+
Register result_;
|
934
|
+
Register shift_distance_;
|
935
|
+
Register odd_number_;
|
936
|
+
Register mask_bits_;
|
937
|
+
Register lhs_;
|
938
|
+
Register scratch_;
|
939
|
+
|
940
|
+
// Minor key encoding in 16 bits.
|
941
|
+
class ResultRegisterBits: public BitField<int, 0, 4> {};
|
942
|
+
class LhsRegisterBits: public BitField<int, 4, 4> {};
|
943
|
+
|
944
|
+
Major MajorKey() { return IntegerMod; }
|
945
|
+
int MinorKey() {
|
946
|
+
// Encode the parameters in a unique 16 bit value.
|
947
|
+
return ResultRegisterBits::encode(result_.code())
|
948
|
+
| LhsRegisterBits::encode(lhs_.code());
|
949
|
+
}
|
950
|
+
|
951
|
+
void Generate(MacroAssembler* masm);
|
952
|
+
|
953
|
+
const char* GetName() { return "IntegerModStub"; }
|
954
|
+
|
955
|
+
// Utility functions.
|
956
|
+
void DigitSum(MacroAssembler* masm,
|
957
|
+
Register lhs,
|
958
|
+
int mask,
|
959
|
+
int shift,
|
960
|
+
Label* entry);
|
961
|
+
void DigitSum(MacroAssembler* masm,
|
962
|
+
Register lhs,
|
963
|
+
Register scratch,
|
964
|
+
int mask,
|
965
|
+
int shift1,
|
966
|
+
int shift2,
|
967
|
+
Label* entry);
|
968
|
+
void ModGetInRangeBySubtraction(MacroAssembler* masm,
|
969
|
+
Register lhs,
|
970
|
+
int shift,
|
971
|
+
int rhs);
|
972
|
+
void ModReduce(MacroAssembler* masm,
|
973
|
+
Register lhs,
|
974
|
+
int max,
|
975
|
+
int denominator);
|
976
|
+
void ModAnswer(MacroAssembler* masm,
|
977
|
+
Register result,
|
978
|
+
Register shift_distance,
|
979
|
+
Register mask_bits,
|
980
|
+
Register sum_of_digits);
|
981
|
+
|
982
|
+
|
983
|
+
#ifdef DEBUG
|
984
|
+
void Print() { PrintF("IntegerModStub\n"); }
|
985
|
+
#endif
|
986
|
+
};
|
987
|
+
|
988
|
+
|
833
989
|
// This stub can convert a signed int32 to a heap number (double). It does
|
834
990
|
// not work for int32s that are in Smi range! No GC occurs during this stub
|
835
991
|
// so you don't have to set up the frame.
|