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
@@ -33,46 +33,6 @@
|
|
33
33
|
namespace v8 {
|
34
34
|
namespace internal {
|
35
35
|
|
36
|
-
// -----------------------------------------------------------------------------
|
37
|
-
// Implementation of Register
|
38
|
-
|
39
|
-
Register rax = { 0 };
|
40
|
-
Register rcx = { 1 };
|
41
|
-
Register rdx = { 2 };
|
42
|
-
Register rbx = { 3 };
|
43
|
-
Register rsp = { 4 };
|
44
|
-
Register rbp = { 5 };
|
45
|
-
Register rsi = { 6 };
|
46
|
-
Register rdi = { 7 };
|
47
|
-
Register r8 = { 8 };
|
48
|
-
Register r9 = { 9 };
|
49
|
-
Register r10 = { 10 };
|
50
|
-
Register r11 = { 11 };
|
51
|
-
Register r12 = { 12 };
|
52
|
-
Register r13 = { 13 };
|
53
|
-
Register r14 = { 14 };
|
54
|
-
Register r15 = { 15 };
|
55
|
-
|
56
|
-
Register no_reg = { -1 };
|
57
|
-
|
58
|
-
XMMRegister xmm0 = { 0 };
|
59
|
-
XMMRegister xmm1 = { 1 };
|
60
|
-
XMMRegister xmm2 = { 2 };
|
61
|
-
XMMRegister xmm3 = { 3 };
|
62
|
-
XMMRegister xmm4 = { 4 };
|
63
|
-
XMMRegister xmm5 = { 5 };
|
64
|
-
XMMRegister xmm6 = { 6 };
|
65
|
-
XMMRegister xmm7 = { 7 };
|
66
|
-
XMMRegister xmm8 = { 8 };
|
67
|
-
XMMRegister xmm9 = { 9 };
|
68
|
-
XMMRegister xmm10 = { 10 };
|
69
|
-
XMMRegister xmm11 = { 11 };
|
70
|
-
XMMRegister xmm12 = { 12 };
|
71
|
-
XMMRegister xmm13 = { 13 };
|
72
|
-
XMMRegister xmm14 = { 14 };
|
73
|
-
XMMRegister xmm15 = { 15 };
|
74
|
-
|
75
|
-
|
76
36
|
// -----------------------------------------------------------------------------
|
77
37
|
// Implementation of CpuFeatures
|
78
38
|
|
@@ -156,11 +116,13 @@ void CpuFeatures::Probe() {
|
|
156
116
|
|
157
117
|
CodeDesc desc;
|
158
118
|
assm.GetCode(&desc);
|
159
|
-
Object* code =
|
160
|
-
|
119
|
+
Object* code = Heap::CreateCode(desc,
|
120
|
+
NULL,
|
121
|
+
Code::ComputeFlags(Code::STUB),
|
122
|
+
Handle<Object>());
|
161
123
|
if (!code->IsCode()) return;
|
162
|
-
|
163
|
-
|
124
|
+
PROFILE(CodeCreateEvent(Logger::BUILTIN_TAG,
|
125
|
+
Code::cast(code), "CpuFeatures::Probe"));
|
164
126
|
typedef uint64_t (*F0)();
|
165
127
|
F0 probe = FUNCTION_CAST<F0>(Code::cast(code)->entry());
|
166
128
|
supported_ = probe();
|
@@ -224,7 +186,7 @@ void RelocInfo::PatchCode(byte* instructions, int instruction_count) {
|
|
224
186
|
// -----------------------------------------------------------------------------
|
225
187
|
// Implementation of Operand
|
226
188
|
|
227
|
-
Operand::Operand(Register base, int32_t disp): rex_(0) {
|
189
|
+
Operand::Operand(Register base, int32_t disp) : rex_(0) {
|
228
190
|
len_ = 1;
|
229
191
|
if (base.is(rsp) || base.is(r12)) {
|
230
192
|
// SIB byte is needed to encode (rsp + offset) or (r12 + offset).
|
@@ -246,7 +208,7 @@ Operand::Operand(Register base, int32_t disp): rex_(0) {
|
|
246
208
|
Operand::Operand(Register base,
|
247
209
|
Register index,
|
248
210
|
ScaleFactor scale,
|
249
|
-
int32_t disp): rex_(0) {
|
211
|
+
int32_t disp) : rex_(0) {
|
250
212
|
ASSERT(!index.is(rsp));
|
251
213
|
len_ = 1;
|
252
214
|
set_sib(scale, index, base);
|
@@ -264,8 +226,19 @@ Operand::Operand(Register base,
|
|
264
226
|
}
|
265
227
|
|
266
228
|
|
229
|
+
Operand::Operand(Register index,
|
230
|
+
ScaleFactor scale,
|
231
|
+
int32_t disp) : rex_(0) {
|
232
|
+
ASSERT(!index.is(rsp));
|
233
|
+
len_ = 1;
|
234
|
+
set_modrm(0, rsp);
|
235
|
+
set_sib(scale, index, rbp);
|
236
|
+
set_disp32(disp);
|
237
|
+
}
|
238
|
+
|
239
|
+
|
267
240
|
// -----------------------------------------------------------------------------
|
268
|
-
// Implementation of Assembler
|
241
|
+
// Implementation of Assembler.
|
269
242
|
|
270
243
|
#ifdef GENERATED_CODE_COVERAGE
|
271
244
|
static void InitCoverageLog();
|
@@ -276,7 +249,7 @@ byte* Assembler::spare_buffer_ = NULL;
|
|
276
249
|
Assembler::Assembler(void* buffer, int buffer_size)
|
277
250
|
: code_targets_(100) {
|
278
251
|
if (buffer == NULL) {
|
279
|
-
//
|
252
|
+
// Do our own buffer management.
|
280
253
|
if (buffer_size <= kMinimalBufferSize) {
|
281
254
|
buffer_size = kMinimalBufferSize;
|
282
255
|
|
@@ -293,7 +266,7 @@ Assembler::Assembler(void* buffer, int buffer_size)
|
|
293
266
|
buffer_size_ = buffer_size;
|
294
267
|
own_buffer_ = true;
|
295
268
|
} else {
|
296
|
-
//
|
269
|
+
// Use externally provided buffer instead.
|
297
270
|
ASSERT(buffer_size > 0);
|
298
271
|
buffer_ = static_cast<byte*>(buffer);
|
299
272
|
buffer_size_ = buffer_size;
|
@@ -309,7 +282,7 @@ Assembler::Assembler(void* buffer, int buffer_size)
|
|
309
282
|
}
|
310
283
|
#endif
|
311
284
|
|
312
|
-
//
|
285
|
+
// Setup buffer pointers.
|
313
286
|
ASSERT(buffer_ != NULL);
|
314
287
|
pc_ = buffer_;
|
315
288
|
reloc_info_writer.Reposition(buffer_ + buffer_size, pc_);
|
@@ -337,11 +310,10 @@ Assembler::~Assembler() {
|
|
337
310
|
|
338
311
|
|
339
312
|
void Assembler::GetCode(CodeDesc* desc) {
|
340
|
-
//
|
341
|
-
//
|
342
|
-
|
343
|
-
|
344
|
-
// setup desc
|
313
|
+
// Finalize code (at this point overflow() may be true, but the gap ensures
|
314
|
+
// that we are still not overlapping instructions and relocation info).
|
315
|
+
ASSERT(pc_ <= reloc_info_writer.pos()); // No overlap.
|
316
|
+
// Setup code descriptor.
|
345
317
|
desc->buffer = buffer_;
|
346
318
|
desc->buffer_size = buffer_size_;
|
347
319
|
desc->instr_size = pc_offset();
|
@@ -370,7 +342,7 @@ void Assembler::bind_to(Label* L, int pos) {
|
|
370
342
|
int current = L->pos();
|
371
343
|
int next = long_at(current);
|
372
344
|
while (next != current) {
|
373
|
-
//
|
345
|
+
// Relative address, relative to point after address.
|
374
346
|
int imm32 = pos - (current + sizeof(int32_t));
|
375
347
|
long_at_put(current, imm32);
|
376
348
|
current = next;
|
@@ -390,10 +362,10 @@ void Assembler::bind(Label* L) {
|
|
390
362
|
|
391
363
|
|
392
364
|
void Assembler::GrowBuffer() {
|
393
|
-
ASSERT(buffer_overflow());
|
365
|
+
ASSERT(buffer_overflow());
|
394
366
|
if (!own_buffer_) FATAL("external code buffer is too small");
|
395
367
|
|
396
|
-
//
|
368
|
+
// Compute new buffer size.
|
397
369
|
CodeDesc desc; // the new buffer
|
398
370
|
if (buffer_size_ < 4*KB) {
|
399
371
|
desc.buffer_size = 4*KB;
|
@@ -407,7 +379,7 @@ void Assembler::GrowBuffer() {
|
|
407
379
|
V8::FatalProcessOutOfMemory("Assembler::GrowBuffer");
|
408
380
|
}
|
409
381
|
|
410
|
-
//
|
382
|
+
// Setup new buffer.
|
411
383
|
desc.buffer = NewArray<byte>(desc.buffer_size);
|
412
384
|
desc.instr_size = pc_offset();
|
413
385
|
desc.reloc_size =
|
@@ -419,7 +391,7 @@ void Assembler::GrowBuffer() {
|
|
419
391
|
memset(desc.buffer, 0xCC, desc.buffer_size);
|
420
392
|
#endif
|
421
393
|
|
422
|
-
//
|
394
|
+
// Copy the data.
|
423
395
|
intptr_t pc_delta = desc.buffer - buffer_;
|
424
396
|
intptr_t rc_delta = (desc.buffer + desc.buffer_size) -
|
425
397
|
(buffer_ + buffer_size_);
|
@@ -427,7 +399,7 @@ void Assembler::GrowBuffer() {
|
|
427
399
|
memmove(rc_delta + reloc_info_writer.pos(),
|
428
400
|
reloc_info_writer.pos(), desc.reloc_size);
|
429
401
|
|
430
|
-
//
|
402
|
+
// Switch buffers.
|
431
403
|
if (spare_buffer_ == NULL && buffer_size_ == kMinimalBufferSize) {
|
432
404
|
spare_buffer_ = buffer_;
|
433
405
|
} else {
|
@@ -442,7 +414,7 @@ void Assembler::GrowBuffer() {
|
|
442
414
|
reloc_info_writer.Reposition(reloc_info_writer.pos() + rc_delta,
|
443
415
|
reloc_info_writer.last_pc() + pc_delta);
|
444
416
|
|
445
|
-
//
|
417
|
+
// Relocate runtime entries.
|
446
418
|
for (RelocIterator it(desc); !it.done(); it.next()) {
|
447
419
|
RelocInfo::Mode rmode = it.rinfo()->rmode();
|
448
420
|
if (rmode == RelocInfo::INTERNAL_REFERENCE) {
|
@@ -472,7 +444,7 @@ void Assembler::emit_operand(int code, const Operand& adr) {
|
|
472
444
|
}
|
473
445
|
|
474
446
|
|
475
|
-
// Assembler Instruction implementations
|
447
|
+
// Assembler Instruction implementations.
|
476
448
|
|
477
449
|
void Assembler::arithmetic_op(byte opcode, Register reg, const Operand& op) {
|
478
450
|
EnsureSpace ensure_space(this);
|
@@ -756,7 +728,7 @@ void Assembler::bts(const Operand& dst, Register src) {
|
|
756
728
|
void Assembler::call(Label* L) {
|
757
729
|
EnsureSpace ensure_space(this);
|
758
730
|
last_pc_ = pc_;
|
759
|
-
// 1110 1000 #32-bit disp
|
731
|
+
// 1110 1000 #32-bit disp.
|
760
732
|
emit(0xE8);
|
761
733
|
if (L->is_bound()) {
|
762
734
|
int offset = L->pos() - pc_offset() - sizeof(int32_t);
|
@@ -777,7 +749,7 @@ void Assembler::call(Label* L) {
|
|
777
749
|
void Assembler::call(Handle<Code> target, RelocInfo::Mode rmode) {
|
778
750
|
EnsureSpace ensure_space(this);
|
779
751
|
last_pc_ = pc_;
|
780
|
-
// 1110 1000 #32-bit disp
|
752
|
+
// 1110 1000 #32-bit disp.
|
781
753
|
emit(0xE8);
|
782
754
|
emit_code_target(target, rmode);
|
783
755
|
}
|
@@ -786,7 +758,7 @@ void Assembler::call(Handle<Code> target, RelocInfo::Mode rmode) {
|
|
786
758
|
void Assembler::call(Register adr) {
|
787
759
|
EnsureSpace ensure_space(this);
|
788
760
|
last_pc_ = pc_;
|
789
|
-
// Opcode: FF /2 r64
|
761
|
+
// Opcode: FF /2 r64.
|
790
762
|
if (adr.high_bit()) {
|
791
763
|
emit_rex_64(adr);
|
792
764
|
}
|
@@ -798,7 +770,7 @@ void Assembler::call(Register adr) {
|
|
798
770
|
void Assembler::call(const Operand& op) {
|
799
771
|
EnsureSpace ensure_space(this);
|
800
772
|
last_pc_ = pc_;
|
801
|
-
// Opcode: FF /2 m64
|
773
|
+
// Opcode: FF /2 m64.
|
802
774
|
emit_rex_64(op);
|
803
775
|
emit(0xFF);
|
804
776
|
emit_operand(2, op);
|
@@ -829,7 +801,7 @@ void Assembler::cmovq(Condition cc, Register dst, Register src) {
|
|
829
801
|
ASSERT(cc >= 0); // Use mov for unconditional moves.
|
830
802
|
EnsureSpace ensure_space(this);
|
831
803
|
last_pc_ = pc_;
|
832
|
-
// Opcode: REX.W 0f 40 + cc /r
|
804
|
+
// Opcode: REX.W 0f 40 + cc /r.
|
833
805
|
emit_rex_64(dst, src);
|
834
806
|
emit(0x0f);
|
835
807
|
emit(0x40 + cc);
|
@@ -846,7 +818,7 @@ void Assembler::cmovq(Condition cc, Register dst, const Operand& src) {
|
|
846
818
|
ASSERT(cc >= 0);
|
847
819
|
EnsureSpace ensure_space(this);
|
848
820
|
last_pc_ = pc_;
|
849
|
-
// Opcode: REX.W 0f 40 + cc /r
|
821
|
+
// Opcode: REX.W 0f 40 + cc /r.
|
850
822
|
emit_rex_64(dst, src);
|
851
823
|
emit(0x0f);
|
852
824
|
emit(0x40 + cc);
|
@@ -863,7 +835,7 @@ void Assembler::cmovl(Condition cc, Register dst, Register src) {
|
|
863
835
|
ASSERT(cc >= 0);
|
864
836
|
EnsureSpace ensure_space(this);
|
865
837
|
last_pc_ = pc_;
|
866
|
-
// Opcode: 0f 40 + cc /r
|
838
|
+
// Opcode: 0f 40 + cc /r.
|
867
839
|
emit_optional_rex_32(dst, src);
|
868
840
|
emit(0x0f);
|
869
841
|
emit(0x40 + cc);
|
@@ -880,7 +852,7 @@ void Assembler::cmovl(Condition cc, Register dst, const Operand& src) {
|
|
880
852
|
ASSERT(cc >= 0);
|
881
853
|
EnsureSpace ensure_space(this);
|
882
854
|
last_pc_ = pc_;
|
883
|
-
// Opcode: 0f 40 + cc /r
|
855
|
+
// Opcode: 0f 40 + cc /r.
|
884
856
|
emit_optional_rex_32(dst, src);
|
885
857
|
emit(0x0f);
|
886
858
|
emit(0x40 + cc);
|
@@ -1060,6 +1032,22 @@ void Assembler::imull(Register dst, Register src) {
|
|
1060
1032
|
}
|
1061
1033
|
|
1062
1034
|
|
1035
|
+
void Assembler::imull(Register dst, Register src, Immediate imm) {
|
1036
|
+
EnsureSpace ensure_space(this);
|
1037
|
+
last_pc_ = pc_;
|
1038
|
+
emit_optional_rex_32(dst, src);
|
1039
|
+
if (is_int8(imm.value_)) {
|
1040
|
+
emit(0x6B);
|
1041
|
+
emit_modrm(dst, src);
|
1042
|
+
emit(imm.value_);
|
1043
|
+
} else {
|
1044
|
+
emit(0x69);
|
1045
|
+
emit_modrm(dst, src);
|
1046
|
+
emitl(imm.value_);
|
1047
|
+
}
|
1048
|
+
}
|
1049
|
+
|
1050
|
+
|
1063
1051
|
void Assembler::incq(Register dst) {
|
1064
1052
|
EnsureSpace ensure_space(this);
|
1065
1053
|
last_pc_ = pc_;
|
@@ -1110,17 +1098,17 @@ void Assembler::j(Condition cc, Label* L) {
|
|
1110
1098
|
int offs = L->pos() - pc_offset();
|
1111
1099
|
ASSERT(offs <= 0);
|
1112
1100
|
if (is_int8(offs - short_size)) {
|
1113
|
-
// 0111 tttn #8-bit disp
|
1101
|
+
// 0111 tttn #8-bit disp.
|
1114
1102
|
emit(0x70 | cc);
|
1115
1103
|
emit((offs - short_size) & 0xFF);
|
1116
1104
|
} else {
|
1117
|
-
// 0000 1111 1000 tttn #32-bit disp
|
1105
|
+
// 0000 1111 1000 tttn #32-bit disp.
|
1118
1106
|
emit(0x0F);
|
1119
1107
|
emit(0x80 | cc);
|
1120
1108
|
emitl(offs - long_size);
|
1121
1109
|
}
|
1122
1110
|
} else if (L->is_linked()) {
|
1123
|
-
// 0000 1111 1000 tttn #32-bit disp
|
1111
|
+
// 0000 1111 1000 tttn #32-bit disp.
|
1124
1112
|
emit(0x0F);
|
1125
1113
|
emit(0x80 | cc);
|
1126
1114
|
emitl(L->pos());
|
@@ -1142,7 +1130,7 @@ void Assembler::j(Condition cc,
|
|
1142
1130
|
EnsureSpace ensure_space(this);
|
1143
1131
|
last_pc_ = pc_;
|
1144
1132
|
ASSERT(is_uint4(cc));
|
1145
|
-
// 0000 1111 1000 tttn #32-bit disp
|
1133
|
+
// 0000 1111 1000 tttn #32-bit disp.
|
1146
1134
|
emit(0x0F);
|
1147
1135
|
emit(0x80 | cc);
|
1148
1136
|
emit_code_target(target, rmode);
|
@@ -1152,25 +1140,27 @@ void Assembler::j(Condition cc,
|
|
1152
1140
|
void Assembler::jmp(Label* L) {
|
1153
1141
|
EnsureSpace ensure_space(this);
|
1154
1142
|
last_pc_ = pc_;
|
1143
|
+
const int short_size = sizeof(int8_t);
|
1144
|
+
const int long_size = sizeof(int32_t);
|
1155
1145
|
if (L->is_bound()) {
|
1156
1146
|
int offs = L->pos() - pc_offset() - 1;
|
1157
1147
|
ASSERT(offs <= 0);
|
1158
|
-
if (is_int8(offs -
|
1159
|
-
// 1110 1011 #8-bit disp
|
1148
|
+
if (is_int8(offs - short_size)) {
|
1149
|
+
// 1110 1011 #8-bit disp.
|
1160
1150
|
emit(0xEB);
|
1161
|
-
emit((offs -
|
1151
|
+
emit((offs - short_size) & 0xFF);
|
1162
1152
|
} else {
|
1163
|
-
// 1110 1001 #32-bit disp
|
1153
|
+
// 1110 1001 #32-bit disp.
|
1164
1154
|
emit(0xE9);
|
1165
|
-
emitl(offs -
|
1155
|
+
emitl(offs - long_size);
|
1166
1156
|
}
|
1167
1157
|
} else if (L->is_linked()) {
|
1168
|
-
// 1110 1001 #32-bit disp
|
1158
|
+
// 1110 1001 #32-bit disp.
|
1169
1159
|
emit(0xE9);
|
1170
1160
|
emitl(L->pos());
|
1171
|
-
L->link_to(pc_offset() -
|
1161
|
+
L->link_to(pc_offset() - long_size);
|
1172
1162
|
} else {
|
1173
|
-
// 1110 1001 #32-bit disp
|
1163
|
+
// 1110 1001 #32-bit disp.
|
1174
1164
|
ASSERT(L->is_unused());
|
1175
1165
|
emit(0xE9);
|
1176
1166
|
int32_t current = pc_offset();
|
@@ -1183,7 +1173,7 @@ void Assembler::jmp(Label* L) {
|
|
1183
1173
|
void Assembler::jmp(Handle<Code> target, RelocInfo::Mode rmode) {
|
1184
1174
|
EnsureSpace ensure_space(this);
|
1185
1175
|
last_pc_ = pc_;
|
1186
|
-
// 1110 1001 #32-bit disp
|
1176
|
+
// 1110 1001 #32-bit disp.
|
1187
1177
|
emit(0xE9);
|
1188
1178
|
emit_code_target(target, rmode);
|
1189
1179
|
}
|
@@ -1192,7 +1182,7 @@ void Assembler::jmp(Handle<Code> target, RelocInfo::Mode rmode) {
|
|
1192
1182
|
void Assembler::jmp(Register target) {
|
1193
1183
|
EnsureSpace ensure_space(this);
|
1194
1184
|
last_pc_ = pc_;
|
1195
|
-
// Opcode FF/4 r64
|
1185
|
+
// Opcode FF/4 r64.
|
1196
1186
|
if (target.high_bit()) {
|
1197
1187
|
emit_rex_64(target);
|
1198
1188
|
}
|
@@ -1204,7 +1194,7 @@ void Assembler::jmp(Register target) {
|
|
1204
1194
|
void Assembler::jmp(const Operand& src) {
|
1205
1195
|
EnsureSpace ensure_space(this);
|
1206
1196
|
last_pc_ = pc_;
|
1207
|
-
// Opcode FF/4 m64
|
1197
|
+
// Opcode FF/4 m64.
|
1208
1198
|
emit_optional_rex_32(src);
|
1209
1199
|
emit(0xFF);
|
1210
1200
|
emit_operand(0x4, src);
|
@@ -1220,6 +1210,15 @@ void Assembler::lea(Register dst, const Operand& src) {
|
|
1220
1210
|
}
|
1221
1211
|
|
1222
1212
|
|
1213
|
+
void Assembler::leal(Register dst, const Operand& src) {
|
1214
|
+
EnsureSpace ensure_space(this);
|
1215
|
+
last_pc_ = pc_;
|
1216
|
+
emit_optional_rex_32(dst, src);
|
1217
|
+
emit(0x8D);
|
1218
|
+
emit_operand(dst, src);
|
1219
|
+
}
|
1220
|
+
|
1221
|
+
|
1223
1222
|
void Assembler::load_rax(void* value, RelocInfo::Mode mode) {
|
1224
1223
|
EnsureSpace ensure_space(this);
|
1225
1224
|
last_pc_ = pc_;
|
@@ -1249,6 +1248,7 @@ void Assembler::movb(Register dst, const Operand& src) {
|
|
1249
1248
|
emit_operand(dst, src);
|
1250
1249
|
}
|
1251
1250
|
|
1251
|
+
|
1252
1252
|
void Assembler::movb(Register dst, Immediate imm) {
|
1253
1253
|
EnsureSpace ensure_space(this);
|
1254
1254
|
last_pc_ = pc_;
|
@@ -1258,6 +1258,7 @@ void Assembler::movb(Register dst, Immediate imm) {
|
|
1258
1258
|
emit(imm.value_);
|
1259
1259
|
}
|
1260
1260
|
|
1261
|
+
|
1261
1262
|
void Assembler::movb(const Operand& dst, Register src) {
|
1262
1263
|
EnsureSpace ensure_space(this);
|
1263
1264
|
last_pc_ = pc_;
|
@@ -1266,6 +1267,7 @@ void Assembler::movb(const Operand& dst, Register src) {
|
|
1266
1267
|
emit_operand(src, dst);
|
1267
1268
|
}
|
1268
1269
|
|
1270
|
+
|
1269
1271
|
void Assembler::movw(const Operand& dst, Register src) {
|
1270
1272
|
EnsureSpace ensure_space(this);
|
1271
1273
|
last_pc_ = pc_;
|
@@ -1275,6 +1277,7 @@ void Assembler::movw(const Operand& dst, Register src) {
|
|
1275
1277
|
emit_operand(src, dst);
|
1276
1278
|
}
|
1277
1279
|
|
1280
|
+
|
1278
1281
|
void Assembler::movl(Register dst, const Operand& src) {
|
1279
1282
|
EnsureSpace ensure_space(this);
|
1280
1283
|
last_pc_ = pc_;
|
@@ -1413,10 +1416,8 @@ void Assembler::movq(const Operand& dst, Immediate value) {
|
|
1413
1416
|
}
|
1414
1417
|
|
1415
1418
|
|
1416
|
-
|
1417
|
-
|
1418
|
-
* location (as a 32-bit offset sign extended to 64-bit).
|
1419
|
-
*/
|
1419
|
+
// Loads the ip-relative location of the src label into the target location
|
1420
|
+
// (as a 32-bit offset sign extended to 64-bit).
|
1420
1421
|
void Assembler::movl(const Operand& dst, Label* src) {
|
1421
1422
|
EnsureSpace ensure_space(this);
|
1422
1423
|
last_pc_ = pc_;
|
@@ -1537,6 +1538,40 @@ void Assembler::movzxwl(Register dst, const Operand& src) {
|
|
1537
1538
|
}
|
1538
1539
|
|
1539
1540
|
|
1541
|
+
void Assembler::repmovsb() {
|
1542
|
+
EnsureSpace ensure_space(this);
|
1543
|
+
last_pc_ = pc_;
|
1544
|
+
emit(0xF3);
|
1545
|
+
emit(0xA4);
|
1546
|
+
}
|
1547
|
+
|
1548
|
+
|
1549
|
+
void Assembler::repmovsw() {
|
1550
|
+
EnsureSpace ensure_space(this);
|
1551
|
+
last_pc_ = pc_;
|
1552
|
+
emit(0x66); // Operand size override.
|
1553
|
+
emit(0xF3);
|
1554
|
+
emit(0xA4);
|
1555
|
+
}
|
1556
|
+
|
1557
|
+
|
1558
|
+
void Assembler::repmovsl() {
|
1559
|
+
EnsureSpace ensure_space(this);
|
1560
|
+
last_pc_ = pc_;
|
1561
|
+
emit(0xF3);
|
1562
|
+
emit(0xA5);
|
1563
|
+
}
|
1564
|
+
|
1565
|
+
|
1566
|
+
void Assembler::repmovsq() {
|
1567
|
+
EnsureSpace ensure_space(this);
|
1568
|
+
last_pc_ = pc_;
|
1569
|
+
emit(0xF3);
|
1570
|
+
emit_rex_64();
|
1571
|
+
emit(0xA5);
|
1572
|
+
}
|
1573
|
+
|
1574
|
+
|
1540
1575
|
void Assembler::mul(Register src) {
|
1541
1576
|
EnsureSpace ensure_space(this);
|
1542
1577
|
last_pc_ = pc_;
|
@@ -1598,6 +1633,15 @@ void Assembler::not_(const Operand& dst) {
|
|
1598
1633
|
}
|
1599
1634
|
|
1600
1635
|
|
1636
|
+
void Assembler::notl(Register dst) {
|
1637
|
+
EnsureSpace ensure_space(this);
|
1638
|
+
last_pc_ = pc_;
|
1639
|
+
emit_optional_rex_32(dst);
|
1640
|
+
emit(0xF7);
|
1641
|
+
emit_modrm(0x2, dst);
|
1642
|
+
}
|
1643
|
+
|
1644
|
+
|
1601
1645
|
void Assembler::nop(int n) {
|
1602
1646
|
// The recommended muti-byte sequences of NOP instructions from the Intel 64
|
1603
1647
|
// and IA-32 Architectures Software Developer's Manual.
|
@@ -1880,6 +1924,20 @@ void Assembler::testb(const Operand& op, Immediate mask) {
|
|
1880
1924
|
}
|
1881
1925
|
|
1882
1926
|
|
1927
|
+
void Assembler::testb(const Operand& op, Register reg) {
|
1928
|
+
EnsureSpace ensure_space(this);
|
1929
|
+
last_pc_ = pc_;
|
1930
|
+
if (reg.code() > 3) {
|
1931
|
+
// Register is not one of al, bl, cl, dl. Its encoding needs REX.
|
1932
|
+
emit_rex_32(reg, op);
|
1933
|
+
} else {
|
1934
|
+
emit_optional_rex_32(reg, op);
|
1935
|
+
}
|
1936
|
+
emit(0x84);
|
1937
|
+
emit_operand(reg, op);
|
1938
|
+
}
|
1939
|
+
|
1940
|
+
|
1883
1941
|
void Assembler::testl(Register dst, Register src) {
|
1884
1942
|
EnsureSpace ensure_space(this);
|
1885
1943
|
last_pc_ = pc_;
|
@@ -1958,7 +2016,7 @@ void Assembler::testq(Register dst, Immediate mask) {
|
|
1958
2016
|
}
|
1959
2017
|
|
1960
2018
|
|
1961
|
-
// FPU instructions
|
2019
|
+
// FPU instructions.
|
1962
2020
|
|
1963
2021
|
|
1964
2022
|
void Assembler::fld(int i) {
|
@@ -1984,6 +2042,14 @@ void Assembler::fldz() {
|
|
1984
2042
|
}
|
1985
2043
|
|
1986
2044
|
|
2045
|
+
void Assembler::fldpi() {
|
2046
|
+
EnsureSpace ensure_space(this);
|
2047
|
+
last_pc_ = pc_;
|
2048
|
+
emit(0xD9);
|
2049
|
+
emit(0xEB);
|
2050
|
+
}
|
2051
|
+
|
2052
|
+
|
1987
2053
|
void Assembler::fld_s(const Operand& adr) {
|
1988
2054
|
EnsureSpace ensure_space(this);
|
1989
2055
|
last_pc_ = pc_;
|
@@ -2065,6 +2131,16 @@ void Assembler::fisttp_s(const Operand& adr) {
|
|
2065
2131
|
}
|
2066
2132
|
|
2067
2133
|
|
2134
|
+
void Assembler::fisttp_d(const Operand& adr) {
|
2135
|
+
ASSERT(CpuFeatures::IsEnabled(SSE3));
|
2136
|
+
EnsureSpace ensure_space(this);
|
2137
|
+
last_pc_ = pc_;
|
2138
|
+
emit_optional_rex_32(adr);
|
2139
|
+
emit(0xDD);
|
2140
|
+
emit_operand(1, adr);
|
2141
|
+
}
|
2142
|
+
|
2143
|
+
|
2068
2144
|
void Assembler::fist_s(const Operand& adr) {
|
2069
2145
|
EnsureSpace ensure_space(this);
|
2070
2146
|
last_pc_ = pc_;
|
@@ -2319,7 +2395,65 @@ void Assembler::emit_farith(int b1, int b2, int i) {
|
|
2319
2395
|
emit(b2 + i);
|
2320
2396
|
}
|
2321
2397
|
|
2322
|
-
// SSE 2 operations
|
2398
|
+
// SSE 2 operations.
|
2399
|
+
|
2400
|
+
void Assembler::movd(XMMRegister dst, Register src) {
|
2401
|
+
EnsureSpace ensure_space(this);
|
2402
|
+
last_pc_ = pc_;
|
2403
|
+
emit(0x66);
|
2404
|
+
emit_optional_rex_32(dst, src);
|
2405
|
+
emit(0x0F);
|
2406
|
+
emit(0x6E);
|
2407
|
+
emit_sse_operand(dst, src);
|
2408
|
+
}
|
2409
|
+
|
2410
|
+
|
2411
|
+
void Assembler::movd(Register dst, XMMRegister src) {
|
2412
|
+
EnsureSpace ensure_space(this);
|
2413
|
+
last_pc_ = pc_;
|
2414
|
+
emit(0x66);
|
2415
|
+
emit_optional_rex_32(dst, src);
|
2416
|
+
emit(0x0F);
|
2417
|
+
emit(0x7E);
|
2418
|
+
emit_sse_operand(dst, src);
|
2419
|
+
}
|
2420
|
+
|
2421
|
+
|
2422
|
+
void Assembler::movq(XMMRegister dst, Register src) {
|
2423
|
+
EnsureSpace ensure_space(this);
|
2424
|
+
last_pc_ = pc_;
|
2425
|
+
emit(0x66);
|
2426
|
+
emit_rex_64(dst, src);
|
2427
|
+
emit(0x0F);
|
2428
|
+
emit(0x6E);
|
2429
|
+
emit_sse_operand(dst, src);
|
2430
|
+
}
|
2431
|
+
|
2432
|
+
|
2433
|
+
void Assembler::movq(Register dst, XMMRegister src) {
|
2434
|
+
EnsureSpace ensure_space(this);
|
2435
|
+
last_pc_ = pc_;
|
2436
|
+
emit(0x66);
|
2437
|
+
emit_rex_64(dst, src);
|
2438
|
+
emit(0x0F);
|
2439
|
+
emit(0x7E);
|
2440
|
+
emit_sse_operand(dst, src);
|
2441
|
+
}
|
2442
|
+
|
2443
|
+
|
2444
|
+
void Assembler::extractps(Register dst, XMMRegister src, byte imm8) {
|
2445
|
+
ASSERT(is_uint2(imm8));
|
2446
|
+
EnsureSpace ensure_space(this);
|
2447
|
+
last_pc_ = pc_;
|
2448
|
+
emit(0x66);
|
2449
|
+
emit_optional_rex_32(dst, src);
|
2450
|
+
emit(0x0F);
|
2451
|
+
emit(0x3A);
|
2452
|
+
emit(0x17);
|
2453
|
+
emit_sse_operand(dst, src);
|
2454
|
+
emit(imm8);
|
2455
|
+
}
|
2456
|
+
|
2323
2457
|
|
2324
2458
|
void Assembler::movsd(const Operand& dst, XMMRegister src) {
|
2325
2459
|
EnsureSpace ensure_space(this);
|
@@ -2409,6 +2543,17 @@ void Assembler::cvtqsi2sd(XMMRegister dst, Register src) {
|
|
2409
2543
|
}
|
2410
2544
|
|
2411
2545
|
|
2546
|
+
void Assembler::cvtss2sd(XMMRegister dst, XMMRegister src) {
|
2547
|
+
EnsureSpace ensure_space(this);
|
2548
|
+
last_pc_ = pc_;
|
2549
|
+
emit(0xF3);
|
2550
|
+
emit_optional_rex_32(dst, src);
|
2551
|
+
emit(0x0F);
|
2552
|
+
emit(0x5A);
|
2553
|
+
emit_sse_operand(dst, src);
|
2554
|
+
}
|
2555
|
+
|
2556
|
+
|
2412
2557
|
void Assembler::addsd(XMMRegister dst, XMMRegister src) {
|
2413
2558
|
EnsureSpace ensure_space(this);
|
2414
2559
|
last_pc_ = pc_;
|
@@ -2453,6 +2598,49 @@ void Assembler::divsd(XMMRegister dst, XMMRegister src) {
|
|
2453
2598
|
}
|
2454
2599
|
|
2455
2600
|
|
2601
|
+
void Assembler::xorpd(XMMRegister dst, XMMRegister src) {
|
2602
|
+
EnsureSpace ensure_space(this);
|
2603
|
+
last_pc_ = pc_;
|
2604
|
+
emit(0x66);
|
2605
|
+
emit_optional_rex_32(dst, src);
|
2606
|
+
emit(0x0F);
|
2607
|
+
emit(0x57);
|
2608
|
+
emit_sse_operand(dst, src);
|
2609
|
+
}
|
2610
|
+
|
2611
|
+
|
2612
|
+
void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) {
|
2613
|
+
EnsureSpace ensure_space(this);
|
2614
|
+
last_pc_ = pc_;
|
2615
|
+
emit(0xF2);
|
2616
|
+
emit_optional_rex_32(dst, src);
|
2617
|
+
emit(0x0F);
|
2618
|
+
emit(0x51);
|
2619
|
+
emit_sse_operand(dst, src);
|
2620
|
+
}
|
2621
|
+
|
2622
|
+
|
2623
|
+
void Assembler::comisd(XMMRegister dst, XMMRegister src) {
|
2624
|
+
EnsureSpace ensure_space(this);
|
2625
|
+
last_pc_ = pc_;
|
2626
|
+
emit(0x66);
|
2627
|
+
emit_optional_rex_32(dst, src);
|
2628
|
+
emit(0x0f);
|
2629
|
+
emit(0x2f);
|
2630
|
+
emit_sse_operand(dst, src);
|
2631
|
+
}
|
2632
|
+
|
2633
|
+
|
2634
|
+
void Assembler::ucomisd(XMMRegister dst, XMMRegister src) {
|
2635
|
+
EnsureSpace ensure_space(this);
|
2636
|
+
last_pc_ = pc_;
|
2637
|
+
emit(0x66);
|
2638
|
+
emit_optional_rex_32(dst, src);
|
2639
|
+
emit(0x0f);
|
2640
|
+
emit(0x2e);
|
2641
|
+
emit_sse_operand(dst, src);
|
2642
|
+
}
|
2643
|
+
|
2456
2644
|
|
2457
2645
|
void Assembler::emit_sse_operand(XMMRegister reg, const Operand& adr) {
|
2458
2646
|
Register ireg = { reg.code() };
|
@@ -2468,8 +2656,12 @@ void Assembler::emit_sse_operand(XMMRegister dst, Register src) {
|
|
2468
2656
|
emit(0xC0 | (dst.low_bits() << 3) | src.low_bits());
|
2469
2657
|
}
|
2470
2658
|
|
2659
|
+
void Assembler::emit_sse_operand(Register dst, XMMRegister src) {
|
2660
|
+
emit(0xC0 | (dst.low_bits() << 3) | src.low_bits());
|
2661
|
+
}
|
2662
|
+
|
2471
2663
|
|
2472
|
-
// Relocation information implementations
|
2664
|
+
// Relocation information implementations.
|
2473
2665
|
|
2474
2666
|
void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) {
|
2475
2667
|
ASSERT(rmode != RelocInfo::NONE);
|