antonm@chromium.org
300580d5d8
Check ASCIIness of lhs, not this.
...
In one pathalogical case it's possible to have this->IsAsciiRepresentation() &&
!this->TryFlattenGetString()->IsAsciiRepresentation()---if cons string has two byte
string which holds only ascii chars and second is an empty string. In this case we
would return first which is not AsciiRepresentation(), however cons is.
Review URL: http://codereview.chromium.org/3036046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 18:12:39 +00:00
sgjesse@chromium.org
1844e149ab
Revert r5165 (Added support for ES5's propertyname production)
...
This is to test in Chromium without this change.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/3027043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 14:46:34 +00:00
antonm@chromium.org
791fa08ab7
Add information about memory allocator's size and capacity and heap snapshot into heap stats.
...
That might help us debug OOM crashes in V8.
Review URL: http://codereview.chromium.org/3046049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 14:12:50 +00:00
vegorov@chromium.org
bed254fac9
Do not apply JS_RETURN and DEBUG_BREAK_SLOT relocations on x64.
...
Improve tests for debug API to check behavior of JS_RETURN and DEBUG_BREAK_SLOT relocations.
Review URL: http://codereview.chromium.org/3058049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 13:38:27 +00:00
sgjesse@chromium.org
31f3026b35
Fix GCC 4.4.4 build
...
Force a number functions to not inline in order th work around a bug in GCC 4.4.4.
See http://codereview.chromium.org/3083016 for more info.
Review URL: http://codereview.chromium.org/3034056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 12:34:53 +00:00
vegorov@chromium.org
2ba27d2201
Add RelocInfo::DEBUG_BREAK_SLOT to RelocInfo::kApplyMask on ia32/x64 to ensure that debug break slots get relocated correctly during compacting GC.
...
Review URL: http://codereview.chromium.org/3058048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 11:39:01 +00:00
vegorov@chromium.org
1920692d71
Revert r5174.
...
Review URL: http://codereview.chromium.org/2868108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 11:19:43 +00:00
sgjesse@chromium.org
a1a3aa46a2
Object.seal(obj) and Object.freeze(obj) should return the input obj.
...
BUG=http://code.google.com/p/v8/issues/detail?id=809
TEST=Seal/freeze an object and check if Object.seal and Object.freeze returns the given object.
Burcu Dogan <burcujdogan@gmail.com>
Review URL: http://codereview.chromium.org/3056049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 10:56:15 +00:00
whesse@chromium.org
d25d40aa5c
Modify polymorphic keyed load IC stub to load cached properties from the property array of a fast-case JSObject.
...
Review URL: http://codereview.chromium.org/3053042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 10:45:07 +00:00
kaznacheev@chromium.org
5f78dc14c8
Avoid GC when compiling CallIC stubs.
...
In rare cases GC could be called from ComputeCallMiss function thus
breaking CallIC::LoadFunction.
Review URL: http://codereview.chromium.org/3047027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 08:37:12 +00:00
sgjesse@chromium.org
9ba89856d6
Prepare push to trunk. We are now working on 2.3.6.
...
Review URL: http://codereview.chromium.org/3078024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-04 09:30:55 +00:00
sgjesse@chromium.org
ff00c907cd
VirtualAlloc on Windows 7 does not currently provide sufficient randomization to protect JIT code from being aligned in large regions at a predictable location.
...
This patch manually randomizes the allocation address for PAGE_EXECUTE_READWRITE regions between kAllocationRandomAddressMin and kAllocationRandomAddressMax.
BUG=none
TEST=allocate lots of javascript code and check for contiguous allocations
Patch by Paul Mehta <pmehta@chromium.org>
Review URL: http://codereview.chromium.org/2832095
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-02 15:27:25 +00:00
whesse@chromium.org
571eca3118
Revert r5147 due to failing assert, with no simple solution. Issue 808.
...
Review URL: http://codereview.chromium.org/3087001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-02 15:08:17 +00:00
lrn@chromium.org
24cf5459f5
Added support for ES5's propertyname production.
...
Object initialisers and dot-notation property access allows keywords in ES5.
Also allowed non-identifiers after "get" or "set" in an object initialiser.
Review URL: http://codereview.chromium.org/3047038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-02 12:09:10 +00:00
whesse@chromium.org
f913595828
Prepare push to trunk. Now working on version 2.3.5.
...
Review URL: http://codereview.chromium.org/3040030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-02 11:02:38 +00:00
vegorov@chromium.org
4a2f05ce35
Fix issue 806.
...
Ensure that we are not using r12 as a receiver in inlined NamedStore code.
Review URL: http://codereview.chromium.org/3081007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-02 09:14:44 +00:00
lrn@chromium.org
66574f31de
Unicode: Reduced size of tables.
...
Review URL: http://codereview.chromium.org/3043032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-30 12:59:57 +00:00
peter.rybin@gmail.com
a9958afeee
Roll over again fixed 3029033 Fix 'step in' after live edit stack manipulation
...
Review URL: http://codereview.chromium.org/3066018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-30 11:58:43 +00:00
lrn@chromium.org
1d24f5f56b
Updated unicode library.
...
Added Nl category to letters predicate (as requried for JS identifiers).
Changed/simplified representation of canonicalization ranges.
Truncated tables to code points in the BMP (all that is used by JS).
Reformatted tables to avoid excessively long lines.
Removed duplicate entries from multi-character mapping result tables.
Review URL: http://codereview.chromium.org/3030026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-30 07:10:22 +00:00
peter.rybin@gmail.com
84cf5ca5cb
Roll back all step-in-fix-related changes
...
Review URL: http://codereview.chromium.org/3012035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-29 21:46:19 +00:00
peter.rybin@gmail.com
c3bd79e471
Fix failing tests and rollback two from Testing change for failing unit test
...
Review URL: http://codereview.chromium.org/3052026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-29 21:29:45 +00:00
peter.rybin@gmail.com
fdab0bafbb
Rollback one from Testing change for failing unit test
...
Review URL: http://codereview.chromium.org/2870083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-29 20:32:14 +00:00
peter.rybin@gmail.com
f6517b04d0
Testing change for failing unit test
...
Review URL: http://codereview.chromium.org/3031032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-29 20:23:19 +00:00
peter.rybin@gmail.com
16709ee695
Fix 'step in' after live edit stack manipulation
...
Review URL: http://codereview.chromium.org/3029033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-29 16:40:14 +00:00
vegorov@chromium.org
ec3f9563c9
Fix XCode build.
...
Review URL: http://codereview.chromium.org/3056028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-29 08:31:36 +00:00
podivilov@chromium.org
c115a39942
Add debugger protocol request for setting global flags.
...
Review URL: http://codereview.chromium.org/2880011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 15:50:05 +00:00
kaznacheev@chromium.org
d191b9d7d2
Cache maps for slow case objects.
...
Review URL: http://codereview.chromium.org/3032028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 15:08:32 +00:00
podivilov@chromium.org
52762e4c59
Breakpoint position should be inside function body.
...
Review URL: http://codereview.chromium.org/2883042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 13:02:03 +00:00
whesse@chromium.org
3607a9e78e
Fix error in optimized x.apply(y, arguments) code generation on ARM. Fixes issue 784. Adds regression test.
...
Review URL: http://codereview.chromium.org/3048035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 12:50:27 +00:00
antonm@chromium.org
10b847eb55
Releasing allocated chunks in Pool's destructor.
...
That should make it not leak if v8 wasn't intialized at all.
Review URL: http://codereview.chromium.org/3048034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 12:34:41 +00:00
antonm@chromium.org
9d6fd08276
Port faster callbacks invocation to x64.
...
It's a port of http://code.google.com/p/v8/source/detail?r=3209 to x64 platform.
That allows invocation of callbacks without going into runtime.
Review URL: http://codereview.chromium.org/2801008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 09:36:53 +00:00
lrn@chromium.org
cf21615bd9
X64: Fix order of operands on movq(reg, xmm).
...
Fixes bug 792, and the Transcendental cache is the only use of this operation.
Review URL: http://codereview.chromium.org/2806080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-27 12:02:21 +00:00
lrn@chromium.org
539142a161
Fix some bugs in Function.prototype.bind implementation.
...
Correctly handle not passing thisArg.
Fixes to NewObjectFromBound to use correct argument count, not leak memory,
and handle constructors that throw exceptions.
Review URL: http://codereview.chromium.org/2878057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-27 09:20:21 +00:00
ricow@chromium.org
3f0d383db6
Remove global.print from v8natives.js (fixes issue 791)
...
Review URL: http://codereview.chromium.org/3045016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-27 06:18:32 +00:00
whesse@chromium.org
317a7fe87c
Prepare push to trunk. Now working on version 2.3.4.
...
Review URL: http://codereview.chromium.org/3058009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-26 10:45:46 +00:00
peter.rybin@gmail.com
30b85b3962
Fix break position not to be outside of the script
...
Review URL: http://codereview.chromium.org/3017021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 17:21:55 +00:00
ager@chromium.org
79e332010a
Fix aliasing problem in inlined stores on x64 and ia32. The receiver
...
and the value can share a register. We need to remove this aliasing
before modifying the registers.
I haven't managed to generate a stand-alon test case for this
yet. I'll do that as a separate change. This was found while loading
Wave.
Review URL: http://codereview.chromium.org/3039025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 11:55:03 +00:00
whesse@chromium.org
e8c0a459a9
Fix bug in r5123, Comparison(), by unusing results before unconditional jump to smi comparison JumpTarget.
...
Review URL: http://codereview.chromium.org/3026019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 11:20:59 +00:00
ricow@chromium.org
c167942fd1
Fix presubmit errors.
...
Review URL: http://codereview.chromium.org/3009017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 10:15:21 +00:00
ricow@chromium.org
e084e56129
Implement Function.prototype.bind (ES5 15.3.4.5).
...
Please note that we do not implement correctly the setting of caller
and arguments on the returned objects, since we already have these
properties on function objects (and they are non-configurable).
Also corrects indention in DefineOwnProperty.
Review URL: http://codereview.chromium.org/3046010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 10:08:55 +00:00
whesse@chromium.org
8bb47c1939
Use static type information when creating the inlined code for comparison operators.
...
Review URL: http://codereview.chromium.org/3017025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 09:05:46 +00:00
ager@chromium.org
7d5038a3a4
Fixed a couple of issues with store inlining on arm.
...
Spill and merge virtual frames explicitly in the deferred code.
Account for the fact that the inlined write barrier size depends on
the size of the new space masks.
Review URL: http://codereview.chromium.org/3018015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 08:47:15 +00:00
whesse@chromium.org
9deeec0b08
Change asserts to STATIC_ASSERT if they can be checked at compilation time. Just in the codegen-xxx.cc files on all platforms.
...
Review URL: http://codereview.chromium.org/3017018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 08:25:48 +00:00
antonm@chromium.org
b8b12b2722
Properly propagate failures from helper methods.
...
Otherwise failures are not reported and callback may fail to setup.
Review URL: http://codereview.chromium.org/3035017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-22 13:39:18 +00:00
ager@chromium.org
afa73d3907
Fix Win64 build.
...
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/3017024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-22 09:01:00 +00:00
ager@chromium.org
a36bf8f017
Port inlined in-object property stores to ARM.
...
Review URL: http://codereview.chromium.org/2878043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-22 08:17:40 +00:00
ager@chromium.org
dc45fcb232
Port inline in-object property stores from ia32 to x64.
...
Review URL: http://codereview.chromium.org/3008017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-22 06:31:49 +00:00
kaznacheev@chromium.org
3377349a51
Support object literal map caching for literals with keys that are array indices.
...
The caching code used to require that all keys in the literal were symbol strings
in order to be able to cache object literal maps.
Relaxed this requirement to allow array indices as well (as in { "1": "one", two: "two" }).
Changed the way 'number_of_properties' is calculated so that redundant property slots are not
allocated for array indices.
Review URL: http://codereview.chromium.org/2858064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-22 06:28:47 +00:00
whesse@chromium.org
8105e9baa3
Remove VirtualFrame::CallStoreIC(void) and CallCommonStoreIC from virtual-frame-x64.cc. Make implementations of CallStoreIC(key, is_contextual) and CallKeyedStoreIC() the same on x64 and ia32. Make ia32 and x64 implementations more alike by moving some functions and changing comments.
...
Review URL: http://codereview.chromium.org/3060002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-21 15:16:01 +00:00
whesse@chromium.org
9174700dca
Add EmitKeyedStore and EmitKeyedPropertyAssignment to x64. Removal of Reference class from VisitAssignment complete on all platforms.
...
Review URL: http://codereview.chromium.org/3028015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-21 11:52:57 +00:00
fschneider@chromium.org
08c753d087
Prepare push to trunk. Now working on version 2.3.3.
...
Review URL: http://codereview.chromium.org/3053006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-21 10:53:38 +00:00
whesse@chromium.org
fe02d5e25f
Add EmitNamedStore and CallStoreIC(name, is_contextual) to x64 platform.
...
Review URL: http://codereview.chromium.org/3050008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-21 10:31:52 +00:00
whesse@chromium.org
6612b98dcf
Add EmitSlotAssignment to x64 platform.
...
Review URL: http://codereview.chromium.org/2878042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-21 08:50:57 +00:00
ager@chromium.org
74f9789f61
Landing for Rodolph Perfetta.
...
Add support for saturation instruction (ARMv6 or above).
The byte array clamping code has been updated accordingly.
Review URL: http://codereview.chromium.org/3036008/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-21 07:42:51 +00:00
ager@chromium.org
c9c7f8834e
Inline in-object property stores on ia32 when in loop and not in top-level code.
...
Review URL: http://codereview.chromium.org/3046006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-21 06:59:34 +00:00
whesse@chromium.org
54f68eacbf
Stop pushing arguments onto the stack in CompareStub until just before calling runtime.
...
This is a fixed version of change 5097, which had the problem that LoadFloatOperands tried to load the arguments from the stack.
Review URL: http://codereview.chromium.org/3040010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-20 12:41:43 +00:00
vegorov@chromium.org
f32e2b7093
Output time spent in code flushing in GC NVP trace.
...
Add support for flushcode scope and cumulative stats into gc-nvp-trace-processor.
Review URL: http://codereview.chromium.org/3054003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-20 10:59:00 +00:00
ricow@chromium.org
6f69731a23
Update inheritance hierarchy in Objects.h to better reflect the actual hierarchy.
...
We do not have a GlobalContext class.
We do, however, have a SerializedScopeInfo class that inherits FixedArray.
Starting comment is also slightly misleading, since not all objects in the hierarchy is described in objects.h (e.g., Context is described in contexts.h).
Review URL: http://codereview.chromium.org/2811057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-20 07:14:19 +00:00
ager@chromium.org
ec70b5c085
Update Code::NUMBER_OF_KINDS to include binary op ICs.
...
Review URL: http://codereview.chromium.org/3027013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-20 06:23:36 +00:00
whesse@chromium.org
24ca3eddd7
Revert 5097 on ia32 platform until problem is diagnosed.
...
Review URL: http://codereview.chromium.org/3018009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 14:26:51 +00:00
whesse@chromium.org
96a7cc4a38
Delay the pushing of arguments until just before calling runtime in CompareStub.
...
This will allow jumps to runtime that skip useless tests.
Review URL: http://codereview.chromium.org/3016004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 13:35:41 +00:00
antonm@chromium.org
793d0a92b9
Add a check that weak object handle is not in NEAR_DEATH state after weak callback invocation.
...
If object enters NEAR_DEATH state, it must be explicitly cleared and/or disposed, otherwise
it would retain JS object forever. Note as well that parameter is reset to NULL on first
invocation so weak handle callback would be in hard situation.
Review URL: http://codereview.chromium.org/3011009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 13:26:25 +00:00
whesse@chromium.org
9991a4b226
Fix issue 785. For-in now works on strings: for (var i in "asdf") now works
...
all the time, not just the first time it is run.
Review URL: http://codereview.chromium.org/3037008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 12:45:21 +00:00
ager@chromium.org
2a877bfc95
Landing for pmehta.
...
Changed a static cast from static_cast<int> to static_cast<size_t>
that previously introduced a signed/unsigned comparison issue in the
main allocator for V8 (MemoryAllocator::AllocateRawMemory) that could
be used to bypass the V8 allocation limitations or trigger integer
overflows.
Review URL: http://codereview.chromium.org/3027006/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 10:02:11 +00:00
ricow@chromium.org
aec9ce891e
Prepare push to trunk. Now working on version 2.3.2.
...
Review URL: http://codereview.chromium.org/2811055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 07:33:05 +00:00
ricow@chromium.org
5caa11dafb
Reorder SharedFunctionInfo setup in lazy compile, quick fix for crbug.com/49099
...
This fixes issue 49099 (http://crbug.com/49099 ) that makes chromium
crash if a gc is triggered by setting the scopeinfo in CompileLazy. If
this gc triggers code flushing the compiled function could be flushed,
causing the ASSERT(shared->is_compiled()) to fail. By reordering the
two methods we make sure that no allocation happens before the end of
the method.
Review URL: http://codereview.chromium.org/3035006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 06:29:30 +00:00
ricow@chromium.org
4957326521
Refactor type checks in v8natives.js and runtime.js.
...
This includes adding a new inline IsSpecObject method to the code
generator. The old approach was somehow ineffecient since we would
call both IsObject, IsUndetectable and IsFunction to determine if
something was an object according to the spec. This change introduces
a new macro that determines if something is an object according to the
spec (and this does not include null).
This change also corrects a few places where undetectable objects was
not allowed even when they should be (priorly they would use only
IS_SPEC_OBJECT_OR_NULL, which would return false on an undetectable
object, the new IS_SPEC_OBJECT returns true on an undetectable object.
Review URL: http://codereview.chromium.org/2877018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-16 11:21:08 +00:00
serya@chromium.org
931bf1d63d
StringDictionary::FindEntry optimized for symbol strings.
...
Review URL: http://codereview.chromium.org/3020003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-16 10:07:57 +00:00
whesse@chromium.org
1f85eccb24
Fix compilation errors on X64. Error from r5080 is constructor Operand(register) with too few arguments, while constructing a dummy return value in unreachable code to avoid compiler errors. Also added explicit cast from intptr_t to int in profile-generator.cc to avoid compiler warnings, introduced in r5078.
...
Review URL: http://codereview.chromium.org/3030002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-16 08:20:39 +00:00
mikhail.naganov@gmail.com
f2cf990de2
Fix TestHeapEntryIdsAndGC test. The assert was wrong.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2861051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 15:41:05 +00:00
whesse@chromium.org
5794e68f76
Remove unnecessary formatting differences between ia32 and x64 code generators. Mainly just typographical changes.
...
Review URL: http://codereview.chromium.org/3023001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 14:31:49 +00:00
mikhail.naganov@gmail.com
522faec553
Fix compile errors on Linux x64 and Windows.
...
Will fix test-heap-profiler in the next change.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2877019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 14:28:52 +00:00
mikhail.naganov@gmail.com
c98ac6e82c
Heap profiler: implement diffing of snapshots.
...
To trace objects between snapshots, an external map of object tags is
maintained. After the first heap snapshot has been taken, the map is
updated by reporting object moves from the GC. If no snapshots were
taken, there is no overhead (except for flag checking).
I considered graph comparison algorithms that doesn't require using
object tags, but they are all of a high computational complexity, and
will still fail to detect object moves properly, even for trivial
cases, so using tags looks like unavoidable.
Review URL: http://codereview.chromium.org/3020002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 13:21:50 +00:00
whesse@chromium.org
dd06f4f102
Avoid a smi check when comparing an unknown to a constant smi for equality on ia32 and x64 platforms.
...
Review URL: http://codereview.chromium.org/2897013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 10:34:08 +00:00
whesse@chromium.org
ee1598ad90
Fix compilation and linking with V8_INTERPRETED_REGEXP flag.
...
Review URL: http://codereview.chromium.org/2836051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 10:31:30 +00:00
ager@chromium.org
c93971ba20
Prepare push to trunk. Now working on version 2.3.1.
...
Review URL: http://codereview.chromium.org/2805081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 08:50:01 +00:00
ricow@chromium.org
f5f0b80363
Implement ES5 Object.seal and Object.isSealed.
...
This change adds the ES5 Object.seal 15.2.3.8 and Object.isSealed 15.2.3.11 methods.
Review URL: http://codereview.chromium.org/2993006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 07:51:14 +00:00
serya@chromium.org
1b9391be7a
Fix GenerateNegativeLookup to work with non-symbols as a dictionary key.
...
Review URL: http://codereview.chromium.org/2928009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 06:17:45 +00:00
whesse@chromium.org
cb1eedd269
Fix error in x64 fast smi loops, change 4998.
...
Review URL: http://codereview.chromium.org/2925012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-14 13:22:47 +00:00
ricow@chromium.org
e2fab5fd9f
Fix bug in Object.isFrozen which always classifies non-extensible objects as frozen.
...
Since out internal representation of a property descriptor does not have configurable and writable
attributes Object.isFrozen returns true whenever an object is not extensible.
This change makes use of the right method calls on our internal representation (isWritable() and
isConfigurable()). Tests added directly to the mjsunit test.
Review URL: http://codereview.chromium.org/2904015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-14 13:15:43 +00:00
kaznacheev@chromium.org
db23321704
Create a separate class to encapsulate ScopeInfo serialization.
...
The static ScopeInfo members moved into this class.
The new class is named ScopeInfoObject which I am not proud of,
better ideas are very welcome.
Also got rid of the sentinels in the serialized scope info which saves 3 words per function
and is not slower.
Review URL: http://codereview.chromium.org/2908009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-14 11:18:09 +00:00
ricow@chromium.org
3bc97b7d34
Remove check for heap allocated locals from code flushing.
...
Since bleeding edge revision 5056 we no longer need to check that
there are no heap allocated locals in the scope info, since these will
be preserved after the scope info was moved to the SharedFunctionInfo
class.
Review URL: http://codereview.chromium.org/2931016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-14 09:45:08 +00:00
mikhail.naganov@gmail.com
84ffa5610b
Debugger: introduce parametrized debug break, the parameter is passed
...
back to EventListener to be able to dynamically specify behavior
on asynchronously enforced VM breakouts.
Review URL: http://codereview.chromium.org/2962007/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-14 08:23:35 +00:00
ager@chromium.org
6744793c90
Landing for Rodolph Perfetta.
...
Allow compareStub on ARM to take register in reverse order optionally.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/2850046/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 20:54:06 +00:00
ager@chromium.org
7664a4556a
Prepare push to trunk. Now working on version 2.3.0.
...
Review URL: http://codereview.chromium.org/2981005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 20:24:16 +00:00
kaznacheev@chromium.org
0243bc875c
Move serialized scope info from Code object to SharedFunctionInfo.
...
The scope info is now stored in a FixedArray referenced from SharedFunctionInfo.
Review URL: http://codereview.chromium.org/2918001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 13:06:33 +00:00
ricow@chromium.org
325fd42c3f
Add ES5 Object.freeze and Object.isFrozen methods.
...
This change adds ES5 15.2.3.9 Object.freeze and
15.2.3.12 Object.isFrozen
Review URL: http://codereview.chromium.org/2944016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 12:58:02 +00:00
ager@chromium.org
0f4a330508
Fix JSON.parse typo which causes the input not to be string converted.
...
Review URL: http://codereview.chromium.org/2981004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 10:57:45 +00:00
ager@chromium.org
ad5e73fb85
Fix preparsing from a source string that is not external.
...
This fixes issue 775.
Review URL: http://codereview.chromium.org/2959007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 10:29:31 +00:00
serya@chromium.org
b569e6f562
Simplifying GenerateDictionaryNegativeLookup by making the 'extra' parameter mandatory.
...
Review URL: http://codereview.chromium.org/2982001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 10:02:11 +00:00
whesse@chromium.org
20d4c6d52d
Fix compilation error on 64-bit MacOS V8 compilation. ASSERT_EQ macro needs unambiguous similar integer types as arguments.
...
Review URL: http://codereview.chromium.org/2982005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 08:55:06 +00:00
vegorov@chromium.org
7780bea2f0
Virtually dispatched scavengers
...
Use virtually dispatched specialized scavengers instead of single generic ScavengeObjectSlow implementation.
Rollback of r5041 with assertion checking callback alignment removed. Map space is iterated in a special fashion during scavenges so special callback alignment is not required.
Review URL: http://codereview.chromium.org/2950003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 08:05:10 +00:00
ager@chromium.org
ef8baf25fc
Revert revisions 5041 and 5042 introducing virtual scavenge
...
behavior. It breaks debug builds with snapshots on my machine.
TBR=vegorov@chromium.org
Review URL: http://codereview.chromium.org/2983001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 16:57:07 +00:00
ager@chromium.org
f6e049b0ce
Remove the special error message for overflows when using
...
Function.prototype.apply. This avoids having more than one error
message for stack overflow situations which makes testing a pain.
Review URL: http://codereview.chromium.org/2967003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 15:29:25 +00:00
serya@chromium.org
43e28a6fea
Port prototype-call-stubs for normal objects ( http://codereview.chromium.org/2801018 ).
...
Review URL: http://codereview.chromium.org/2860049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 13:23:42 +00:00
yurys@chromium.org
abaf8347a5
Allow to capture stack trace for uncaught exceptions
...
Review URL: http://codereview.chromium.org/2961003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 13:17:27 +00:00
vegorov@chromium.org
4dd71ce221
Fix Win64 build problem introduced by r5041.
...
Review URL: http://codereview.chromium.org/2893009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 13:11:42 +00:00
vegorov@chromium.org
ef6cb2dd0b
Use virtually dispatched specialized scavengers instead of single generic ScavengeObjectSlow implementation.
...
Review URL: http://codereview.chromium.org/2895008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 12:47:09 +00:00
whesse@chromium.org
4329a58b1c
Code cleanup: reorder functions in codegen-x64.cc to agree with the order in codegen-ia32.cc. If svn blame shows this change, run svn blame on the previous version of the file to find the actual author of the lines.
...
Review URL: http://codereview.chromium.org/2955004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-09 13:20:12 +00:00
erik.corry@gmail.com
5bc0522ad4
Second half of number alloc change accidentally omitted from
...
last change.
Review URL: http://codereview.chromium.org/2919001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 13:50:13 +00:00
erik.corry@gmail.com
c205ffe05c
Add number allocation call to runtime.cc instead of misusing
...
UnaryMinus.
Review URL: http://codereview.chromium.org/2899004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 13:16:51 +00:00
erik.corry@gmail.com
8c767e02f9
ARM: Add support for the VFP mov literal instruction and mov
...
between single VFP registers. Math.pow implementation has
been updated with the new instructions. This is a commit
of http://codereview.chromium.org/2813046/show for Rodolph
Perfetta.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 12:38:02 +00:00
erik.corry@gmail.com
068e0bc032
Add ReleaseStore function on OpenBSD.
...
Review URL: http://codereview.chromium.org/2916001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 08:12:17 +00:00
mikhail.naganov@gmail.com
03b566be92
Fix concurrent access to VMState::current_state_.
...
The main fix is for current_state() and external_callback() accessors.
I also applied memory access ordering on current_state_ modification,
mainly to reflect the fact that it is being shared among VM and profiler
sampler threads.
BUG=361
Review URL: http://codereview.chromium.org/2852047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-08 08:00:38 +00:00
erik.corry@gmail.com
149dea4ab0
Prepare push to trunk. We are now working on version 2.2.24.
...
Review URL: http://codereview.chromium.org/2887011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-07 12:09:22 +00:00
whesse@chromium.org
f7c85755ba
Prevent invalid pre-parsing data passed in through the API from crashing V8.
...
Review URL: http://codereview.chromium.org/2876046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-07 10:28:22 +00:00
kaznacheev@chromium.org
4798d2c4f3
Fix crash introduced in r5019.
...
Note to self: never leave uninitialized objects in the code space.
Review URL: http://codereview.chromium.org/2800044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 13:48:51 +00:00
vitalyr@chromium.org
12e62f316d
Make lint happy.
...
Review URL: http://codereview.chromium.org/2832051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 13:43:21 +00:00
vitalyr@chromium.org
97234b4a25
Remove some extra calls in date.js.
...
A few hot Date.prototype functions used to be implemented as
DateGetFoo calling GetFooFrom(this), and other callers of GetFooFrom
did repeated date value extraction. In this change GetFooFrom
functions were inlined into the functions on the prototype and the
other callers switched to using date values directly.
Review URL: http://codereview.chromium.org/2841041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:57:46 +00:00
erik.corry@gmail.com
118a421067
Simplify the transitions in the Binary Op ICs. Now a single call
...
to the runtime will both patch in the more specialized binary op
stub and calculate the answer. This eliminates the need to call
both the rest of the binary op and the patching runtime call. The
runtime routines are altered to be more agressive in returning
Smis so we don't get spurious heap numbers as inputs to binary ops
while we are patching the binary op ICs.
Review URL: http://codereview.chromium.org/2843049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:56:55 +00:00
vitalyr@chromium.org
7b521af105
Fix crash: handle all flat string types in regexp replace.
...
Review URL: http://codereview.chromium.org/2868046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:22:19 +00:00
podivilov@chromium.org
ae81e558fe
Do not create handle in BreakLocationIterator::ClearDebugBreakAtIC
...
Debug::HandleWeakDebugInfo weak callback is crashed when there is no handle scopes on the stack.
Review URL: http://codereview.chromium.org/2835035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:10:49 +00:00
lrn@chromium.org
b941a40a82
Convert Unicode code points outside the basic multilingual plane to the replacement character.
...
Previous behavior was to silently truncate the value to 16 bits.
Review URL: http://codereview.chromium.org/2832050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 07:31:35 +00:00
lrn@chromium.org
90e9e99b3c
RegExp replace with empty string optimization by Sandholm.
...
Review URL: http://codereview.chromium.org/2809048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 12:49:00 +00:00
kaznacheev@chromium.org
8a4463306d
Extracting relocation info from the code object.
...
It is now stored in a ByteArray referenced from the code object header.
Review URL: http://codereview.chromium.org/2812041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 11:45:11 +00:00
erik.corry@gmail.com
8da222b010
Specialize GenericUnaryStub so that it knows whether it needs to
...
take negative zero into account.
Review URL: http://codereview.chromium.org/2850043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 11:03:16 +00:00
kmillikin@chromium.org
b34151979b
Prepare push to trunk. Now working on version 2.2.23.
...
Review URL: http://codereview.chromium.org/2827046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-05 10:33:20 +00:00
peter.rybin@gmail.com
6563b3a2fc
Describe LiveEdit changes and support preview mode
...
Review URL: http://codereview.chromium.org/2883020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:46:04 +00:00
erik.corry@gmail.com
8b8185721d
Make ignore-negative-zeros analysis a little sharper.
...
Review URL: http://codereview.chromium.org/2799048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:24:40 +00:00
ager@chromium.org
06a28cbe57
Fix bug in date code (issue 736) where -0 was not mapped to 0. This caused the
...
runtime system to throw an exception because it expected smi arguments.
Review URL: http://codereview.chromium.org/2848038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:09:33 +00:00
erik.corry@gmail.com
92f2c471d5
ARM: Use VFP for non-Smi bitops results. This is basically Rodolph
...
Perfettas change from http://codereview.chromium.org/2829032 with
a tiny tweak to the unsigned shift right case.
Review URL: http://codereview.chromium.org/2861043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:03:07 +00:00
ricow@chromium.org
eed4ed99c8
Add ES5 Object.isExtensible and Object.preventExtensions.
...
Review URL: http://codereview.chromium.org/2819034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:36:34 +00:00
serya@chromium.org
c56b92d65d
This change allows generating call-stubs for objects with normal (non-fast) objects in the prototype chain. StubCompiler::CheckPrototypes does ne
...
If the top level object is a normal object the stub is stored in its prototype map.
Lookup result of type NORMAL is not covered (since the normal stub currently doesn't check the prototype chain).
Review URL: http://codereview.chromium.org/2801018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:15:04 +00:00
lrn@chromium.org
04da7b90c9
X64: Added register holding Smi::FromInt(1).
...
Don't use r15 for anything any more.
Review URL: http://codereview.chromium.org/2885018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:09:35 +00:00
ager@chromium.org
47b5b3f951
Use the number of in-object properties when deciding how many fast
...
properties to allow on an object. If there are many in-object
properties it is unlikely that the object is used as a dictionary and
we allow more map transitions to keep such objects in fast case.
Review URL: http://codereview.chromium.org/2818041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 11:27:57 +00:00
erik.corry@gmail.com
f9eb21f950
Simplify ToBoolean if we know we have a Smi.
...
Review URL: http://codereview.chromium.org/2808039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 08:42:22 +00:00
ager@chromium.org
a835641dee
Landing for victorw@chromium.org.
...
Fix issues so v8 could be built as a DLL.
-. get rid of all the compiler warning by moving dllexport/dllimport
to the individual members for classes which have inline members.
-. update v8 gyp to build v8.dll for chromium multi-dll version (win
and component==shared_library)
Note: most of the code are contributed by sjesse.
Code review URL: http://codereview.chromium.org/2882009/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 07:39:42 +00:00
whesse@chromium.org
8afef876dd
Fix problem in r4998. Initialize target of break and continue in fast smi loop on X64.
...
Review URL: http://codereview.chromium.org/2830033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 16:00:51 +00:00
whesse@chromium.org
94ae008739
Let relational comparison operators quickly compare a string with itself.
...
Review URL: http://codereview.chromium.org/2802028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 15:18:07 +00:00
erik.corry@gmail.com
5a54b7030d
ARM: Don't emit a write barrier for an inlined keyed load
...
if the right hand side is a literal like true, false, etc.
Also if the value is not a likely Smi we inline the newspace
check.
Review URL: http://codereview.chromium.org/2833048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 15:06:24 +00:00
lrn@chromium.org
59f2b6c825
X64: Made simpler version of fast-smi-loop code.
...
It avoids the overflow check on the increment.
Review URL: http://codereview.chromium.org/2835030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 13:19:32 +00:00
podivilov@chromium.org
9added5953
Clear function breakpoints in Debug::HandleWeakDebugInfo callback.
...
When removing debug_info from SharedFunctionInfo, clear all breakpoints associated with that debug_info.
This is needed because function will live in heap until next gc, and therefore can be found
by Runtime::FindSharedFunctionInfoInScript.
Review URL: http://codereview.chromium.org/2848032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-01 11:48:45 +00:00
peter.rybin@gmail.com
9b4369c7d8
LiveEdit: Support debug break slots in frame dropping implementation
...
Review URL: http://codereview.chromium.org/2844030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 17:29:00 +00:00
sgjesse@chromium.org
97ecc50377
ARM: Correctness fix to Math.pow optimization
...
The change in r4990 contained a bug in Math.pow when then exponent was a large negative smi. In that case calculating 1/Math.pow(x,-y) did not provide the correct result as Math.pow(x,-y) would overflow ti infinity. This was caught by Sputnik test S8.5_A13_T1.
Review URL: http://codereview.chromium.org/2815039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 15:19:06 +00:00
sgjesse@chromium.org
bbb2648464
ARM: Fix GC bug with previous change
...
The change in r4990 contained a bug in Math.pow. One of the arguments for the call to runtime where clobbered if allocation of the heap number for the result failed.
Caught by a couple of Mozilla tests which does a lot of calls to Math.pow.
Fix presubmit error in x64.
Review URL: http://codereview.chromium.org/2847037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 13:39:03 +00:00
whesse@chromium.org
b122fbd363
Decide that different detectable objects are not equal without calling runtime, on all platforms.
...
Review URL: http://codereview.chromium.org/2805046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 13:24:47 +00:00
ager@chromium.org
6044b33766
Implement IC for storing to dictionary case objects.
...
The IC stub is completely generic, so there will only be one such stub
in the system.
Added a new overloaded version of the macro assembler RecordWrite
method for cases where we have the address we store to computed up
front.
Review URL: http://codereview.chromium.org/2804029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 12:27:49 +00:00
sgjesse@chromium.org
ff6c4fe680
ARM: Special code for raising to the power of an integer
...
When calculating Math.pow where the exponent is a smi use a simple loop to calculate the result.
Added support for the vmov instruction moving from one doubleword extension register to another.
Added some Math.pow tests which partially covers what is in the Sputnik tests.
Review URL: http://codereview.chromium.org/2804033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 12:22:15 +00:00
lrn@chromium.org
75021a03d3
Prepare push to trunk. We are now working on version 2.2.22.
...
Review URL: http://codereview.chromium.org/2886005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 08:57:23 +00:00
sgjesse@chromium.org
fd5a7b37a2
ARM: Fix disassembly of double registers
...
Added a few disassembler tests for vadd, vsub, vmul and vdiv.
Review URL: http://codereview.chromium.org/2823036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 08:46:19 +00:00
lrn@chromium.org
0653689450
Fix Chromium issue 47824.
...
In rare cases a two-byte string was mistaken for an ascii-string.
Review URL: http://codereview.chromium.org/2858033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 07:40:40 +00:00
lrn@chromium.org
ade53c4282
X64: Make the ToBoolean inline code do even less if the value is known to be a smi.
...
Review URL: http://codereview.chromium.org/2834028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 14:15:34 +00:00
lrn@chromium.org
d539095bcb
X64: A number of small tweaks.
...
Fix bug in disassembler output (using non-generic registers for memory operands in some cases).
Fix bug in movsxbq and make REX optional in movzx?q.
Review URL: http://codereview.chromium.org/2834027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 14:03:11 +00:00
vitalyr@chromium.org
6328df4fa2
Type info: fix three bit representation of smi type.
...
Review URL: http://codereview.chromium.org/2802022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 13:48:20 +00:00
sgjesse@chromium.org
65018d9123
ARM: Use the vsqrt instruction when available
...
vsqrt is used to calculate Math.sqrt(x), Math.pow(x, 0.5) and Math.pow(x, -0.5). Code size doesn't matter, as %_MathSqrt and %_MathPow are only called in one place each.
Review URL: http://codereview.chromium.org/2885002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 09:40:36 +00:00
ricow@chromium.org
eff34b9952
Update JSON.stringify to floor the space parameter (fixes issue 753).
...
Review URL: http://codereview.chromium.org/2877004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 07:22:40 +00:00
whesse@chromium.org
363060ca23
Ensure that ToPrimitive is called on all objects involved in comparisons <, <=, >, >=. Ensures that ToPrimitive is called when comparing an object to undefined. Fixes bugs on all platforms.
...
Review URL: http://codereview.chromium.org/2834022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 06:47:19 +00:00
podivilov@chromium.org
b2b140a525
Provide actual breakpoints locations in response to setBreakpoint and listBreakpoints requests.
...
Review URL: http://codereview.chromium.org/2799037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 12:09:29 +00:00
erik.corry@gmail.com
bcfaba24c1
Do integer mod via sum-of-digits technique. This benefits the date
...
code.
Review URL: http://codereview.chromium.org/2876011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 11:47:23 +00:00
fschneider@chromium.org
eaaa2d8559
Prepare push to trunk. We are now working on version 2.2.21.
...
Review URL: http://codereview.chromium.org/2882002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 11:17:55 +00:00
whesse@chromium.org
8fda0670ef
Remove not-both-smis optimization on FloatingPointHelper::LoadNumbersAsIntegers on X64 platform.
...
Review URL: http://codereview.chromium.org/2861031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 10:54:07 +00:00
yurys@chromium.org
7832dd1b97
Fix 15.2.3.4 es5conform test
...
TBR=mnaganov,sgjesse
Review URL: http://codereview.chromium.org/2832029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 09:25:09 +00:00
yurys@chromium.org
8896e45dec
Object.getOwnPropertyNames should be free of duplicates
...
BUG=41243
Review URL: http://codereview.chromium.org/2825026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 08:31:31 +00:00
lukezarko
5751d8f50c
Avoid a potential null dereference wrt the CPU profiler.
...
GetActiveProfilerModules()/PauseProfiler()/ResumeProfiler() can be reached
from the API when the --prof runtime flag is not set, leading to null
dereferences. Verify that Logger::profiler_ is non-NULL before using it.
Review URL: http://codereview.chromium.org/2843023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 15:57:30 +00:00
lrn@chromium.org
49c4718443
Fix bug in CheckBothPositiveSmi macro.
...
Fix lint.
Review URL: http://codereview.chromium.org/2826021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 12:31:49 +00:00
lrn@chromium.org
f0529878d1
Add special case of taking a substring that is the entire string to stub.
...
Review URL: http://codereview.chromium.org/2800027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 11:24:41 +00:00
ricow@chromium.org
faaf524445
Fixes bug in Array.prototype.lastIndexOf when called with null or undefined as fromIndex argument. (fixes issue 754).
...
Review URL: http://codereview.chromium.org/2840021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 09:28:38 +00:00
vegorov@chromium.org
8036035777
Don't make any decisions on old space limits after scavenges.
...
We just do not possess enough information at that point.
Review URL: http://codereview.chromium.org/2836026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 08:59:52 +00:00
lrn@chromium.org
991af26519
Less intrusive patch for regexp bug.
...
Review URL: http://codereview.chromium.org/2843024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:51:46 +00:00
ager@chromium.org
b71fe5b61e
Fix bug in JSON.stringify where Boolean objects are incorrectly
...
unwrapped.
This fixes issue 752.
Review URL: http://codereview.chromium.org/2845023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:45:52 +00:00
lrn@chromium.org
7b46a1f49d
Fix bug in regexp exec with global regexps.
...
Review URL: http://codereview.chromium.org/2826020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:00:29 +00:00
whesse@chromium.org
667c5e84a1
Port optimization of comparison with a trivial LHS from ia32 to x64.
...
Review URL: http://codereview.chromium.org/2868028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 14:22:25 +00:00
whesse@chromium.org
d0a9f76261
Fix error in for-in on x64 platform using full compiler with keyed store IC.
...
BUG=v8:748
http://code.google.com/p/v8/issues/detail?id=748
Review URL: http://codereview.chromium.org/2810027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 14:02:36 +00:00
vitalyr@chromium.org
8ab6832203
Add "has fast elements" bit to maps and use it in inlined keyed loads.
...
A potential issue with this change is creating lots of maps when
objects flip between fast/slow elements modes. We could add special
transitions to avoid this. Yet testing this on our benchmarks, gmail,
and wave seems to indicate that this is not a real problem.
Review URL: http://codereview.chromium.org/2870018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 13:56:35 +00:00
kaznacheev@chromium.org
1e3743a4dd
Fixing the regression introduced in r4716.
...
The regression made 2 tests fail on ia32 with --always-full-compiler.
Review URL: http://codereview.chromium.org/2862028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 12:31:49 +00:00
vegorov@chromium.org
1bb0ef0af4
Fix compilation failure on Win.
...
Review URL: http://codereview.chromium.org/2821016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 12:11:24 +00:00
vegorov@chromium.org
ae39e059c2
Take survival rates of young objects into account when choosing old generation limits.
...
Stable high survival rates of young objects both during partial and
full collection indicate that mutator is either building or modifying
a structure with a long lifetime.
In this case we aggressively raise old generation memory limits to
postpone subsequent mark-sweep collection and trade memory space
for the mutation speed.
Review URL: http://codereview.chromium.org/2809032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 11:44:23 +00:00
sandholm@chromium.org
4695ef1a09
Change kMinComplexMemCopy to 64 for IA32. It's just better.
...
Review URL: http://codereview.chromium.org/2818028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 11:21:58 +00:00
erik.corry@gmail.com
a4a757d74f
ARM: Remove spilled scopes.
...
Review URL: http://codereview.chromium.org/2848023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 11:05:38 +00:00
lrn@chromium.org
40d86c616c
X64: Remove more fpu code. Unroll more local initialization loops.
...
Review URL: http://codereview.chromium.org/2815028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 09:03:49 +00:00
erik.corry@gmail.com
251b1c5f93
ARM: Remove a bunch of spilled scopes. Still a lot to go.
...
Review URL: http://codereview.chromium.org/2828004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 07:54:48 +00:00
lrn@chromium.org
0dee9a7942
X64: Change some fpu operations to use XMM registers.
...
Review URL: http://codereview.chromium.org/2827022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 14:05:18 +00:00
erik.corry@gmail.com
ca8298273a
ARM: Fix bug introduced in 4783 (2.2.15) that caused the
...
result of 1 << x to be miscalculated for some inputs.
Review URL: http://codereview.chromium.org/2848021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 13:44:11 +00:00
lrn@chromium.org
a2fc244de2
X64: A bunch of small fixes.
...
Make push/pop use emit_optional_rex32.
Fix bug in disassembler (swapped name of comisd/ucomisd).
Use fstp in FCmp macro.
Review URL: http://codereview.chromium.org/2818026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 11:48:30 +00:00
whesse@chromium.org
132fea7980
Use SSE2 registers when comparing identical heap numbers on X64.
...
Review URL: http://codereview.chromium.org/2850018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 09:21:32 +00:00
kaznacheev@chromium.org
927750571c
Remove redundant checks in and around GenerateDictionaryLoad.
...
Similar or duplicate checks are scattered around the code before doing the dictionary load.
Also the entire branch in GenerateCallNormal that handles global/builtin receiver is
guaranteed to bail out from GenerateDictionaryLoad, so there is no point in generating it at all.
The purpose of the patch is:
- making C++ code more compact and transparent,
- not generating dead code.
There is a tiny performance gain. The patch is ia32 only for now.
Please tell me if I am missing anything.
Review URL: http://codereview.chromium.org/2801007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 09:10:21 +00:00
ricow@chromium.org
0b11e5ba22
Prepare push to trunk. Now working on version 2.2.20.
...
Review URL: http://codereview.chromium.org/2815025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 08:51:53 +00:00
ricow@chromium.org
be531accc0
Add regression test for the code flushing in issue 474 (which was
...
fixed in revision 4921).
This also enables codeflushing by default.
Review URL: http://codereview.chromium.org/2829020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 08:02:06 +00:00
ricow@chromium.org
a330683b00
Only flush code when there are no heap allocated locals in the scopeinfo.
...
When flushing code we can potentially flush code with a scopeinfo that
we later need to resolve variables. This makes an explicit check that
there are heap allocated locals in the scopeinfo.
Review URL: http://codereview.chromium.org/2836021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 07:16:09 +00:00
lrn@chromium.org
41d9d375e3
Lower waste from alignment of deferred code blocks.
...
Some ARM chips load instructions 8 byte at a time.
Review URL: http://codereview.chromium.org/2809029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 07:03:34 +00:00
mikhail.naganov@gmail.com
b6e6ab6972
Heap profiler: perform a GC round before taking a snapshot
...
to get rid of global object loaded from a snapshot. This
eliminates the "double global object" issue. Thanks to Mads
for suggesting this!
Review URL: http://codereview.chromium.org/2865013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 14:58:08 +00:00
lrn@chromium.org
05fa888927
Made scanner follow coding style.
...
Review URL: http://codereview.chromium.org/2832018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 12:31:24 +00:00
erik.corry@gmail.com
7287aff403
Augment trace-ic to provide information on patching inlined loads.
...
Review URL: http://codereview.chromium.org/2818023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 12:12:32 +00:00
lrn@chromium.org
2bd8d3323b
X64: Change strategy for spilling to match ia32. It's just better.
...
Align deferred code blocks to 16-byte address boundaries.
Review URL: http://codereview.chromium.org/2855018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 10:07:57 +00:00
erik.corry@gmail.com
53340b2624
Add movw and movt support for ARMv7. This includes some code from
...
Zhang Kun. For now we only emit movw and movt in places where no
relocation is needed. Small performance boost (around 0.5%).
Also adds support for turning ALU operations (eor etc.) with
large immediates into mvn or movw followed by a register-based
ALU operation.
Review URL: http://codereview.chromium.org/2821014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 08:38:32 +00:00
evan@chromium.org
6b1d21c662
Use this->Foo() in some places due to two-phase lookup.
...
This is required by more strict compilers (Clang).
Review URL: http://codereview.chromium.org/2037004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 20:52:43 +00:00
lrn@chromium.org
324a6df321
X64: Fix bug in LoadSSE2NumberOperands. It can be called with two smis!
...
Remove some unused labels.
Review URL: http://codereview.chromium.org/2861011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 12:39:37 +00:00
lrn@chromium.org
ed55948864
X64: Reapply fix for allocating HeapNumber results for >>>.
...
Also skip case where both number arguments are smis.
Review URL: http://codereview.chromium.org/2814021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 11:21:36 +00:00
sgjesse@chromium.org
bdbda3b6d0
ARM: Update the generation of the name for GenericBinaryOpStub
...
Review URL: http://codereview.chromium.org/2840011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 10:34:25 +00:00
whesse@chromium.org
48f2458bd9
Avoid redundant smi check in x64 loading of floats into SSE2 registers.
...
Review URL: http://codereview.chromium.org/2862004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 09:04:44 +00:00
lrn@chromium.org
c94c39a667
X64: Load HeapNumberMap once in BinaryOpStub, and reuse it.
...
Review URL: http://codereview.chromium.org/2819012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-21 08:51:44 +00:00
lrn@chromium.org
d8bc7a9436
X64: Make more computations happen on 32-bit values instead of on smis.
...
Review URL: http://codereview.chromium.org/2816014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-18 12:55:04 +00:00
sgjesse@chromium.org
685cae6021
API: Resolve linker issues with using V8 as a DLL
...
This changes the way the constants kJSObjectType, kFirstNonstringType and kProxyType are made available to the inlined part of the V8 API. This change to fixed constants resolves linker this linker error Windows
error LNK2001: unresolved external symbol "public: static int v8::internal::Internals::kJSObjectType" (?kJSObjectType@Internals@internal@v8@@2HA)
when linking against a V8 DLL.
This change also makes it possible to build all the C++ tests with ENABLE_DEBUGGER_SUPPORT not defined. Now C++ tests run ENABLE_DEBUGGER_SUPPORT not defined, and only the JavaScript tests which tests the debugger fails when ENABLE_DEBUGGER_SUPPORT is not defined.
Review URL: http://codereview.chromium.org/2820016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-18 10:52:59 +00:00
erik.corry@gmail.com
694669926c
ARM: Load the heap number map into a register and keep it
...
there throughout the binary op stub (used for checking and
creating heap numbers).
Review URL: http://codereview.chromium.org/2843010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 21:51:51 +00:00
antonm@chromium.org
078d285353
Push AccessorInfo data directly if they reside in old space.
...
Review URL: http://codereview.chromium.org/2840004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 17:13:40 +00:00
vitalyr@chromium.org
3cafa65462
Track ascii-ness of data in externalized strings.
...
If a two-byte string only contains ascii characters, then we can save
memory when flattening a cons string containing it. Similarly we can
use this in Array.prototype.join implementation. To track this a new
bit is added to instance type. This bit is used as a hint in generated
code and in runtime functions.
To enable testing a new V8 extension is added controlled by
--expose-externalize-string flag.
Review URL: http://codereview.chromium.org/2762008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 16:19:28 +00:00
lrn@chromium.org
26e692af2f
X64: Change some smi operations to work on untagged integers instead.
...
Use direct reading and writing of integers from Smi fields.
Change RecordWrite with 0 offset to take untagged index instead of
smi tagged index.
Review URL: http://codereview.chromium.org/2872005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 15:48:43 +00:00
mikhail.naganov@gmail.com
93387f272e
Heap profiler: add a missing link between a function closure and shared function info.
...
Review URL: http://codereview.chromium.org/2846012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 12:56:55 +00:00
podivilov@chromium.org
7808d45af5
Fix a bug when top level break points fall into the last function in script.
...
Review URL: http://codereview.chromium.org/2824007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 12:47:08 +00:00
erik.corry@gmail.com
d1c60571ae
ARM: Minor refactoring of RecordWrite, does not require the offset to
...
be in a register anymore. Code also updated to use the bitfield
instructions when available. This is a commit of
http://codereview.chromium.org/2845003/show for Rodolph Perfetta.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 10:45:37 +00:00
ager@chromium.org
6702ace935
Move definition of NegateConditon from assembler*-inl.h files to
...
assembler*.h files to make clang happy. There was no reason for having
the definition in the -inl.h files in the first place.
Review URL: http://codereview.chromium.org/2825008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 08:41:48 +00:00
sgjesse@chromium.org
50a2e15bbd
ARM: Special case for modulus of two smis in the generic binary opration stub
...
When lhs and rhs are positive smis and rhs is a power of two perform modulus by masking.
Review URL: http://codereview.chromium.org/2873001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 20:03:32 +00:00
mikhail.naganov@gmail.com
e6ea484e1f
Fix issue 738: make compilable with profilingsupport=off
...
BUG=738
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/2800009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 19:53:24 +00:00
podivilov@chromium.org
f5fdef253b
Save actual break point location to script break point object.
...
Review URL: http://codereview.chromium.org/2864003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 14:50:07 +00:00
ager@chromium.org
2043956c54
Remove the comisd instruction from the ia32 and x64 assemblers. We
...
should always use ucomisd.
Add missing pop from floating-point stack in case of allocation failure.
Review URL: http://codereview.chromium.org/2831009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 12:32:34 +00:00
lrn@chromium.org
14b216bd61
X64: Change overflow checks to only jump on overflow.
...
Costs an extra move because the result is calculated in a scratch register
and only moved to destination on non-overflow in order to preserve source
registers in case of overflow.
Review URL: http://codereview.chromium.org/2823004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 12:11:22 +00:00
whesse@chromium.org
2581562248
Prepare push to trunk. We are now working on version 2.2.19.
...
Review URL: http://codereview.chromium.org/2806009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 10:36:47 +00:00
kaznacheev@chromium.org
b251f14782
Port KeyedCallIC implementation to x64 and ARM.
...
Also edited ic-ia32.cc for clarity and better formatting.
Review URL: http://codereview.chromium.org/2853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 10:03:47 +00:00
ager@chromium.org
ed0fc41723
Change hash computation for transcendental cache to use arithmetic
...
shifts. Leads to fewer collisions.
Review URL: http://codereview.chromium.org/2809012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 08:29:25 +00:00
antonm@chromium.org
52975ae407
Remove old named property query API.
...
Review URL: http://codereview.chromium.org/2742007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-15 17:01:02 +00:00
mikhail.naganov@gmail.com
f213b096bc
Heap profiler: publish API and add test.
...
Review URL: http://codereview.chromium.org/2822009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-15 11:44:07 +00:00
ager@chromium.org
31cb9f7090
Add external references used for regexp execution to the serializer.
...
Review URL: http://codereview.chromium.org/2838001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 21:03:59 +00:00
ricow@chromium.org
de512af068
Add support for elements and array indices in Object.defineProperty
...
(fixes bug 619).
This also fixes a bug in GetOwnProperty in runtime.cc discovered by
the new test cases. That part of the code was not testable before
since we had no way of correctly defining properties on elements.
Review URL: http://codereview.chromium.org/2832001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 13:55:38 +00:00
sgjesse@chromium.org
76e24831a6
API: Added functions to retreive information on indexed properties managed by the embedding layer
...
BUG=737
TEST=test-api/PixelArrayInfo, test-api/ExternalArrayInfo
Review URL: http://codereview.chromium.org/2818003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 13:09:27 +00:00
ager@chromium.org
6b474bc1d8
Another x64 build fix. Actually builds now.
...
KExponentBits -> kExponentBits.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/2835001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 12:55:37 +00:00
ager@chromium.org
1dbf2db4b6
Fix build by fixing a typo in codegen-x64.cc.
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/2824002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 12:43:00 +00:00
ager@chromium.org
9a34337066
Remove direct reference from builtins code to global object. Load the
...
global object through the context instead.
Review URL: http://codereview.chromium.org/2822003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 12:08:39 +00:00
sgjesse@chromium.org
1c5a9435ab
ARM: Change code generation for function return
...
Generating code for function return on ARM is now aligned with the other platforms. The first non-shadowed return statement encountered will emit code for function return and all other returns including the fall through at the bottom of a function will jump to that.
Review URL: http://codereview.chromium.org/2815003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 11:37:05 +00:00
erik.corry@gmail.com
142de62819
ARM: Be more smart about switching instructions when immediates
...
don't fit in the instruction. Use ubfx and sbfx more.
Review URL: http://codereview.chromium.org/2826001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 11:20:36 +00:00
whesse@chromium.org
317dcabe84
Change tests for string type in RegExpExecStub on all platforms.
...
Review URL: http://codereview.chromium.org/2772004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 10:21:24 +00:00
ager@chromium.org
8c9958e560
Only update the stub cache tables with monomorphic stubs used by
...
megamorphic call sites. This removes a lot of contention in the
tables.
Review URL: http://codereview.chromium.org/2813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 10:10:42 +00:00
ager@chromium.org
74cbb6ca2b
Prepare push to trunk. We are now working on version 2.2.18.
...
Review URL: http://codereview.chromium.org/2824001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 07:27:25 +00:00
antonm@chromium.org
1688876682
Faster implementation of Heap::RecordWrites.
...
Naive algorithm for to update RSets for a span is rather inefficient
as it performs many unnecessary operations (retrieving a mask, updating
it with the same bit as many pointers go into a single region).
Review URL: http://codereview.chromium.org/2727009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 17:03:19 +00:00
mikhail.naganov@gmail.com
7e13119880
The new JS Heap Profiler: the main part.
...
There is no test in this patch, because the test uses V8 API,
which is coming in a separate change list.
Review URL: http://codereview.chromium.org/2722005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 16:34:59 +00:00
ager@chromium.org
a9d252749f
Fix thinko in arm transcendental cache probing introduced just before
...
committing.
Review URL: http://codereview.chromium.org/2764009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 12:26:41 +00:00
ager@chromium.org
c3514589b8
Add missing files accidentally left out on last commit.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 10:25:34 +00:00
ager@chromium.org
89ffd6c2f2
Implement transcendental cache probing in generated code on ARM.
...
Fixed hash code computation on ia32 and x64 to match the runtime
system (change arithmetic shift right to logical shift right).
Review URL: http://codereview.chromium.org/2731007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 10:18:44 +00:00
ricow@chromium.org
7b956716f7
Put code flushing behind flag - defaults to false.
...
Since we have an issue with code flusing on the trybots preventing us
from pushing to chromium, a new flag for enabling code flushing,
--flush_code, is introduced with this change (defaulting to false).
Review URL: http://codereview.chromium.org/2734005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 07:06:51 +00:00
whesse@chromium.org
ab65809a62
Use static type information in ConstantIntBinaryOperation on x64.
...
Review URL: http://codereview.chromium.org/2754004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 14:37:49 +00:00
sgjesse@chromium.org
e045ca6898
Better handling of stepping out of a function
...
With the change in r4820 all return statements are now breakable like any statement, so stepping will stop before the return statement actually returning from a function. With this change the position when breaking in the function return (after executing the return statement) will be the actual end of the function. At this point the return value is available as it saved to the stack by the debug break at return handling. Added information on the actual value returned from the function to the debugger.
Review URL: http://codereview.chromium.org/2783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 09:02:16 +00:00
kaznacheev@chromium.org
1dec9199ca
Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.
...
This should make access faster for arrays of functions.
Review URL: http://codereview.chromium.org/2754003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 05:06:39 +00:00
whesse@chromium.org
e1e4d985f9
Use static type information on x64 in LikelySmiBinaryOperation.
...
Refactor check for smi operands, using type information, on ia32 and x64.
Review URL: http://codereview.chromium.org/2771001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 11:15:54 +00:00
vegorov@chromium.org
7f0645a20a
Prepare push to trunk. We are now working on version 2.2.17.
...
Review URL: http://codereview.chromium.org/2757004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 09:27:54 +00:00
sgjesse@chromium.org
4446355c26
ARM: Fix bug in r4820 related to code for additional break positions.
...
These issues where unly revealed in debug mode
Review URL: http://codereview.chromium.org/2733006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 07:40:35 +00:00
mikhail.naganov@gmail.com
e5bdf01d1e
Factor out StringsStorage from CpuProfilesCollection.
...
Review URL: http://codereview.chromium.org/2769001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 07:00:33 +00:00
sgjesse@chromium.org
8227208d34
x64: Fix code to return from debug break slot
...
On x64 the return from debug break slot did not pop off the return address.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2731002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:50:42 +00:00
whesse@chromium.org
b93382d9ff
Add test_b(Operand, imm8) to ia32 disassembler.
...
Review URL: http://codereview.chromium.org/2765001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:44:24 +00:00
sgjesse@chromium.org
baf100fc48
Add parenthesis around '&&' within '||'
...
Warning by some gcc versions. Adding the parenthesis made the condition correct.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2725003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:20:24 +00:00
sgjesse@chromium.org
634fb9152c
More precise break points and stepping when debugging
...
Added support for more precise break points when debugging and stepping. To achieve that additional nop instructions are inserted where breaking would otherwise be impossible. The number of nop instructions inserted are sufficient to make place for patching with a call to a debug break code stub. On Intel that is 5 nop's for 32-bit and 13 for 64-bit. Om ARM 3 nop instructions (12 bytes) are required.
In order to avoid inserting nop's in to many places a simple ast checker have been added to check whether there are breakable code in a statement or expression. If it is possible to break in an expression no additional break enabeling code is inserted.
Added break locations to the true and false part of a conditional expression.
Added stepping tests to cover more constructs.
These changes are only in the full compiler.
Changed the default value for the option --debugger in teh d8 shell from true to false. The reason for this is that with --debugger turned on the full compiler will be used for all code in when running d8, which can be unexpeceted.
Review URL: http://codereview.chromium.org/2693002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:04:49 +00:00
mikhail.naganov@gmail.com
a217c50ab2
Move token-related constants from CodeEntry to TokenEnumerator.
...
Review URL: http://codereview.chromium.org/2745002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 11:27:00 +00:00
sgjesse@chromium.org
aaaebbe50f
Fix building without debugger suport.
...
Review URL: http://codereview.chromium.org/2733003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 11:23:48 +00:00
sgjesse@chromium.org
c7ab2b6aa3
Remove the SetExternalStringDiposeCallback API
...
Changed the disposal of external string resources to call a virtual Dispose method on the resource. The default inplementation of Dispose deletes the object and will capture the delete operator matching the new operator used to allocate the object.
Review URL: http://codereview.chromium.org/2658008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 09:35:47 +00:00
ager@chromium.org
6dc72b690c
Add an overloaded PreCompile method that takes a Handle<String>.
...
Code review URL: http://codereview.chromium.org/2633004/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 06:20:49 +00:00
ricow@chromium.org
316092c364
Flushing of code from functions that we expect not to use again.
...
This adds an additional step to full gc, removing code from functions
that are no longer in the compilation cache. The code is replaced with
a lazy compile version enabling us to recompile the function in case
we do actually need it again.
Review URL: http://codereview.chromium.org/2632003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 15:39:10 +00:00
whesse@chromium.org
3c42d18a44
Revert change 4812 due to performance problems. This was a change in string addition on ia32.
...
Review URL: http://codereview.chromium.org/2706001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 13:16:05 +00:00
whesse@chromium.org
dd278e634e
Improve generated code for string encoding tests on ia32.
...
Review URL: http://codereview.chromium.org/2673001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 12:15:10 +00:00
vegorov@chromium.org
68b8a50843
Count Mark-Compact/Mark-Sweep collections only after compaction decision was made
...
Review URL: http://codereview.chromium.org/2665001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 11:31:44 +00:00
lrn@chromium.org
8ff9083747
Prepare push to trunk. We are now working on version 2.2.16.
...
Review URL: http://codereview.chromium.org/2640007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 11:02:43 +00:00
vegorov@chromium.org
53923e9233
Revert r4782. Fix issues 728, 732.
...
Review URL: http://codereview.chromium.org/2701003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 09:36:30 +00:00
sgjesse@chromium.org
09acdc8446
Add an API to control the disposal of external string resources
...
A new callback have been added which - if set - will be called to dispose of external string resources passed from the embedder to the V8 engine.
Review URL: http://codereview.chromium.org/2645004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 08:49:07 +00:00
kaznacheev@chromium.org
ff61618c4b
Extend CallIC to support non-constant names.
...
This speeds up constructs like this:
var zz='replace'; '123'[zz]('3','4');
Review URL: http://codereview.chromium.org/2280007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 08:27:32 +00:00
ager@chromium.org
a40569e5a0
Port fast eval calls to x64 and ARM. For global variables that can
...
only be shadowed by eval-introduced variables we usually do not need
to do a context lookup in the runtime system.
Review URL: http://codereview.chromium.org/2672001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 07:12:00 +00:00
vitalyr@chromium.org
8689b3bcea
Direct load of global function prototype.
...
As most of call IC code is tied to a context anyway we can save a few dependent loads by having a direct reference to an initial map of a global function.
Review URL: http://codereview.chromium.org/2239009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 16:20:34 +00:00
sandholm@chromium.org
c9b1bf7eaa
Fix issue in previous test optimization
...
Review URL: http://codereview.chromium.org/2653002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 13:43:41 +00:00
sandholm@chromium.org
6e7d663eed
Simplify criteria for doing an optimized test call
...
Review URL: http://codereview.chromium.org/2662002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 13:37:28 +00:00
sandholm@chromium.org
52f52ae99f
Simplify regexp test call when the regexp starts and ends with '.*'.
...
Review URL: http://codereview.chromium.org/2645002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:58:40 +00:00
ricow@chromium.org
8a4d49b65a
Rename ThreadManager::IterateThreads to ThreadManager::IterateArchivedThreads
...
The IterateThreads method only iterates archived threads. If all
threads are to be iterated an additional iteration of the current active
stack is also needed.
Review URL: http://codereview.chromium.org/2655002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:57:01 +00:00
antonm@chromium.org
12f6306420
First phase of migration to new named property query callbacks.
...
Eventually named property query callbacks will return attributes
(as an integer) or an empty handle if property is not intercepted.
To gradually migrate to this new API, USE_NEW_QUERY_CALLBACK
macro would control if old or new style API is used.
So the migration plan is:
1) introduce new API which should be explictily enabled;
2) switch to new API defining USE_NEW_QUERY_CALLBACK before
include of <v8.h> (that would require changes to client code as well)
3) remove old API from v8
4) remove #define USE_NEW_QUERY_CALLBACK from clients.
Review URL: http://codereview.chromium.org/2576003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:49:44 +00:00
lrn@chromium.org
d3d295efa7
Add optimized version of memcpy on ia32.
...
Only used in one place right now.
Still room for tweaking.
Review URL: http://codereview.chromium.org/2582001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:30:55 +00:00
whesse@chromium.org
0fc3dca698
Add test_b(Operand, immediate) to ia32 assembler, and use it where possible. Improve comparison to a constant one-character string. Use CmpInstanceType in more places on ia32. Add IsObjectJSObjectType and IsInstanceJSObjectType to ia32 macro assembler, using a single branch for a range test.
...
Review URL: http://codereview.chromium.org/2586001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 10:46:04 +00:00
ager@chromium.org
723bed3105
Optimize calls to evals. Most of the time there is no reason to
...
perform a context lookup in the runtime system for the 'eval'
function. Instead load the 'eval' function from the global context in
generated code if it is not shadowed.
Will port to other platforms as a separate change.
Review URL: http://codereview.chromium.org/2666001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 10:19:19 +00:00
vitalyr@chromium.org
6c74d30f83
Fix double to integer conversions in runtime string indexing.
...
Review URL: http://codereview.chromium.org/2577001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 11:31:19 +00:00
vitalyr@chromium.org
3ec0b86495
Make StringCharCodeAt runtime function do what it name implies and not
...
just indexed string access.
The difference is that String.prototype.charCodeAt accepts any number
as an index, whereas string[] only accepts array indices.
Review URL: http://codereview.chromium.org/2467006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 09:32:07 +00:00
whesse@chromium.org
ebc21fc958
Change keyed load IC interface on x64 to pass arguments in registers.
...
Review URL: http://codereview.chromium.org/2470001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 14:37:47 +00:00
erik.corry@gmail.com
9fc31e1fed
Fix last-minute thinko that I snuck into the last change.
...
It busted crypto-decrypt.
Review URL: http://codereview.chromium.org/2434005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 10:47:50 +00:00
erik.corry@gmail.com
b600905133
ARM: Track Smis on top 4 stack positions and Smi loop variables.
...
Improve code generation for known smis and suspected Smis.
Review URL: http://codereview.chromium.org/2452002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 09:37:02 +00:00
lrn@chromium.org
5b7e77acea
Fix bug that could cause a string to be incorrectly tagged as an array index.
...
We should only mark a string as an array index if we can store the entire value
of the number in the hash field. We sometimes failed to reject larger numbers.
Fixes http://code.google.com/p/v8/issues/detail?id=728
Review URL: http://codereview.chromium.org/2452007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 09:31:01 +00:00
ager@chromium.org
f340073e5e
Add missing initialization of a couple of variables which makes
...
some compilers complaint when compiling with -Werror.
Review URL: http://codereview.chromium.org/2492001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 08:58:44 +00:00
sgjesse@chromium.org
c2fad9d94f
Prepare push to trunk. We are now working on version 2.2.15.
...
Review URL: http://codereview.chromium.org/2467004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 08:48:51 +00:00
erik.corry@gmail.com
d55c1adb0a
Initialize variable to make gcc happy.
...
http://code.google.com/p/v8/issues/detail?id=727
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 08:17:19 +00:00
sgjesse@chromium.org
33973b7d13
ARM: Add more logic to the generic keyed load stub
...
The generic keyed load stub was missing converting string keys to numberign keys and lookup in the keyed lookup cache. This is now added together with an additional counter on all platforms.
Review URL: http://codereview.chromium.org/2441002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-01 21:11:38 +00:00
vitalyr@chromium.org
26be30912d
Fix generated code for String.charCodeAt.
...
Review URL: http://codereview.chromium.org/2468001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-01 14:08:19 +00:00
mikhail.naganov@gmail.com
cdc09c5073
CPU profiler: sample call stack on profiling start.
...
This simplifies writing tests a lot, because it is now possible
to guarantee that certain function will present in a profile by
starting profiler from inside it.
Review URL: http://codereview.chromium.org/2438002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-01 13:52:49 +00:00
mikhail.naganov@gmail.com
f939ccbc26
Unreviewed. Revert r4766, r4767.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-01 13:42:48 +00:00
mikhail.naganov@gmail.com
c48b60d4a3
added function
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-01 13:35:09 +00:00
dimich@chromium.org
610ad370a3
Fix an occasional crash in Assembler::ldr() for arm.
...
A peephole optimization can be attempted on a buffer that contains only a single command. The crash happens when running debug on Snow Leopard with --simulator=arm.
Review URL: http://codereview.chromium.org/2454001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-01 08:01:50 +00:00
whesse@chromium.org
019b8c4511
Change the interface of LoadIC on the x64 platform to take its arguments in registers.
...
Review URL: http://codereview.chromium.org/2330003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-31 13:26:12 +00:00
ricow@chromium.org
29cee68ea3
Prepare push to trunk. Now working on version 2.2.14.
...
Review URL: http://codereview.chromium.org/2417001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-31 10:13:11 +00:00
mikhail.naganov@gmail.com
bb0ba1e5ae
Fix AddBlock invocations in CpuProfilesCollection.
...
It was a bad idea not to check the count of numbers to add.
Also fix a rollover: the comment in platform-linux.
Review URL: http://codereview.chromium.org/2418001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-31 10:09:07 +00:00
erik.corry@gmail.com
44cfbe392c
ARM: Remove LoadConditionAndSpill and VisitAndSpill.
...
Review URL: http://codereview.chromium.org/2414001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-31 08:52:57 +00:00
mikhail.naganov@gmail.com
63e79f5f68
Reapply r4702 "Fix teardown order"
...
I accidentaly reverted changes from r4702 in r4706. Now bringing them back.
Original commit message:
As TokenEnumerator cleans up global handles posessed, it's owner --
CpuProfiler must be shut down prior to global handles.
Review URL: http://codereview.chromium.org/2072013
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/2325003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-28 16:12:24 +00:00
antonm@chromium.org
ebba43f37a
Make intercepted properties retrievable only by getter to be not enumerable.
...
Currently if there is no query callback, V8 finds out intercepted properties'
attributes using getter: if getter returns not empty handle V8 treats
such a property as property with NONE attribues which means this property
is enumerable.
However, if there is no enumerator, this property cannot be enumerated.
Thus I think we should treat such properties as not enumerable.
Drawback of this approach is now one has to implement both query and enumerator
callbacks to implement enumerable intercepted properties.
BUG=725
Review URL: http://codereview.chromium.org/2270005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-28 11:54:58 +00:00
erik.corry@gmail.com
7e460811b9
Missing file from last commit.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-28 11:27:14 +00:00
erik.corry@gmail.com
8a2637fba9
Get rid of LoadAndSpill on ARM since Load() knows whether it is
...
in a spilled scope or not. Also get rid of some spilled scopes
that we don't need any more. The generators for the %_ functions,
CodeGenerator::Generate*, are now not spilled by default. Some
of them (IsObject and related) have been converted to register
allocated operation.
Review URL: http://codereview.chromium.org/2368001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-28 11:23:07 +00:00
lrn@chromium.org
1be589d844
X64: Fix issue 678. Bug in some Win64 C calls from generated code.
...
Win 64 C call ABI implementation requires space allocated on stack for four
argument registers, even when passing fewer arguments in registers.
Review URL: http://codereview.chromium.org/2365001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-28 08:37:44 +00:00
whesse@chromium.org
527c7972c7
Refactor GenerateLoadInterceptor, removing LoadInterceptorCompiler class and CompileLoadInterceptor static function.
...
All platforms (x64, ia32, and ARM) changed.
Review URL: http://codereview.chromium.org/2251003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 14:14:46 +00:00
ager@chromium.org
e840870331
Fix presubmit error. Trailing whitespace.
...
TBR=erik.corry
Review URL: http://codereview.chromium.org/2224007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 13:57:55 +00:00
erik.corry@gmail.com
73256b05af
Fix jump targets on ARM to merge virtual frames (really this time).
...
Use the jump targets to move the first deferred code to not flush
registers in the inlined case (KeyedLoad).
Review URL: http://codereview.chromium.org/2249002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 13:48:52 +00:00
erik.corry@gmail.com
67c0ec6f17
Update and improve support for ARMv7 bitfield instructions.
...
This is a commit of http://codereview.chromium.org/2124022
for Rodolph Perfetta. I changed the test in
test-assembler-arm.cc so it only runs if ARMv7 is supported.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 13:46:18 +00:00
vegorov@chromium.org
fc7c5f789a
Cardmarking writebarrier.
...
Reapply r4715 with fixes reviewed in http://codereview.chromium.org/2276002 .
Review URL: http://codereview.chromium.org/2255004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 12:30:45 +00:00
lrn@chromium.org
19dc4f4fd9
Revert try-commit.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 12:23:46 +00:00
lrn@chromium.org
72f192296d
To be reverted.
...
Add extra checks for bad stack content in X64 RE-macro-assembler,
to check for crash that is only reproducible with the buildbot and
only in release mode.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 12:22:23 +00:00
antonm@chromium.org
0dd031aa01
Move assertions to not take case to check that it's safe to omit CheckPrototypes in this case.
...
Review URL: http://codereview.chromium.org/2279005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 11:16:04 +00:00
lrn@chromium.org
7bfe569088
X64: Many small tweaks and more usages of "load smi as int32".
...
Review URL: http://codereview.chromium.org/2266003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 10:25:33 +00:00
ricow@chromium.org
5058db86c4
Add support for getOwnPropertyDescriptor on array indices (fixes issue 599).
...
This fix adds support for retriving a property descriptor on elements. The
new version supports both fast and slow case elements. In the fast case
we always default configurable, writable, enumerable to true (we don't have
PropertyDetails for fast elements).
A few new tests are added to get-own-property-descriptor.js, I will
add a lot more to object-define-property when I add support for indices in
Object.defineProperty.
Review URL: http://codereview.chromium.org/2278002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 07:43:43 +00:00
sgjesse@chromium.org
58ea4c20cd
ARM: Default to use unaligned accesses in the simulator
...
Support building with or without unaligned accesses by using scons flag simulatorunalignedaccesses.
$ scons simulator=arm simulatorunalignedaccesses=off
$ scons simulator=arm simulatorunalignedaccesses=on
If simulatorunalignedaccesses is not specified (or specified as default) the default is to use unaligned accesses.
Review URL: http://codereview.chromium.org/2218003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 07:31:10 +00:00
sgjesse@chromium.org
fb0daff14e
Implement OS::ReleaseStore for Solaris
...
Review URL: http://codereview.chromium.org/2282003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 06:38:53 +00:00
vitalyr@chromium.org
64bc39a726
Fix: make string indexing work with Infinity.
...
NumberToUint32 that I was trying to use maps -0 to +0 (as desired) but
also maps +/-Infinity to +0, which made +/-Infinity a valid string
index. I fixed it by introducing a new runtime function with the right
semantics.
TEST=LayoutTests/fast/js/char-at.html,mjsunit/string-charat.js
Review URL: http://codereview.chromium.org/2223003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 16:11:30 +00:00
vitalyr@chromium.org
ad0e38909f
Custom call IC-s for String.prototype.{charAt,charCodeAt}.
...
These string methods can be composed from two basic blocks: charCodeAt
and fromCharCode, both of which have fast cases for certain types of
inputs. In this patch these two blocks are refactored to allow
generating the fast cases without having to jump around the slow
cases. In the slow cases since they can now be invoked both from
inline runtime functions and from IC stubs we either have to
save/restore state of the current frame or enter/leave a new internal
frame. This is handled by new RuntimeCallHelper interface. Its
implementation for virtual frame is based on FrameRegisterState class
extracted from DeferredCode class.
Review URL: http://codereview.chromium.org/2087009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 14:23:19 +00:00
antonm@chromium.org
3e88d0d2af
Various refactorings in interceptor calling and loading.
...
1) do not push receiver early---that simplifies tail call preparation
on ia32/x64 and renders special cleanup unnecessary;
2) do not do second map check if interceptor's and cached holder
are the same;
3) do not push/pop receiver if receiver and holder registers are the same
(means that receiver is interceptor's holder);
4) do batch pushes on arm;
5) minor cosmetic improvements.
Review URL: http://codereview.chromium.org/2282001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 14:04:37 +00:00