therubyracer 0.6.3 → 0.7.0.pre
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/Rakefile +10 -9
- data/ext/v8/callbacks.cpp +15 -8
- data/ext/v8/converters.cpp +7 -8
- data/ext/v8/converters.h +0 -2
- data/ext/v8/extconf.rb +2 -0
- data/ext/v8/rr.cpp +169 -0
- data/ext/v8/rr.h +34 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/AUTHORS +8 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/ChangeLog +198 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/LICENSE +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/SConstruct +152 -38
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8-debug.h +52 -4
- data/ext/v8/upstream/2.1.10/include/v8-profiler.h +176 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8.h +227 -48
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/SConscript +60 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.cc +5 -39
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.cc +477 -57
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.h +8 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apinatives.js +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apiutils.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arguments.h +5 -6
- data/ext/v8/upstream/{2.0.6/src/arm/assembler-thumb2-inl.h → 2.1.10/src/arm/assembler-arm-inl.h} +42 -27
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.cc +430 -216
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.h +199 -110
- data/ext/v8/upstream/{2.0.6/src/arm/assembler-arm-inl.h → 2.1.10/src/arm/assembler-thumb2-inl.h} +4 -18
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.cc +142 -85
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.h +18 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/builtins-arm.cc +127 -87
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm-inl.h +3 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm.cc +4634 -1427
- data/ext/v8/upstream/2.1.10/src/arm/codegen-arm.h +946 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.cc +21 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.h +39 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/cpu-arm.cc +9 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/debug-arm.cc +34 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/disasm-arm.cc +262 -117
- data/ext/v8/upstream/2.1.10/src/arm/fast-codegen-arm.cc +238 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/arm/fast-codegen-arm.cc → 2.1.10/src/arm/full-codegen-arm.cc} +453 -283
- data/ext/v8/upstream/2.1.10/src/arm/ic-arm.cc +1833 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/jump-target-arm.cc +3 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.cc +564 -104
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.h +255 -46
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.cc +78 -104
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.h +6 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm-inl.h +0 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.h +2 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.cc +557 -180
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.h +52 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/stub-cache-arm.cc +904 -240
- data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.cc +668 -0
- data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.h +503 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/array.js +82 -109
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.cc +49 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.h +27 -5
- data/ext/v8/upstream/2.1.10/src/ast.cc +1138 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ast.h +354 -53
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.cc +609 -501
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.h +27 -8
- data/ext/v8/upstream/2.1.10/src/builtins.cc +1512 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/builtins.h +41 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bytecodes-irregexp.h +0 -0
- data/ext/v8/upstream/2.1.10/src/cached-powers.h +119 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.h +25 -1
- data/ext/v8/upstream/2.1.10/src/circular-queue-inl.h +101 -0
- data/ext/v8/upstream/2.1.10/src/circular-queue.cc +121 -0
- data/ext/v8/upstream/2.1.10/src/circular-queue.h +129 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.cc +23 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.h +16 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen-inl.h +6 -34
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.cc +73 -92
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.h +164 -68
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.cc +117 -73
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.h +18 -17
- data/ext/v8/upstream/2.1.10/src/compiler.cc +623 -0
- data/ext/v8/upstream/2.1.10/src/compiler.h +299 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.h +8 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions-inl.h +28 -13
- data/ext/v8/upstream/2.1.10/src/conversions.cc +1105 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions.h +9 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.h +1 -1
- data/ext/v8/upstream/2.1.10/src/cpu-profiler-inl.h +99 -0
- data/ext/v8/upstream/2.1.10/src/cpu-profiler.cc +494 -0
- data/ext/v8/upstream/2.1.10/src/cpu-profiler.h +277 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/cpu.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.cc +15 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-posix.cc +18 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-readline.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-windows.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.cc +10 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.js +43 -38
- data/ext/v8/upstream/2.1.10/src/data-flow.cc +755 -0
- data/ext/v8/upstream/2.1.10/src/data-flow.h +278 -0
- data/ext/v8/upstream/{2.0.6/src/date-delay.js → 2.1.10/src/date.js} +100 -110
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser-inl.h +11 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.cc +24 -26
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.h +8 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.cc +3 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/debug-delay.js → 2.1.10/src/debug-debugger.js} +111 -15
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.cc +156 -96
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.h +53 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disasm.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.cc +2 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.h +0 -0
- data/ext/v8/upstream/2.1.10/src/diy-fp.cc +58 -0
- data/ext/v8/upstream/2.1.10/src/diy-fp.h +117 -0
- data/ext/v8/upstream/2.1.10/src/double.h +169 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dtoa-config.c +4 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.cc +22 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.h +17 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.cc +70 -46
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.h +27 -17
- data/ext/v8/upstream/2.1.10/src/fast-codegen.cc +746 -0
- data/ext/v8/upstream/2.1.10/src/fast-codegen.h +161 -0
- data/ext/v8/upstream/2.1.10/src/fast-dtoa.cc +512 -0
- data/ext/v8/upstream/2.1.10/src/fast-dtoa.h +59 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flag-definitions.h +32 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.h +0 -0
- data/ext/v8/upstream/2.1.10/src/flow-graph.cc +763 -0
- data/ext/v8/upstream/2.1.10/src/flow-graph.h +180 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.cc +1 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.h +49 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames-inl.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.cc +91 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.h +24 -2
- data/ext/v8/upstream/{2.0.6/src/fast-codegen.cc → 2.1.10/src/full-codegen.cc} +549 -198
- data/ext/v8/upstream/{2.0.6/src/fast-codegen.h → 2.1.10/src/full-codegen.h} +109 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/globals.h +67 -43
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.cc +124 -129
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.h +33 -15
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-inl.h +56 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.cc +413 -221
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.h +192 -67
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32-inl.h +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.cc +187 -32
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.h +31 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/builtins-ia32.cc +160 -133
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32.cc +5533 -2177
- data/ext/v8/upstream/{2.0.6/src/x64/codegen-x64.h → 2.1.10/src/ia32/codegen-ia32.h} +453 -134
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/cpu-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/debug-ia32.cc +63 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/disasm-ia32.cc +99 -16
- data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.cc +950 -0
- data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.h +155 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/ia32/fast-codegen-ia32.cc → 2.1.10/src/ia32/full-codegen-ia32.cc} +454 -253
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/ic-ia32.cc +545 -390
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/jump-target-ia32.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.cc +330 -139
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.h +96 -30
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.cc +73 -89
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.h +6 -21
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.cc +59 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/stub-cache-ia32.cc +745 -303
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.cc +278 -71
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.h +78 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.cc +172 -89
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.h +51 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/json-delay.js → 2.1.10/src/json.js} +26 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.cc +151 -118
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.h +31 -7
- data/ext/v8/upstream/2.1.10/src/jump-target-heavy-inl.h +51 -0
- data/ext/v8/upstream/{2.0.6/src/jump-target.cc → 2.1.10/src/jump-target-heavy.cc} +164 -184
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target-inl.h +8 -9
- data/ext/v8/upstream/{2.0.6/src/usage-analyzer.h → 2.1.10/src/jump-target-light-inl.h} +9 -7
- data/ext/v8/upstream/2.1.10/src/jump-target-light.cc +86 -0
- data/ext/v8/upstream/2.1.10/src/jump-target.cc +155 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target.h +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list.h +2 -1
- data/ext/v8/upstream/2.1.10/src/liveedit-debugger.js +944 -0
- data/ext/v8/upstream/2.1.10/src/liveedit.cc +1468 -0
- data/ext/v8/upstream/2.1.10/src/liveedit.h +170 -0
- data/ext/v8/upstream/2.1.10/src/log-inl.h +59 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.cc +3 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.h +1 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.cc +198 -95
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.h +50 -49
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macro-assembler.h +9 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macros.py +30 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.cc +464 -152
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.h +41 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/math.js +9 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/memory.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.js +46 -9
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips-inl.h +215 -0
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.cc +1208 -0
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.h +665 -0
- data/ext/v8/upstream/2.1.10/src/mips/builtins-mips.cc +202 -0
- data/ext/v8/upstream/2.1.10/src/mips/codegen-mips-inl.h +70 -0
- data/ext/v8/upstream/2.1.10/src/mips/codegen-mips.cc +1428 -0
- data/ext/v8/upstream/{2.0.6/src/arm/codegen-arm.h → 2.1.10/src/mips/codegen-mips.h} +103 -205
- data/ext/v8/upstream/2.1.10/src/mips/constants-mips.cc +323 -0
- data/ext/v8/upstream/2.1.10/src/mips/constants-mips.h +525 -0
- data/ext/v8/upstream/2.1.10/src/mips/cpu-mips.cc +69 -0
- data/ext/v8/upstream/2.1.10/src/mips/debug-mips.cc +128 -0
- data/ext/v8/upstream/2.1.10/src/mips/disasm-mips.cc +784 -0
- data/ext/v8/upstream/2.1.10/src/mips/fast-codegen-mips.cc +74 -0
- data/ext/v8/upstream/2.1.10/src/mips/frames-mips.cc +99 -0
- data/ext/v8/upstream/2.1.10/src/mips/frames-mips.h +164 -0
- data/ext/v8/upstream/2.1.10/src/mips/full-codegen-mips.cc +273 -0
- data/ext/v8/upstream/2.1.10/src/mips/ic-mips.cc +217 -0
- data/ext/v8/upstream/2.1.10/src/mips/jump-target-mips.cc +172 -0
- data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.cc +1323 -0
- data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.h +461 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips-inl.h +137 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.cc +60 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.h +46 -0
- data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.cc +1648 -0
- data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.h +311 -0
- data/ext/v8/upstream/2.1.10/src/mips/stub-cache-mips.cc +400 -0
- data/ext/v8/upstream/2.1.10/src/mips/virtual-frame-mips.cc +316 -0
- data/ext/v8/upstream/{2.0.6/src/arm/virtual-frame-arm.h → 2.1.10/src/mips/virtual-frame-mips.h} +87 -71
- data/ext/v8/upstream/{2.0.6/src/mirror-delay.js → 2.1.10/src/mirror-debugger.js} +51 -45
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mksnapshot.cc +97 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/natives.h +6 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-debug.cc +47 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-inl.h +154 -38
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.cc +528 -280
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.h +302 -95
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.cc +25 -33
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.h +9 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.cc +444 -72
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.h +4 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-freebsd.cc +32 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-linux.cc +59 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-macos.cc +30 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-nullos.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-openbsd.cc +21 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-posix.cc +0 -18
- data/ext/v8/upstream/2.1.10/src/platform-solaris.cc +607 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-win32.cc +16 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform.h +25 -8
- data/ext/v8/upstream/2.1.10/src/powers-ten.h +2461 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.cc +49 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.h +3 -1
- data/ext/v8/upstream/2.1.10/src/profile-generator-inl.h +124 -0
- data/ext/v8/upstream/2.1.10/src/profile-generator.cc +583 -0
- data/ext/v8/upstream/2.1.10/src/profile-generator.h +364 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.cc +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.h +12 -24
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp-inl.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.cc +33 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.h +12 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/regexp-delay.js → 2.1.10/src/regexp.js} +180 -58
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator-inl.h +68 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.cc +5 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.h +42 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.cc +110 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.cc +2733 -623
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.h +43 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.js +46 -35
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.cc +278 -36
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.h +97 -26
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.cc +3 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.h +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.cc +11 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.h +0 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.cc +298 -175
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.h +184 -40
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/shell.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/simulator.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/smart-pointer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot-common.cc +16 -31
- data/ext/v8/upstream/2.1.10/src/snapshot-empty.cc +50 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot.h +13 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces-inl.h +35 -27
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.cc +256 -42
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.h +136 -42
- data/ext/v8/upstream/{2.0.6/src/zone-inl.h → 2.1.10/src/splay-tree-inl.h} +102 -89
- data/ext/v8/upstream/2.1.10/src/splay-tree.h +203 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string.js +260 -149
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.cc +195 -69
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.h +127 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/COPYING +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/dtoa.c +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/valgrind/valgrind.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.cc +26 -31
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.h +3 -4
- data/ext/v8/upstream/2.1.10/src/type-info.cc +53 -0
- data/ext/v8/upstream/2.1.10/src/type-info.h +244 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/uri.js +6 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.cc +0 -37
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.h +121 -50
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.h +130 -98
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.cc +42 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.h +4 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8natives.js +202 -37
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.cc +11 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.h +15 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.cc +7 -51
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.h +5 -35
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.cc +3 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.h +0 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-heavy-inl.h +152 -0
- data/ext/v8/upstream/{2.0.6/src/virtual-frame.cc → 2.1.10/src/virtual-frame-heavy.cc} +107 -176
- data/ext/v8/upstream/2.1.10/src/virtual-frame-inl.h +39 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-light-inl.h +69 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-light.cc +49 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame.cc +49 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/virtual-frame.h +2 -0
- data/ext/v8/upstream/{2.0.6/src/log-inl.h → 2.1.10/src/vm-state-inl.h} +28 -20
- data/ext/v8/upstream/{2.0.6/src/snapshot-empty.cc → 2.1.10/src/vm-state.cc} +5 -6
- data/ext/v8/upstream/2.1.10/src/vm-state.h +75 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64-inl.h +11 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.cc +285 -93
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.h +81 -78
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/builtins-x64.cc +130 -87
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64.cc +4520 -1317
- data/ext/v8/upstream/{2.0.6/src/ia32/codegen-ia32.h → 2.1.10/src/x64/codegen-x64.h} +362 -141
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/cpu-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/debug-x64.cc +20 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/disasm-x64.cc +121 -44
- data/ext/v8/upstream/2.1.10/src/x64/fast-codegen-x64.cc +246 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/x64/fast-codegen-x64.cc → 2.1.10/src/x64/full-codegen-x64.cc} +404 -231
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/ic-x64.cc +346 -117
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/jump-target-x64.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.cc +537 -181
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.h +140 -34
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.cc +74 -96
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.h +8 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64-inl.h +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.cc +3 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/stub-cache-x64.cc +785 -288
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.cc +128 -52
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.h +40 -19
- data/ext/v8/upstream/2.1.10/src/zone-inl.h +82 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.h +6 -90
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/codemap.js +12 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/consarray.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/csvparser.js +22 -37
- data/ext/v8/upstream/2.1.10/tools/generate-ten-powers.scm +286 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/gyp/v8.gyp +86 -24
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/js2c.py +22 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/jsmin.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor +10 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/logreader.js +34 -16
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-nm +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-tick-processor +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/annotate +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/common +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/dump +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/report +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/reset +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/run +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/shutdown +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/start +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/presubmit.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/process-heap-prof.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile.js +70 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile_view.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/run-valgrind.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/stats-viewer.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/test.py +7 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor-driver.js +7 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.js +140 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.py +40 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/utils.py +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/README.txt +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/arm.vsprops +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/common.vsprops +1 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_arm.vcproj +193 -199
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_x64.vcproj +16 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8js2c.cmd +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/debug.vsprops +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/ia32.vsprops +5 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/js2c.cmd +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/release.vsprops +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.vcproj +11 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.vcproj +227 -223
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base.vcproj +137 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_arm.vcproj +116 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_x64.vcproj +125 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest.vcproj +12 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_arm.vcproj +12 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_x64.vcproj +11 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_arm.vcproj +145 -151
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_x64.vcproj +16 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_arm.vcproj +145 -151
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_x64.vcproj +16 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.vcproj +11 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/x64.vsprops +5 -1
- data/ext/v8/upstream/2.1.10/tools/windows-tick-processor.bat +29 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/windows-tick-processor.py +0 -0
- data/ext/v8/upstream/Makefile +8 -2
- data/ext/v8/v8.cpp +21 -73
- data/ext/v8/v8_array.cpp +56 -0
- data/ext/v8/v8_array.h +8 -0
- data/ext/v8/v8_callbacks.cpp +121 -0
- data/ext/v8/v8_callbacks.h +8 -0
- data/ext/v8/v8_cxt.cpp +74 -77
- data/ext/v8/v8_cxt.h +2 -9
- data/ext/v8/v8_date.cpp +26 -0
- data/ext/v8/v8_date.h +6 -0
- data/ext/v8/v8_exception.cpp +55 -0
- data/ext/v8/v8_exception.h +6 -0
- data/ext/v8/v8_external.cpp +50 -0
- data/ext/v8/v8_external.h +8 -0
- data/ext/v8/v8_func.cpp +76 -18
- data/ext/v8/v8_func.h +5 -4
- data/ext/v8/v8_msg.cpp +55 -46
- data/ext/v8/v8_msg.h +3 -11
- data/ext/v8/v8_obj.cpp +67 -36
- data/ext/v8/v8_obj.h +6 -8
- data/ext/v8/v8_ref.cpp +25 -9
- data/ext/v8/v8_ref.h +3 -5
- data/ext/v8/v8_script.cpp +17 -10
- data/ext/v8/v8_script.h +3 -3
- data/ext/v8/v8_str.cpp +34 -6
- data/ext/v8/v8_str.h +4 -2
- data/ext/v8/v8_template.cpp +195 -33
- data/ext/v8/v8_template.h +4 -5
- data/ext/v8/v8_try_catch.cpp +99 -0
- data/ext/v8/v8_try_catch.h +5 -0
- data/ext/v8/v8_value.cpp +164 -0
- data/ext/v8/v8_value.h +10 -0
- data/lib/v8.rb +3 -1
- data/lib/v8/access.rb +60 -0
- data/lib/v8/array.rb +15 -0
- data/lib/v8/callbacks.rb +88 -0
- data/lib/v8/cli.rb +1 -1
- data/lib/v8/context.rb +55 -66
- data/lib/v8/function.rb +20 -2
- data/lib/v8/object.rb +14 -12
- data/lib/v8/ruby_error.rb +3 -0
- data/lib/v8/to.rb +59 -7
- data/spec/ext/cxt_spec.rb +2 -15
- data/spec/ext/func_spec.rb +17 -10
- data/spec/ext/try_catch_spec.rb +32 -0
- data/spec/foo.rb +17 -0
- data/spec/redjs/jsapi_spec.rb +173 -96
- data/spec/spec_helper.rb +7 -0
- data/spec/v8/to_spec.rb +0 -1
- data/therubyracer.gemspec +6 -6
- metadata +493 -386
- data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +0 -849
- data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +0 -412
- data/ext/v8/upstream/2.0.6/src/ast.cc +0 -512
- data/ext/v8/upstream/2.0.6/src/builtins.cc +0 -851
- data/ext/v8/upstream/2.0.6/src/compiler.cc +0 -1132
- data/ext/v8/upstream/2.0.6/src/compiler.h +0 -107
- data/ext/v8/upstream/2.0.6/src/conversions.cc +0 -709
- data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +0 -426
- data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +0 -5
- data/ext/v8/upstream/no-strict-aliasing.patch +0 -13
- data/ext/v8/v8_standalone.cpp +0 -69
- data/ext/v8/v8_standalone.h +0 -31
- data/spec/ext/obj_spec.rb +0 -13
@@ -314,6 +314,12 @@ Operand::Operand(Register reg) {
|
|
314
314
|
}
|
315
315
|
|
316
316
|
|
317
|
+
Operand::Operand(XMMRegister xmm_reg) {
|
318
|
+
Register reg = { xmm_reg.code() };
|
319
|
+
set_modrm(3, reg);
|
320
|
+
}
|
321
|
+
|
322
|
+
|
317
323
|
Operand::Operand(int32_t disp, RelocInfo::Mode rmode) {
|
318
324
|
// [disp/r]
|
319
325
|
set_modrm(0, ebp);
|
@@ -123,8 +123,8 @@ void CpuFeatures::Probe() {
|
|
123
123
|
Code::ComputeFlags(Code::STUB),
|
124
124
|
Handle<Code>::null());
|
125
125
|
if (!code->IsCode()) return;
|
126
|
-
|
127
|
-
|
126
|
+
PROFILE(CodeCreateEvent(Logger::BUILTIN_TAG,
|
127
|
+
Code::cast(code), "CpuFeatures::Probe"));
|
128
128
|
typedef uint64_t (*F0)();
|
129
129
|
F0 probe = FUNCTION_CAST<F0>(Code::cast(code)->entry());
|
130
130
|
supported_ = probe();
|
@@ -267,7 +267,7 @@ bool Operand::is_reg(Register reg) const {
|
|
267
267
|
}
|
268
268
|
|
269
269
|
// -----------------------------------------------------------------------------
|
270
|
-
// Implementation of Assembler
|
270
|
+
// Implementation of Assembler.
|
271
271
|
|
272
272
|
// Emit a single byte. Must always be inlined.
|
273
273
|
#define EMIT(x) \
|
@@ -278,12 +278,12 @@ bool Operand::is_reg(Register reg) const {
|
|
278
278
|
static void InitCoverageLog();
|
279
279
|
#endif
|
280
280
|
|
281
|
-
//
|
281
|
+
// Spare buffer.
|
282
282
|
byte* Assembler::spare_buffer_ = NULL;
|
283
283
|
|
284
284
|
Assembler::Assembler(void* buffer, int buffer_size) {
|
285
285
|
if (buffer == NULL) {
|
286
|
-
//
|
286
|
+
// Do our own buffer management.
|
287
287
|
if (buffer_size <= kMinimalBufferSize) {
|
288
288
|
buffer_size = kMinimalBufferSize;
|
289
289
|
|
@@ -300,7 +300,7 @@ Assembler::Assembler(void* buffer, int buffer_size) {
|
|
300
300
|
buffer_size_ = buffer_size;
|
301
301
|
own_buffer_ = true;
|
302
302
|
} else {
|
303
|
-
//
|
303
|
+
// Use externally provided buffer instead.
|
304
304
|
ASSERT(buffer_size > 0);
|
305
305
|
buffer_ = static_cast<byte*>(buffer);
|
306
306
|
buffer_size_ = buffer_size;
|
@@ -316,7 +316,7 @@ Assembler::Assembler(void* buffer, int buffer_size) {
|
|
316
316
|
}
|
317
317
|
#endif
|
318
318
|
|
319
|
-
//
|
319
|
+
// Setup buffer pointers.
|
320
320
|
ASSERT(buffer_ != NULL);
|
321
321
|
pc_ = buffer_;
|
322
322
|
reloc_info_writer.Reposition(buffer_ + buffer_size, pc_);
|
@@ -344,11 +344,10 @@ Assembler::~Assembler() {
|
|
344
344
|
|
345
345
|
|
346
346
|
void Assembler::GetCode(CodeDesc* desc) {
|
347
|
-
//
|
348
|
-
//
|
349
|
-
|
350
|
-
|
351
|
-
// setup desc
|
347
|
+
// Finalize code (at this point overflow() may be true, but the gap ensures
|
348
|
+
// that we are still not overlapping instructions and relocation info).
|
349
|
+
ASSERT(pc_ <= reloc_info_writer.pos()); // No overlap.
|
350
|
+
// Setup code descriptor.
|
352
351
|
desc->buffer = buffer_;
|
353
352
|
desc->buffer_size = buffer_size_;
|
354
353
|
desc->instr_size = pc_offset();
|
@@ -435,7 +434,7 @@ void Assembler::push(const Operand& src) {
|
|
435
434
|
void Assembler::pop(Register dst) {
|
436
435
|
ASSERT(reloc_info_writer.last_pc() != NULL);
|
437
436
|
if (FLAG_push_pop_elimination && (reloc_info_writer.last_pc() <= last_pc_)) {
|
438
|
-
// (last_pc_ != NULL) is rolled into the above check
|
437
|
+
// (last_pc_ != NULL) is rolled into the above check.
|
439
438
|
// If a last_pc_ is set, we need to make sure that there has not been any
|
440
439
|
// relocation information generated between the last instruction and this
|
441
440
|
// pop instruction.
|
@@ -461,7 +460,7 @@ void Assembler::pop(Register dst) {
|
|
461
460
|
return;
|
462
461
|
} else if (instr == 0xff) { // push of an operand, convert to a move
|
463
462
|
byte op1 = last_pc_[1];
|
464
|
-
// Check if the operation is really a push
|
463
|
+
// Check if the operation is really a push.
|
465
464
|
if ((op1 & 0x38) == (6 << 3)) {
|
466
465
|
op1 = (op1 & ~0x38) | static_cast<byte>(dst.code() << 3);
|
467
466
|
last_pc_[0] = 0x8b;
|
@@ -747,13 +746,20 @@ void Assembler::cmov(Condition cc, Register dst, const Operand& src) {
|
|
747
746
|
ASSERT(CpuFeatures::IsEnabled(CMOV));
|
748
747
|
EnsureSpace ensure_space(this);
|
749
748
|
last_pc_ = pc_;
|
750
|
-
// Opcode: 0f 40 + cc /r
|
749
|
+
// Opcode: 0f 40 + cc /r.
|
751
750
|
EMIT(0x0F);
|
752
751
|
EMIT(0x40 + cc);
|
753
752
|
emit_operand(dst, src);
|
754
753
|
}
|
755
754
|
|
756
755
|
|
756
|
+
void Assembler::cld() {
|
757
|
+
EnsureSpace ensure_space(this);
|
758
|
+
last_pc_ = pc_;
|
759
|
+
EMIT(0xFC);
|
760
|
+
}
|
761
|
+
|
762
|
+
|
757
763
|
void Assembler::rep_movs() {
|
758
764
|
EnsureSpace ensure_space(this);
|
759
765
|
last_pc_ = pc_;
|
@@ -762,10 +768,18 @@ void Assembler::rep_movs() {
|
|
762
768
|
}
|
763
769
|
|
764
770
|
|
771
|
+
void Assembler::rep_stos() {
|
772
|
+
EnsureSpace ensure_space(this);
|
773
|
+
last_pc_ = pc_;
|
774
|
+
EMIT(0xF3);
|
775
|
+
EMIT(0xAB);
|
776
|
+
}
|
777
|
+
|
778
|
+
|
765
779
|
void Assembler::xchg(Register dst, Register src) {
|
766
780
|
EnsureSpace ensure_space(this);
|
767
781
|
last_pc_ = pc_;
|
768
|
-
if (src.is(eax) || dst.is(eax)) { // Single-byte encoding
|
782
|
+
if (src.is(eax) || dst.is(eax)) { // Single-byte encoding.
|
769
783
|
EMIT(0x90 | (src.is(eax) ? dst.code() : src.code()));
|
770
784
|
} else {
|
771
785
|
EMIT(0x87);
|
@@ -860,6 +874,24 @@ void Assembler::cmpb(const Operand& op, int8_t imm8) {
|
|
860
874
|
}
|
861
875
|
|
862
876
|
|
877
|
+
void Assembler::cmpb(const Operand& dst, Register src) {
|
878
|
+
ASSERT(src.is_byte_register());
|
879
|
+
EnsureSpace ensure_space(this);
|
880
|
+
last_pc_ = pc_;
|
881
|
+
EMIT(0x38);
|
882
|
+
emit_operand(src, dst);
|
883
|
+
}
|
884
|
+
|
885
|
+
|
886
|
+
void Assembler::cmpb(Register dst, const Operand& src) {
|
887
|
+
ASSERT(dst.is_byte_register());
|
888
|
+
EnsureSpace ensure_space(this);
|
889
|
+
last_pc_ = pc_;
|
890
|
+
EMIT(0x3A);
|
891
|
+
emit_operand(dst, src);
|
892
|
+
}
|
893
|
+
|
894
|
+
|
863
895
|
void Assembler::cmpw(const Operand& op, Immediate imm16) {
|
864
896
|
ASSERT(imm16.is_int16());
|
865
897
|
EnsureSpace ensure_space(this);
|
@@ -1261,6 +1293,14 @@ void Assembler::test(Register reg, const Operand& op) {
|
|
1261
1293
|
}
|
1262
1294
|
|
1263
1295
|
|
1296
|
+
void Assembler::test_b(Register reg, const Operand& op) {
|
1297
|
+
EnsureSpace ensure_space(this);
|
1298
|
+
last_pc_ = pc_;
|
1299
|
+
EMIT(0x84);
|
1300
|
+
emit_operand(reg, op);
|
1301
|
+
}
|
1302
|
+
|
1303
|
+
|
1264
1304
|
void Assembler::test(const Operand& op, const Immediate& imm) {
|
1265
1305
|
EnsureSpace ensure_space(this);
|
1266
1306
|
last_pc_ = pc_;
|
@@ -1408,7 +1448,7 @@ void Assembler::bind_to(Label* L, int pos) {
|
|
1408
1448
|
if (disp.type() == Displacement::UNCONDITIONAL_JUMP) {
|
1409
1449
|
ASSERT(byte_at(fixup_pos - 1) == 0xE9); // jmp expected
|
1410
1450
|
}
|
1411
|
-
//
|
1451
|
+
// Relative address, relative to point after address.
|
1412
1452
|
int imm32 = pos - (fixup_pos + sizeof(int32_t));
|
1413
1453
|
long_at_put(fixup_pos, imm32);
|
1414
1454
|
}
|
@@ -1423,7 +1463,7 @@ void Assembler::link_to(Label* L, Label* appendix) {
|
|
1423
1463
|
last_pc_ = NULL;
|
1424
1464
|
if (appendix->is_linked()) {
|
1425
1465
|
if (L->is_linked()) {
|
1426
|
-
//
|
1466
|
+
// Append appendix to L's list.
|
1427
1467
|
Label p;
|
1428
1468
|
Label q = *L;
|
1429
1469
|
do {
|
@@ -1436,7 +1476,7 @@ void Assembler::link_to(Label* L, Label* appendix) {
|
|
1436
1476
|
disp_at_put(&p, disp);
|
1437
1477
|
p.Unuse(); // to avoid assertion failure in ~Label
|
1438
1478
|
} else {
|
1439
|
-
// L is empty, simply use appendix
|
1479
|
+
// L is empty, simply use appendix.
|
1440
1480
|
*L = *appendix;
|
1441
1481
|
}
|
1442
1482
|
}
|
@@ -1459,11 +1499,11 @@ void Assembler::call(Label* L) {
|
|
1459
1499
|
const int long_size = 5;
|
1460
1500
|
int offs = L->pos() - pc_offset();
|
1461
1501
|
ASSERT(offs <= 0);
|
1462
|
-
// 1110 1000 #32-bit disp
|
1502
|
+
// 1110 1000 #32-bit disp.
|
1463
1503
|
EMIT(0xE8);
|
1464
1504
|
emit(offs - long_size);
|
1465
1505
|
} else {
|
1466
|
-
// 1110 1000 #32-bit disp
|
1506
|
+
// 1110 1000 #32-bit disp.
|
1467
1507
|
EMIT(0xE8);
|
1468
1508
|
emit_disp(L, Displacement::OTHER);
|
1469
1509
|
}
|
@@ -1506,16 +1546,16 @@ void Assembler::jmp(Label* L) {
|
|
1506
1546
|
int offs = L->pos() - pc_offset();
|
1507
1547
|
ASSERT(offs <= 0);
|
1508
1548
|
if (is_int8(offs - short_size)) {
|
1509
|
-
// 1110 1011 #8-bit disp
|
1549
|
+
// 1110 1011 #8-bit disp.
|
1510
1550
|
EMIT(0xEB);
|
1511
1551
|
EMIT((offs - short_size) & 0xFF);
|
1512
1552
|
} else {
|
1513
|
-
// 1110 1001 #32-bit disp
|
1553
|
+
// 1110 1001 #32-bit disp.
|
1514
1554
|
EMIT(0xE9);
|
1515
1555
|
emit(offs - long_size);
|
1516
1556
|
}
|
1517
1557
|
} else {
|
1518
|
-
// 1110 1001 #32-bit disp
|
1558
|
+
// 1110 1001 #32-bit disp.
|
1519
1559
|
EMIT(0xE9);
|
1520
1560
|
emit_disp(L, Displacement::UNCONDITIONAL_JUMP);
|
1521
1561
|
}
|
@@ -1585,7 +1625,7 @@ void Assembler::j(Condition cc, byte* entry, RelocInfo::Mode rmode, Hint hint) {
|
|
1585
1625
|
last_pc_ = pc_;
|
1586
1626
|
ASSERT((0 <= cc) && (cc < 16));
|
1587
1627
|
if (FLAG_emit_branch_hints && hint != no_hint) EMIT(hint);
|
1588
|
-
// 0000 1111 1000 tttn #32-bit disp
|
1628
|
+
// 0000 1111 1000 tttn #32-bit disp.
|
1589
1629
|
EMIT(0x0F);
|
1590
1630
|
EMIT(0x80 | cc);
|
1591
1631
|
emit(entry - (pc_ + sizeof(int32_t)), rmode);
|
@@ -1603,7 +1643,7 @@ void Assembler::j(Condition cc, Handle<Code> code, Hint hint) {
|
|
1603
1643
|
}
|
1604
1644
|
|
1605
1645
|
|
1606
|
-
// FPU instructions
|
1646
|
+
// FPU instructions.
|
1607
1647
|
|
1608
1648
|
void Assembler::fld(int i) {
|
1609
1649
|
EnsureSpace ensure_space(this);
|
@@ -1612,6 +1652,13 @@ void Assembler::fld(int i) {
|
|
1612
1652
|
}
|
1613
1653
|
|
1614
1654
|
|
1655
|
+
void Assembler::fstp(int i) {
|
1656
|
+
EnsureSpace ensure_space(this);
|
1657
|
+
last_pc_ = pc_;
|
1658
|
+
emit_farith(0xDD, 0xD8, i);
|
1659
|
+
}
|
1660
|
+
|
1661
|
+
|
1615
1662
|
void Assembler::fld1() {
|
1616
1663
|
EnsureSpace ensure_space(this);
|
1617
1664
|
last_pc_ = pc_;
|
@@ -1620,6 +1667,14 @@ void Assembler::fld1() {
|
|
1620
1667
|
}
|
1621
1668
|
|
1622
1669
|
|
1670
|
+
void Assembler::fldpi() {
|
1671
|
+
EnsureSpace ensure_space(this);
|
1672
|
+
last_pc_ = pc_;
|
1673
|
+
EMIT(0xD9);
|
1674
|
+
EMIT(0xEB);
|
1675
|
+
}
|
1676
|
+
|
1677
|
+
|
1623
1678
|
void Assembler::fldz() {
|
1624
1679
|
EnsureSpace ensure_space(this);
|
1625
1680
|
last_pc_ = pc_;
|
@@ -1660,6 +1715,14 @@ void Assembler::fstp_d(const Operand& adr) {
|
|
1660
1715
|
}
|
1661
1716
|
|
1662
1717
|
|
1718
|
+
void Assembler::fst_d(const Operand& adr) {
|
1719
|
+
EnsureSpace ensure_space(this);
|
1720
|
+
last_pc_ = pc_;
|
1721
|
+
EMIT(0xDD);
|
1722
|
+
emit_operand(edx, adr);
|
1723
|
+
}
|
1724
|
+
|
1725
|
+
|
1663
1726
|
void Assembler::fild_s(const Operand& adr) {
|
1664
1727
|
EnsureSpace ensure_space(this);
|
1665
1728
|
last_pc_ = pc_;
|
@@ -1987,6 +2050,17 @@ void Assembler::cvtsi2sd(XMMRegister dst, const Operand& src) {
|
|
1987
2050
|
}
|
1988
2051
|
|
1989
2052
|
|
2053
|
+
void Assembler::cvtss2sd(XMMRegister dst, XMMRegister src) {
|
2054
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2055
|
+
EnsureSpace ensure_space(this);
|
2056
|
+
last_pc_ = pc_;
|
2057
|
+
EMIT(0xF3);
|
2058
|
+
EMIT(0x0F);
|
2059
|
+
EMIT(0x5A);
|
2060
|
+
emit_sse_operand(dst, src);
|
2061
|
+
}
|
2062
|
+
|
2063
|
+
|
1990
2064
|
void Assembler::addsd(XMMRegister dst, XMMRegister src) {
|
1991
2065
|
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
1992
2066
|
EnsureSpace ensure_space(this);
|
@@ -2042,6 +2116,16 @@ void Assembler::xorpd(XMMRegister dst, XMMRegister src) {
|
|
2042
2116
|
}
|
2043
2117
|
|
2044
2118
|
|
2119
|
+
void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) {
|
2120
|
+
EnsureSpace ensure_space(this);
|
2121
|
+
last_pc_ = pc_;
|
2122
|
+
EMIT(0xF2);
|
2123
|
+
EMIT(0x0F);
|
2124
|
+
EMIT(0x51);
|
2125
|
+
emit_sse_operand(dst, src);
|
2126
|
+
}
|
2127
|
+
|
2128
|
+
|
2045
2129
|
void Assembler::comisd(XMMRegister dst, XMMRegister src) {
|
2046
2130
|
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2047
2131
|
EnsureSpace ensure_space(this);
|
@@ -2053,6 +2137,28 @@ void Assembler::comisd(XMMRegister dst, XMMRegister src) {
|
|
2053
2137
|
}
|
2054
2138
|
|
2055
2139
|
|
2140
|
+
void Assembler::ucomisd(XMMRegister dst, XMMRegister src) {
|
2141
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2142
|
+
EnsureSpace ensure_space(this);
|
2143
|
+
last_pc_ = pc_;
|
2144
|
+
EMIT(0x66);
|
2145
|
+
EMIT(0x0F);
|
2146
|
+
EMIT(0x2E);
|
2147
|
+
emit_sse_operand(dst, src);
|
2148
|
+
}
|
2149
|
+
|
2150
|
+
|
2151
|
+
void Assembler::movmskpd(Register dst, XMMRegister src) {
|
2152
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2153
|
+
EnsureSpace ensure_space(this);
|
2154
|
+
last_pc_ = pc_;
|
2155
|
+
EMIT(0x66);
|
2156
|
+
EMIT(0x0F);
|
2157
|
+
EMIT(0x50);
|
2158
|
+
emit_sse_operand(dst, src);
|
2159
|
+
}
|
2160
|
+
|
2161
|
+
|
2056
2162
|
void Assembler::movdqa(const Operand& dst, XMMRegister src ) {
|
2057
2163
|
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2058
2164
|
EnsureSpace ensure_space(this);
|
@@ -2132,6 +2238,50 @@ void Assembler::movsd(XMMRegister dst, const Operand& src) {
|
|
2132
2238
|
emit_sse_operand(dst, src);
|
2133
2239
|
}
|
2134
2240
|
|
2241
|
+
void Assembler::movsd(XMMRegister dst, XMMRegister src) {
|
2242
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2243
|
+
EnsureSpace ensure_space(this);
|
2244
|
+
last_pc_ = pc_;
|
2245
|
+
EMIT(0xF2);
|
2246
|
+
EMIT(0x0F);
|
2247
|
+
EMIT(0x10);
|
2248
|
+
emit_sse_operand(dst, src);
|
2249
|
+
}
|
2250
|
+
|
2251
|
+
|
2252
|
+
void Assembler::movd(XMMRegister dst, const Operand& src) {
|
2253
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2254
|
+
EnsureSpace ensure_space(this);
|
2255
|
+
last_pc_ = pc_;
|
2256
|
+
EMIT(0x66);
|
2257
|
+
EMIT(0x0F);
|
2258
|
+
EMIT(0x6E);
|
2259
|
+
emit_sse_operand(dst, src);
|
2260
|
+
}
|
2261
|
+
|
2262
|
+
|
2263
|
+
void Assembler::pxor(XMMRegister dst, XMMRegister src) {
|
2264
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2265
|
+
EnsureSpace ensure_space(this);
|
2266
|
+
last_pc_ = pc_;
|
2267
|
+
EMIT(0x66);
|
2268
|
+
EMIT(0x0F);
|
2269
|
+
EMIT(0xEF);
|
2270
|
+
emit_sse_operand(dst, src);
|
2271
|
+
}
|
2272
|
+
|
2273
|
+
|
2274
|
+
void Assembler::ptest(XMMRegister dst, XMMRegister src) {
|
2275
|
+
ASSERT(CpuFeatures::IsEnabled(SSE2));
|
2276
|
+
EnsureSpace ensure_space(this);
|
2277
|
+
last_pc_ = pc_;
|
2278
|
+
EMIT(0x66);
|
2279
|
+
EMIT(0x0F);
|
2280
|
+
EMIT(0x38);
|
2281
|
+
EMIT(0x17);
|
2282
|
+
emit_sse_operand(dst, src);
|
2283
|
+
}
|
2284
|
+
|
2135
2285
|
|
2136
2286
|
void Assembler::emit_sse_operand(XMMRegister reg, const Operand& adr) {
|
2137
2287
|
Register ireg = { reg.code() };
|
@@ -2144,6 +2294,11 @@ void Assembler::emit_sse_operand(XMMRegister dst, XMMRegister src) {
|
|
2144
2294
|
}
|
2145
2295
|
|
2146
2296
|
|
2297
|
+
void Assembler::emit_sse_operand(Register dst, XMMRegister src) {
|
2298
|
+
EMIT(0xC0 | dst.code() << 3 | src.code());
|
2299
|
+
}
|
2300
|
+
|
2301
|
+
|
2147
2302
|
void Assembler::Print() {
|
2148
2303
|
Disassembler::Decode(stdout, buffer_, pc_);
|
2149
2304
|
}
|
@@ -2199,10 +2354,10 @@ void Assembler::WriteRecordedPositions() {
|
|
2199
2354
|
|
2200
2355
|
|
2201
2356
|
void Assembler::GrowBuffer() {
|
2202
|
-
ASSERT(overflow());
|
2357
|
+
ASSERT(overflow());
|
2203
2358
|
if (!own_buffer_) FATAL("external code buffer is too small");
|
2204
2359
|
|
2205
|
-
//
|
2360
|
+
// Compute new buffer size.
|
2206
2361
|
CodeDesc desc; // the new buffer
|
2207
2362
|
if (buffer_size_ < 4*KB) {
|
2208
2363
|
desc.buffer_size = 4*KB;
|
@@ -2216,7 +2371,7 @@ void Assembler::GrowBuffer() {
|
|
2216
2371
|
V8::FatalProcessOutOfMemory("Assembler::GrowBuffer");
|
2217
2372
|
}
|
2218
2373
|
|
2219
|
-
//
|
2374
|
+
// Setup new buffer.
|
2220
2375
|
desc.buffer = NewArray<byte>(desc.buffer_size);
|
2221
2376
|
desc.instr_size = pc_offset();
|
2222
2377
|
desc.reloc_size = (buffer_ + buffer_size_) - (reloc_info_writer.pos());
|
@@ -2227,14 +2382,14 @@ void Assembler::GrowBuffer() {
|
|
2227
2382
|
memset(desc.buffer, 0xCC, desc.buffer_size);
|
2228
2383
|
#endif
|
2229
2384
|
|
2230
|
-
//
|
2385
|
+
// Copy the data.
|
2231
2386
|
int pc_delta = desc.buffer - buffer_;
|
2232
2387
|
int rc_delta = (desc.buffer + desc.buffer_size) - (buffer_ + buffer_size_);
|
2233
2388
|
memmove(desc.buffer, buffer_, desc.instr_size);
|
2234
2389
|
memmove(rc_delta + reloc_info_writer.pos(),
|
2235
2390
|
reloc_info_writer.pos(), desc.reloc_size);
|
2236
2391
|
|
2237
|
-
//
|
2392
|
+
// Switch buffers.
|
2238
2393
|
if (spare_buffer_ == NULL && buffer_size_ == kMinimalBufferSize) {
|
2239
2394
|
spare_buffer_ = buffer_;
|
2240
2395
|
} else {
|
@@ -2249,7 +2404,7 @@ void Assembler::GrowBuffer() {
|
|
2249
2404
|
reloc_info_writer.Reposition(reloc_info_writer.pos() + rc_delta,
|
2250
2405
|
reloc_info_writer.last_pc() + pc_delta);
|
2251
2406
|
|
2252
|
-
//
|
2407
|
+
// Relocate runtime entries.
|
2253
2408
|
for (RelocIterator it(desc); !it.done(); it.next()) {
|
2254
2409
|
RelocInfo::Mode rmode = it.rinfo()->rmode();
|
2255
2410
|
if (rmode == RelocInfo::RUNTIME_ENTRY) {
|