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
@@ -38,29 +38,31 @@
|
|
38
38
|
#define V8_IA32_ASSEMBLER_IA32_INL_H_
|
39
39
|
|
40
40
|
#include "cpu.h"
|
41
|
+
#include "debug.h"
|
41
42
|
|
42
43
|
namespace v8 {
|
43
44
|
namespace internal {
|
44
45
|
|
45
|
-
Condition NegateCondition(Condition cc) {
|
46
|
-
return static_cast<Condition>(cc ^ 1);
|
47
|
-
}
|
48
|
-
|
49
46
|
|
50
47
|
// The modes possibly affected by apply must be in kApplyMask.
|
51
48
|
void RelocInfo::apply(intptr_t delta) {
|
52
49
|
if (rmode_ == RUNTIME_ENTRY || IsCodeTarget(rmode_)) {
|
53
50
|
int32_t* p = reinterpret_cast<int32_t*>(pc_);
|
54
|
-
*p -= delta; //
|
51
|
+
*p -= delta; // Relocate entry.
|
55
52
|
} else if (rmode_ == JS_RETURN && IsPatchedReturnSequence()) {
|
56
53
|
// Special handling of js_return when a break point is set (call
|
57
54
|
// instruction has been inserted).
|
58
55
|
int32_t* p = reinterpret_cast<int32_t*>(pc_ + 1);
|
59
|
-
*p -= delta; //
|
56
|
+
*p -= delta; // Relocate entry.
|
57
|
+
} else if (rmode_ == DEBUG_BREAK_SLOT && IsPatchedDebugBreakSlotSequence()) {
|
58
|
+
// Special handling of a debug break slot when a break point is set (call
|
59
|
+
// instruction has been inserted).
|
60
|
+
int32_t* p = reinterpret_cast<int32_t*>(pc_ + 1);
|
61
|
+
*p -= delta; // Relocate entry.
|
60
62
|
} else if (IsInternalReference(rmode_)) {
|
61
63
|
// absolute code pointer inside code object moves with the code object.
|
62
64
|
int32_t* p = reinterpret_cast<int32_t*>(pc_);
|
63
|
-
*p += delta; //
|
65
|
+
*p += delta; // Relocate entry.
|
64
66
|
}
|
65
67
|
}
|
66
68
|
|
@@ -77,6 +79,11 @@ Address RelocInfo::target_address_address() {
|
|
77
79
|
}
|
78
80
|
|
79
81
|
|
82
|
+
int RelocInfo::target_address_size() {
|
83
|
+
return Assembler::kExternalTargetSize;
|
84
|
+
}
|
85
|
+
|
86
|
+
|
80
87
|
void RelocInfo::set_target_address(Address target) {
|
81
88
|
ASSERT(IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY);
|
82
89
|
Assembler::set_target_address_at(pc_, target);
|
@@ -148,6 +155,33 @@ bool RelocInfo::IsPatchedReturnSequence() {
|
|
148
155
|
}
|
149
156
|
|
150
157
|
|
158
|
+
bool RelocInfo::IsPatchedDebugBreakSlotSequence() {
|
159
|
+
return !Assembler::IsNop(pc());
|
160
|
+
}
|
161
|
+
|
162
|
+
|
163
|
+
void RelocInfo::Visit(ObjectVisitor* visitor) {
|
164
|
+
RelocInfo::Mode mode = rmode();
|
165
|
+
if (mode == RelocInfo::EMBEDDED_OBJECT) {
|
166
|
+
visitor->VisitPointer(target_object_address());
|
167
|
+
} else if (RelocInfo::IsCodeTarget(mode)) {
|
168
|
+
visitor->VisitCodeTarget(this);
|
169
|
+
} else if (mode == RelocInfo::EXTERNAL_REFERENCE) {
|
170
|
+
visitor->VisitExternalReference(target_reference_address());
|
171
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
172
|
+
} else if (Debug::has_break_points() &&
|
173
|
+
((RelocInfo::IsJSReturn(mode) &&
|
174
|
+
IsPatchedReturnSequence()) ||
|
175
|
+
(RelocInfo::IsDebugBreakSlot(mode) &&
|
176
|
+
IsPatchedDebugBreakSlotSequence()))) {
|
177
|
+
visitor->VisitDebugTarget(this);
|
178
|
+
#endif
|
179
|
+
} else if (mode == RelocInfo::RUNTIME_ENTRY) {
|
180
|
+
visitor->VisitRuntimeEntry(this);
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
|
151
185
|
Immediate::Immediate(int x) {
|
152
186
|
x_ = x;
|
153
187
|
rmode_ = RelocInfo::NONE;
|
@@ -159,11 +193,6 @@ Immediate::Immediate(const ExternalReference& ext) {
|
|
159
193
|
rmode_ = RelocInfo::EXTERNAL_REFERENCE;
|
160
194
|
}
|
161
195
|
|
162
|
-
Immediate::Immediate(const char* s) {
|
163
|
-
x_ = reinterpret_cast<int32_t>(s);
|
164
|
-
rmode_ = RelocInfo::EMBEDDED_STRING;
|
165
|
-
}
|
166
|
-
|
167
196
|
|
168
197
|
Immediate::Immediate(Label* internal_offset) {
|
169
198
|
x_ = reinterpret_cast<int32_t>(internal_offset);
|
@@ -36,6 +36,8 @@
|
|
36
36
|
|
37
37
|
#include "v8.h"
|
38
38
|
|
39
|
+
#if defined(V8_TARGET_ARCH_IA32)
|
40
|
+
|
39
41
|
#include "disassembler.h"
|
40
42
|
#include "macro-assembler.h"
|
41
43
|
#include "serialize.h"
|
@@ -119,7 +121,6 @@ void CpuFeatures::Probe() {
|
|
119
121
|
CodeDesc desc;
|
120
122
|
assm.GetCode(&desc);
|
121
123
|
Object* code = Heap::CreateCode(desc,
|
122
|
-
NULL,
|
123
124
|
Code::ComputeFlags(Code::STUB),
|
124
125
|
Handle<Code>::null());
|
125
126
|
if (!code->IsCode()) return;
|
@@ -160,6 +161,15 @@ const int RelocInfo::kApplyMask =
|
|
160
161
|
1 << RelocInfo::JS_RETURN | 1 << RelocInfo::INTERNAL_REFERENCE;
|
161
162
|
|
162
163
|
|
164
|
+
bool RelocInfo::IsCodedSpecially() {
|
165
|
+
// The deserializer needs to know whether a pointer is specially coded. Being
|
166
|
+
// specially coded on IA32 means that it is a relative address, as used by
|
167
|
+
// branch instructions. These are also the ones that need changing when a
|
168
|
+
// code object moves.
|
169
|
+
return (1 << rmode_) & kApplyMask;
|
170
|
+
}
|
171
|
+
|
172
|
+
|
163
173
|
void RelocInfo::PatchCode(byte* instructions, int instruction_count) {
|
164
174
|
// Patch the code at the current address with the supplied instructions.
|
165
175
|
for (int i = 0; i < instruction_count; i++) {
|
@@ -195,6 +205,7 @@ void RelocInfo::PatchCodeWithCall(Address target, int guard_bytes) {
|
|
195
205
|
patcher.masm()->SizeOfCodeGeneratedSince(&check_codesize));
|
196
206
|
|
197
207
|
// Add the requested number of int3 instructions after the call.
|
208
|
+
ASSERT_GE(guard_bytes, 0);
|
198
209
|
for (int i = 0; i < guard_bytes; i++) {
|
199
210
|
patcher.masm()->int3();
|
200
211
|
}
|
@@ -366,6 +377,11 @@ void Assembler::Align(int m) {
|
|
366
377
|
}
|
367
378
|
|
368
379
|
|
380
|
+
void Assembler::CodeTargetAlign() {
|
381
|
+
Align(16); // Preferred alignment of jump targets on ia32.
|
382
|
+
}
|
383
|
+
|
384
|
+
|
369
385
|
void Assembler::cpuid() {
|
370
386
|
ASSERT(CpuFeatures::IsEnabled(CPUID));
|
371
387
|
EnsureSpace ensure_space(this);
|
@@ -433,7 +449,7 @@ void Assembler::push(const Operand& src) {
|
|
433
449
|
|
434
450
|
void Assembler::pop(Register dst) {
|
435
451
|
ASSERT(reloc_info_writer.last_pc() != NULL);
|
436
|
-
if (
|
452
|
+
if (FLAG_peephole_optimization && (reloc_info_writer.last_pc() <= last_pc_)) {
|
437
453
|
// (last_pc_ != NULL) is rolled into the above check.
|
438
454
|
// If a last_pc_ is set, we need to make sure that there has not been any
|
439
455
|
// relocation information generated between the last instruction and this
|
@@ -443,7 +459,7 @@ void Assembler::pop(Register dst) {
|
|
443
459
|
int push_reg_code = instr & 0x7;
|
444
460
|
if (push_reg_code == dst.code()) {
|
445
461
|
pc_ = last_pc_;
|
446
|
-
if (
|
462
|
+
if (FLAG_print_peephole_optimization) {
|
447
463
|
PrintF("%d push/pop (same reg) eliminated\n", pc_offset());
|
448
464
|
}
|
449
465
|
} else {
|
@@ -452,7 +468,7 @@ void Assembler::pop(Register dst) {
|
|
452
468
|
Register src = { push_reg_code };
|
453
469
|
EnsureSpace ensure_space(this);
|
454
470
|
emit_operand(dst, Operand(src));
|
455
|
-
if (
|
471
|
+
if (FLAG_print_peephole_optimization) {
|
456
472
|
PrintF("%d push/pop (reg->reg) eliminated\n", pc_offset());
|
457
473
|
}
|
458
474
|
}
|
@@ -466,7 +482,7 @@ void Assembler::pop(Register dst) {
|
|
466
482
|
last_pc_[0] = 0x8b;
|
467
483
|
last_pc_[1] = op1;
|
468
484
|
last_pc_ = NULL;
|
469
|
-
if (
|
485
|
+
if (FLAG_print_peephole_optimization) {
|
470
486
|
PrintF("%d push/pop (op->reg) eliminated\n", pc_offset());
|
471
487
|
}
|
472
488
|
return;
|
@@ -483,7 +499,7 @@ void Assembler::pop(Register dst) {
|
|
483
499
|
last_pc_[1] = 0xc4;
|
484
500
|
last_pc_[2] = 0x04;
|
485
501
|
last_pc_ = NULL;
|
486
|
-
if (
|
502
|
+
if (FLAG_print_peephole_optimization) {
|
487
503
|
PrintF("%d push/pop (mov-pop) eliminated\n", pc_offset());
|
488
504
|
}
|
489
505
|
return;
|
@@ -498,7 +514,7 @@ void Assembler::pop(Register dst) {
|
|
498
514
|
// change to
|
499
515
|
// 31c0 xor eax,eax
|
500
516
|
last_pc_ = NULL;
|
501
|
-
if (
|
517
|
+
if (FLAG_print_peephole_optimization) {
|
502
518
|
PrintF("%d push/pop (imm->reg) eliminated\n", pc_offset());
|
503
519
|
}
|
504
520
|
return;
|
@@ -521,7 +537,7 @@ void Assembler::pop(Register dst) {
|
|
521
537
|
// b8XX000000 mov eax,0x000000XX
|
522
538
|
}
|
523
539
|
last_pc_ = NULL;
|
524
|
-
if (
|
540
|
+
if (FLAG_print_peephole_optimization) {
|
525
541
|
PrintF("%d push/pop (imm->reg) eliminated\n", pc_offset());
|
526
542
|
}
|
527
543
|
return;
|
@@ -533,7 +549,7 @@ void Assembler::pop(Register dst) {
|
|
533
549
|
last_pc_ = NULL;
|
534
550
|
// change to
|
535
551
|
// b8XXXXXXXX mov eax,0xXXXXXXXX
|
536
|
-
if (
|
552
|
+
if (FLAG_print_peephole_optimization) {
|
537
553
|
PrintF("%d push/pop (imm->reg) eliminated\n", pc_offset());
|
538
554
|
}
|
539
555
|
return;
|
@@ -776,6 +792,13 @@ void Assembler::rep_stos() {
|
|
776
792
|
}
|
777
793
|
|
778
794
|
|
795
|
+
void Assembler::stos() {
|
796
|
+
EnsureSpace ensure_space(this);
|
797
|
+
last_pc_ = pc_;
|
798
|
+
EMIT(0xAB);
|
799
|
+
}
|
800
|
+
|
801
|
+
|
779
802
|
void Assembler::xchg(Register dst, Register src) {
|
780
803
|
EnsureSpace ensure_space(this);
|
781
804
|
last_pc_ = pc_;
|
@@ -813,7 +836,7 @@ void Assembler::add(Register dst, const Operand& src) {
|
|
813
836
|
|
814
837
|
void Assembler::add(const Operand& dst, const Immediate& x) {
|
815
838
|
ASSERT(reloc_info_writer.last_pc() != NULL);
|
816
|
-
if (
|
839
|
+
if (FLAG_peephole_optimization && (reloc_info_writer.last_pc() <= last_pc_)) {
|
817
840
|
byte instr = last_pc_[0];
|
818
841
|
if ((instr & 0xf8) == 0x50) {
|
819
842
|
// Last instruction was a push. Check whether this is a pop without a
|
@@ -822,7 +845,7 @@ void Assembler::add(const Operand& dst, const Immediate& x) {
|
|
822
845
|
(x.x_ == kPointerSize) && (x.rmode_ == RelocInfo::NONE)) {
|
823
846
|
pc_ = last_pc_;
|
824
847
|
last_pc_ = NULL;
|
825
|
-
if (
|
848
|
+
if (FLAG_print_peephole_optimization) {
|
826
849
|
PrintF("%d push/pop(noreg) eliminated\n", pc_offset());
|
827
850
|
}
|
828
851
|
return;
|
@@ -1310,6 +1333,15 @@ void Assembler::test(const Operand& op, const Immediate& imm) {
|
|
1310
1333
|
}
|
1311
1334
|
|
1312
1335
|
|
1336
|
+
void Assembler::test_b(const Operand& op, uint8_t imm8) {
|
1337
|
+
EnsureSpace ensure_space(this);
|
1338
|
+
last_pc_ = pc_;
|
1339
|
+
EMIT(0xF6);
|
1340
|
+
emit_operand(eax, op);
|
1341
|
+
EMIT(imm8);
|
1342
|
+
}
|
1343
|
+
|
1344
|
+
|
1313
1345
|
void Assembler::xor_(Register dst, int32_t imm32) {
|
1314
1346
|
EnsureSpace ensure_space(this);
|
1315
1347
|
last_pc_ = pc_;
|
@@ -2126,17 +2158,6 @@ void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) {
|
|
2126
2158
|
}
|
2127
2159
|
|
2128
2160
|
|
2129
|
-
void Assembler::comisd(XMMRegister dst, XMMRegister src) {
|
2130
|
-
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2131
|
-
EnsureSpace ensure_space(this);
|
2132
|
-
last_pc_ = pc_;
|
2133
|
-
EMIT(0x66);
|
2134
|
-
EMIT(0x0F);
|
2135
|
-
EMIT(0x2F);
|
2136
|
-
emit_sse_operand(dst, src);
|
2137
|
-
}
|
2138
|
-
|
2139
|
-
|
2140
2161
|
void Assembler::ucomisd(XMMRegister dst, XMMRegister src) {
|
2141
2162
|
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2142
2163
|
EnsureSpace ensure_space(this);
|
@@ -2203,6 +2224,40 @@ void Assembler::movdqu(XMMRegister dst, const Operand& src) {
|
|
2203
2224
|
}
|
2204
2225
|
|
2205
2226
|
|
2227
|
+
void Assembler::movntdqa(XMMRegister dst, const Operand& src) {
|
2228
|
+
ASSERT(CpuFeatures::IsEnabled(SSE4_1));
|
2229
|
+
EnsureSpace ensure_space(this);
|
2230
|
+
last_pc_ = pc_;
|
2231
|
+
EMIT(0x66);
|
2232
|
+
EMIT(0x0F);
|
2233
|
+
EMIT(0x38);
|
2234
|
+
EMIT(0x2A);
|
2235
|
+
emit_sse_operand(dst, src);
|
2236
|
+
}
|
2237
|
+
|
2238
|
+
|
2239
|
+
void Assembler::movntdq(const Operand& dst, XMMRegister src) {
|
2240
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2241
|
+
EnsureSpace ensure_space(this);
|
2242
|
+
last_pc_ = pc_;
|
2243
|
+
EMIT(0x66);
|
2244
|
+
EMIT(0x0F);
|
2245
|
+
EMIT(0xE7);
|
2246
|
+
emit_sse_operand(src, dst);
|
2247
|
+
}
|
2248
|
+
|
2249
|
+
|
2250
|
+
void Assembler::prefetch(const Operand& src, int level) {
|
2251
|
+
ASSERT(is_uint2(level));
|
2252
|
+
EnsureSpace ensure_space(this);
|
2253
|
+
last_pc_ = pc_;
|
2254
|
+
EMIT(0x0F);
|
2255
|
+
EMIT(0x18);
|
2256
|
+
XMMRegister code = { level }; // Emit hint number in Reg position of RegR/M.
|
2257
|
+
emit_sse_operand(code, src);
|
2258
|
+
}
|
2259
|
+
|
2260
|
+
|
2206
2261
|
void Assembler::movdbl(XMMRegister dst, const Operand& src) {
|
2207
2262
|
EnsureSpace ensure_space(this);
|
2208
2263
|
last_pc_ = pc_;
|
@@ -2282,7 +2337,6 @@ void Assembler::ptest(XMMRegister dst, XMMRegister src) {
|
|
2282
2337
|
emit_sse_operand(dst, src);
|
2283
2338
|
}
|
2284
2339
|
|
2285
|
-
|
2286
2340
|
void Assembler::emit_sse_operand(XMMRegister reg, const Operand& adr) {
|
2287
2341
|
Register ireg = { reg.code() };
|
2288
2342
|
emit_operand(ireg, adr);
|
@@ -2311,6 +2365,13 @@ void Assembler::RecordJSReturn() {
|
|
2311
2365
|
}
|
2312
2366
|
|
2313
2367
|
|
2368
|
+
void Assembler::RecordDebugBreakSlot() {
|
2369
|
+
WriteRecordedPositions();
|
2370
|
+
EnsureSpace ensure_space(this);
|
2371
|
+
RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT);
|
2372
|
+
}
|
2373
|
+
|
2374
|
+
|
2314
2375
|
void Assembler::RecordComment(const char* msg) {
|
2315
2376
|
if (FLAG_debug_code) {
|
2316
2377
|
EnsureSpace ensure_space(this);
|
@@ -2333,13 +2394,16 @@ void Assembler::RecordStatementPosition(int pos) {
|
|
2333
2394
|
}
|
2334
2395
|
|
2335
2396
|
|
2336
|
-
|
2397
|
+
bool Assembler::WriteRecordedPositions() {
|
2398
|
+
bool written = false;
|
2399
|
+
|
2337
2400
|
// Write the statement position if it is different from what was written last
|
2338
2401
|
// time.
|
2339
2402
|
if (current_statement_position_ != written_statement_position_) {
|
2340
2403
|
EnsureSpace ensure_space(this);
|
2341
2404
|
RecordRelocInfo(RelocInfo::STATEMENT_POSITION, current_statement_position_);
|
2342
2405
|
written_statement_position_ = current_statement_position_;
|
2406
|
+
written = true;
|
2343
2407
|
}
|
2344
2408
|
|
2345
2409
|
// Write the position if it is different from what was written last time and
|
@@ -2349,7 +2413,11 @@ void Assembler::WriteRecordedPositions() {
|
|
2349
2413
|
EnsureSpace ensure_space(this);
|
2350
2414
|
RecordRelocInfo(RelocInfo::POSITION, current_position_);
|
2351
2415
|
written_position_ = current_position_;
|
2416
|
+
written = true;
|
2352
2417
|
}
|
2418
|
+
|
2419
|
+
// Return whether something was written.
|
2420
|
+
return written;
|
2353
2421
|
}
|
2354
2422
|
|
2355
2423
|
|
@@ -2528,3 +2596,5 @@ void LogGeneratedCodeCoverage(const char* file_line) {
|
|
2528
2596
|
#endif
|
2529
2597
|
|
2530
2598
|
} } // namespace v8::internal
|
2599
|
+
|
2600
|
+
#endif // V8_TARGET_ARCH_IA32
|
@@ -146,7 +146,10 @@ enum Condition {
|
|
146
146
|
// Negation of the default no_condition (-1) results in a non-default
|
147
147
|
// no_condition value (-2). As long as tests for no_condition check
|
148
148
|
// for condition < 0, this will work as expected.
|
149
|
-
inline Condition NegateCondition(Condition cc)
|
149
|
+
inline Condition NegateCondition(Condition cc) {
|
150
|
+
return static_cast<Condition>(cc ^ 1);
|
151
|
+
}
|
152
|
+
|
150
153
|
|
151
154
|
// Corresponds to transposing the operands of a comparison.
|
152
155
|
inline Condition ReverseCondition(Condition cc) {
|
@@ -172,12 +175,14 @@ inline Condition ReverseCondition(Condition cc) {
|
|
172
175
|
};
|
173
176
|
}
|
174
177
|
|
178
|
+
|
175
179
|
enum Hint {
|
176
180
|
no_hint = 0,
|
177
181
|
not_taken = 0x2e,
|
178
182
|
taken = 0x3e
|
179
183
|
};
|
180
184
|
|
185
|
+
|
181
186
|
// The result of negating a hint is as if the corresponding condition
|
182
187
|
// were negated by NegateCondition. That is, no_hint is mapped to
|
183
188
|
// itself and not_taken and taken are mapped to each other.
|
@@ -194,7 +199,6 @@ inline Hint NegateHint(Hint hint) {
|
|
194
199
|
class Immediate BASE_EMBEDDED {
|
195
200
|
public:
|
196
201
|
inline explicit Immediate(int x);
|
197
|
-
inline explicit Immediate(const char* s);
|
198
202
|
inline explicit Immediate(const ExternalReference& ext);
|
199
203
|
inline explicit Immediate(Handle<Object> handle);
|
200
204
|
inline explicit Immediate(Smi* value);
|
@@ -469,9 +473,16 @@ class Assembler : public Malloced {
|
|
469
473
|
// to jump to.
|
470
474
|
static const int kPatchReturnSequenceAddressOffset = 1; // JMP imm32.
|
471
475
|
|
476
|
+
// Distance between start of patched debug break slot and the emitted address
|
477
|
+
// to jump to.
|
478
|
+
static const int kPatchDebugBreakSlotAddressOffset = 1; // JMP imm32.
|
479
|
+
|
472
480
|
static const int kCallInstructionLength = 5;
|
473
481
|
static const int kJSReturnSequenceLength = 6;
|
474
482
|
|
483
|
+
// The debug break slot must be able to contain a call instruction.
|
484
|
+
static const int kDebugBreakSlotLength = kCallInstructionLength;
|
485
|
+
|
475
486
|
// ---------------------------------------------------------------------------
|
476
487
|
// Code generation
|
477
488
|
//
|
@@ -496,6 +507,8 @@ class Assembler : public Malloced {
|
|
496
507
|
// possible to align the pc offset to a multiple
|
497
508
|
// of m. m must be a power of 2.
|
498
509
|
void Align(int m);
|
510
|
+
// Aligns code to something that's optimal for a jump target for the platform.
|
511
|
+
void CodeTargetAlign();
|
499
512
|
|
500
513
|
// Stack
|
501
514
|
void pushad();
|
@@ -551,6 +564,7 @@ class Assembler : public Malloced {
|
|
551
564
|
// Repetitive string instructions.
|
552
565
|
void rep_movs();
|
553
566
|
void rep_stos();
|
567
|
+
void stos();
|
554
568
|
|
555
569
|
// Exchange two registers
|
556
570
|
void xchg(Register dst, Register src);
|
@@ -637,6 +651,7 @@ class Assembler : public Malloced {
|
|
637
651
|
void test(Register reg, const Operand& op);
|
638
652
|
void test_b(Register reg, const Operand& op);
|
639
653
|
void test(const Operand& op, const Immediate& imm);
|
654
|
+
void test_b(const Operand& op, uint8_t imm8);
|
640
655
|
|
641
656
|
void xor_(Register dst, int32_t imm32);
|
642
657
|
void xor_(Register dst, const Operand& src);
|
@@ -771,7 +786,6 @@ class Assembler : public Malloced {
|
|
771
786
|
void xorpd(XMMRegister dst, XMMRegister src);
|
772
787
|
void sqrtsd(XMMRegister dst, XMMRegister src);
|
773
788
|
|
774
|
-
void comisd(XMMRegister dst, XMMRegister src);
|
775
789
|
void ucomisd(XMMRegister dst, XMMRegister src);
|
776
790
|
void movmskpd(Register dst, XMMRegister src);
|
777
791
|
|
@@ -790,6 +804,15 @@ class Assembler : public Malloced {
|
|
790
804
|
void pxor(XMMRegister dst, XMMRegister src);
|
791
805
|
void ptest(XMMRegister dst, XMMRegister src);
|
792
806
|
|
807
|
+
// Parallel XMM operations.
|
808
|
+
void movntdqa(XMMRegister src, const Operand& dst);
|
809
|
+
void movntdq(const Operand& dst, XMMRegister src);
|
810
|
+
// Prefetch src position into cache level.
|
811
|
+
// Level 1, 2 or 3 specifies CPU cache level. Level 0 specifies a
|
812
|
+
// non-temporal
|
813
|
+
void prefetch(const Operand& src, int level);
|
814
|
+
// TODO(lrn): Need SFENCE for movnt?
|
815
|
+
|
793
816
|
// Debugging
|
794
817
|
void Print();
|
795
818
|
|
@@ -799,13 +822,16 @@ class Assembler : public Malloced {
|
|
799
822
|
// Mark address of the ExitJSFrame code.
|
800
823
|
void RecordJSReturn();
|
801
824
|
|
825
|
+
// Mark address of a debug break slot.
|
826
|
+
void RecordDebugBreakSlot();
|
827
|
+
|
802
828
|
// Record a comment relocation entry that can be used by a disassembler.
|
803
829
|
// Use --debug_code to enable.
|
804
830
|
void RecordComment(const char* msg);
|
805
831
|
|
806
832
|
void RecordPosition(int pos);
|
807
833
|
void RecordStatementPosition(int pos);
|
808
|
-
|
834
|
+
bool WriteRecordedPositions();
|
809
835
|
|
810
836
|
// Writes a single word of data in the code stream.
|
811
837
|
// Used for inline tables, e.g., jump-tables.
|
@@ -823,6 +849,8 @@ class Assembler : public Malloced {
|
|
823
849
|
// Get the number of bytes available in the buffer.
|
824
850
|
inline int available_space() const { return reloc_info_writer.pos() - pc_; }
|
825
851
|
|
852
|
+
static bool IsNop(Address addr) { return *addr == 0x90; }
|
853
|
+
|
826
854
|
// Avoid overflows for displacements etc.
|
827
855
|
static const int kMaximalBufferSize = 512*MB;
|
828
856
|
static const int kMinimalBufferSize = 4*KB;
|