lrn@chromium.org [Wed, 23 Mar 2011 09:05:13 +0000 (09:05 +0000)]
X64: Optimize access to external references.
Access to an ExternalReference in non-serializable code will try to use
an offset relative to the root-array register.
Since the root-array is in the Heap object, and the Heap object is in
the Isolate object, there's a good chance that any external data field
is within a 32-bit offset of the root array register.
It falls back on the original behavior if the serializer is enabled,
if the root register isn't initialized or if the offset is not representable
as a 32-bit value.
Review URL: http://codereview.chromium.org/6716018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7315
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 23 Mar 2011 09:02:15 +0000 (09:02 +0000)]
Cleanup of FACTORY macro usage in api.cc.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6725014
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7314
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Wed, 23 Mar 2011 03:45:48 +0000 (03:45 +0000)]
Implement poison pill for non-strict mode function.caller
when caller is strict mode function.
Review URL: http://codereview.chromium.org/6713059/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7313
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 22 Mar 2011 19:15:02 +0000 (19:15 +0000)]
Some Isolate usage cleanups in objects.{h,cc}.
Review URL: http://codereview.chromium.org/6723001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7312
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Tue, 22 Mar 2011 18:44:32 +0000 (18:44 +0000)]
Cleanup of Isolate usage (guided by SunSpider profiling)
Review URL: http://codereview.chromium.org/6718023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7311
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Tue, 22 Mar 2011 18:02:23 +0000 (18:02 +0000)]
Fix crash in Debug::SendCommand.
R=vitalyr@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6715029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7310
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 22 Mar 2011 18:00:03 +0000 (18:00 +0000)]
Merge TemporaryScope with LexicalScope.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7309
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 22 Mar 2011 16:10:01 +0000 (16:10 +0000)]
Add support for CPU and heap profiles deletion.
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6685084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7308
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 22 Mar 2011 15:16:29 +0000 (15:16 +0000)]
Remove TLS fetches in v8::String API implementation.
Patch by Dmitry Lomov.
Original review: http://codereview.chromium.org/6716004/
TBR=ager
Review URL: http://codereview.chromium.org/6716023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7307
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 22 Mar 2011 14:11:08 +0000 (14:11 +0000)]
Use different syscall constants on Android
Review URL: http://codereview.chromium.org/6716021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7306
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 22 Mar 2011 13:20:04 +0000 (13:20 +0000)]
Require an isolate parameter for most external reference creation to
avoid TLS access in connection with external references.
Make the isolate accessible via the assembler.
Only for ia32 at this point. If this looks OK to you I will port it.
R=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/6713074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7305
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 22 Mar 2011 11:58:03 +0000 (11:58 +0000)]
Add file missing from last commit
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6715026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7304
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 22 Mar 2011 11:52:38 +0000 (11:52 +0000)]
Shorten bail out checks when calling code which can fail.
Review URL: http://codereview.chromium.org/6713004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7303
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 22 Mar 2011 11:51:16 +0000 (11:51 +0000)]
Fix error in test-reloc-info/Positions. This error caused a failure on Windows 64-bit V8.
BUG=1267
TEST=test-reloc-info/Positions
Review URL: http://codereview.chromium.org/6719022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7302
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 22 Mar 2011 11:50:39 +0000 (11:50 +0000)]
Rename memory.h to v8memory.h
This is to avoid name collision with system include file named memory.h causing problems on some platforms.
Review URL: http://codereview.chromium.org/6716020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7301
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 22 Mar 2011 10:00:43 +0000 (10:00 +0000)]
Improved modulo operation in lithium as well as bailout on -0.
TEST=none
BUG=none
Patch by Rodolph Perfetta from ARM Ltd.
Review URL: http://codereview.chromium.org/6612017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7300
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 22 Mar 2011 06:39:16 +0000 (06:39 +0000)]
Trying to unskip test-profile-generator/RecordStackTraceAtStartProfiling and
test-cpu-profiler/CrashIfStoppingLastNonExistentProfile.
After r7293 and r7294 they might feel better.
TBR=vitalyr@chromium.org
BUG=1262,1263
TEST=none
Review URL: http://codereview.chromium.org/6676084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7299
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Mon, 21 Mar 2011 23:44:14 +0000 (23:44 +0000)]
Another Lint fix.
Review URL: http://codereview.chromium.org/6716012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7298
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Mon, 21 Mar 2011 23:16:06 +0000 (23:16 +0000)]
Lint: remove line trailing whitespaces.
Review URL: http://codereview.chromium.org/6708070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7297
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Mon, 21 Mar 2011 23:06:38 +0000 (23:06 +0000)]
Fix Win32 bots - they crash/timeout on too long thread name.
Review URL: http://codereview.chromium.org/6676076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7296
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 21 Mar 2011 18:13:27 +0000 (18:13 +0000)]
Change the way sampler / profiler handle external callbacks.
This should fix test-profile-generator/RecordStackTraceAtStartProfiling flakinness.
R=vitalyr@chromium.org
BUG=1261
TEST=test-profile-generator/RecordStackTraceAtStartProfiling
Review URL: http://codereview.chromium.org/6708056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7294
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 21 Mar 2011 17:40:40 +0000 (17:40 +0000)]
Fix DevTools CPU profiler after isolates merge.
There was an obvious bug with missing call to SamplerRegistry::GetState.
I've also updated CpuProfiler to avoid stopping sampler, if it didn't started it.
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6712062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7293
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Mon, 21 Mar 2011 16:10:05 +0000 (16:10 +0000)]
Revert r7288.
TBR=ager
Review URL: http://codereview.chromium.org/6709060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7292
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 21 Mar 2011 16:00:52 +0000 (16:00 +0000)]
Clean up Isolate usages in handles.cc.
Review URL: http://codereview.chromium.org/6713070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7291
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 21 Mar 2011 15:04:17 +0000 (15:04 +0000)]
Use v8::internal threading support in samples/shell.cc.
We need this for isolates testing. To make it work I had to extend the
internal Thread constructor with an option to set the stack size (see
the comment in shell.cc).
BUG=1264
Review URL: http://codereview.chromium.org/6711068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7289
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Mon, 21 Mar 2011 14:31:15 +0000 (14:31 +0000)]
ARM: Add optimization for constant RHS in DoMulI.
Patch by ARM Ltd.
Review URL: http://codereview.chromium.org/6708025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7288
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 21 Mar 2011 12:57:25 +0000 (12:57 +0000)]
Change cctests to use variant flags as part of the name for the serilization file.
Because we run all tests three times with different variant flags (to
test crankshaft) we might end up in a situation where we try to write
to the same serilization file from two different threads
simultaneously. The patch concats the variant flags at the end of the
serialization file name.
Review URL: http://codereview.chromium.org/6688068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7285
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 21 Mar 2011 12:25:31 +0000 (12:25 +0000)]
Optimize calls to object literal properties that are initialized with a function literal.
This allows fast calls and inlining of functions like:
var o = {f: function() { return "foo"; }}
o.f();
Object literals that contain function literals are initially created a dictionary mode
object and only transformed to fast properties once all properties are computed and
added. This allows us to create constant function properties for functions declared
inside the object literal. Function literals inside object literals are marked for
pretenuring so that they work as contant function properties.
Object literals without functions should just function as before.
Review URL: http://codereview.chromium.org/6240012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7283
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 21 Mar 2011 11:57:59 +0000 (11:57 +0000)]
Clean up Isolate usages in ast visitor and hydrogen.
Review URL: http://codereview.chromium.org/6688066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7282
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 21 Mar 2011 10:22:57 +0000 (10:22 +0000)]
Clean up Isolate usages in compilation cache.
Review URL: http://codereview.chromium.org/6688065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7281
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Mon, 21 Mar 2011 09:59:58 +0000 (09:59 +0000)]
Improve ARM-Simulator.
This patch
- removes the unimplemented code crash when rendering invalid/unknown instructions and prints "unknown" instead.
- prints the beginning of the constant pool marker.
- adds "da" as a shortcut for "disasm".
- print hexadecimal representation of double and single registers. This makes it easier to debug move/conversion code that uses temporary int32 values in floating point registers.
- annotates the stack with short prints of the values (HeapObjects and smis),
- makes disasm take an address or a register as second argument without a third argument, which defaults to printing ten instructions.
Review URL: http://codereview.chromium.org/6676042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7279
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 21 Mar 2011 09:59:29 +0000 (09:59 +0000)]
Always inline BitCast.
Review URL: http://codereview.chromium.org/6688064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7278
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Sat, 19 Mar 2011 02:23:59 +0000 (02:23 +0000)]
Fix Xcode after isolates landing.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6712049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7276
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 18 Mar 2011 23:55:11 +0000 (23:55 +0000)]
Avoid TLS accesses in QuoteJsonString.
Review URL: http://codereview.chromium.org/6713056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7275
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 18 Mar 2011 22:47:09 +0000 (22:47 +0000)]
Try fix arm build.
Review URL: http://codereview.chromium.org/6714026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7274
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Fri, 18 Mar 2011 21:51:10 +0000 (21:51 +0000)]
Update cctest expectations: ass 2 timed out tests to skip list.
Review URL: http://codereview.chromium.org/6713052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7273
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Fri, 18 Mar 2011 21:37:28 +0000 (21:37 +0000)]
Fix Win64 build after isolates merge.
Need to add -DWIN32 since the include structure changed.w
Review URL: http://codereview.chromium.org/6712045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7272
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 18 Mar 2011 20:35:07 +0000 (20:35 +0000)]
Merge isolates to bleeding_edge.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7271
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 18 Mar 2011 19:41:05 +0000 (19:41 +0000)]
Revert r7268: it borked the history.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7269
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 18 Mar 2011 18:49:56 +0000 (18:49 +0000)]
Merge isolates to bleeding_edge.
Review URL: http://codereview.chromium.org/6685088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7268
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 18 Mar 2011 15:10:00 +0000 (15:10 +0000)]
Mark cctest/test-profile-generator/RecordStackTraceAtStartProfiling as flakey.
Review URL: http://codereview.chromium.org/6709030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7265
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 18 Mar 2011 13:40:48 +0000 (13:40 +0000)]
Make Script.prototype.nameOrSourceURL use indexOf search first before trying to match with a RegExp.
This should use Boyer-Moore search with a long string, which is potentially
faster than RegExp search.
The target string is typically, but not guaranteed, at the end of the
source, so for long sources, there will be a lot of characters to skip.
Review URL: http://codereview.chromium.org/6709027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 18 Mar 2011 13:24:38 +0000 (13:24 +0000)]
Revert r7258 and r7260.
They apparently break Threading tests on at least Mac and Win64.
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/6709028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7262
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 18 Mar 2011 12:55:53 +0000 (12:55 +0000)]
Fix presumbit warning after r7259
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7261
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 18 Mar 2011 12:51:14 +0000 (12:51 +0000)]
Fix build.
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/6688032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 18 Mar 2011 12:49:27 +0000 (12:49 +0000)]
Dramatically speed up detailed heap snapshot generation.
I've replaced calls to HashMap::Clear with instance re-creation.
This has sped up taking a heap snapshot of GMail from 33s -> 3s!
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6665038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7259
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 18 Mar 2011 12:33:19 +0000 (12:33 +0000)]
Make exception thrown via v8 public API propagate to v8::TryCatch as JS thrown exceptions do.
Correctly process failures which can be returned by Object::GetProperty
when performing GetRealNamedProperty* queries.
Callback properties can produce exceptions so we need to wrap access to them
into exception checks. However, despite of many other methods with exception
checks, property access doesn't mandatroy go via JavaScript and hence we
need to inject code to propagate exception to public API TryCatch handlers.
Review URL: http://codereview.chromium.org/6397011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dimich@chromium.org [Thu, 17 Mar 2011 21:14:47 +0000 (21:14 +0000)]
Fix compilation on Windows post-7252
Review URL: http://codereview.chromium.org/6708014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Thu, 17 Mar 2011 20:28:41 +0000 (20:28 +0000)]
Implement strict mode ThrowTypeError functions for arguments object.
* Reverse order of arguments in-object fields for length and callee.
* Introduce arguments ThrowTypeError functions (caller/callee).
* Create strict mode arguments boilerplate object.
* Strict mode "new arguments object" stub.
* Runtime arguments object allocation.
* Update es5conform test expectations.
Review URL: http://codereview.chromium.org/6698015/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Thu, 17 Mar 2011 20:28:30 +0000 (20:28 +0000)]
Implement fast path for strict closure creation.
Review URL: http://codereview.chromium.org/6677036/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7251
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Thu, 17 Mar 2011 20:28:17 +0000 (20:28 +0000)]
Strict mode ThrowTypeError functions for
- function.caller
- function.arguments
Review URL: http://codereview.chromium.org/6694044/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7250
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 17 Mar 2011 18:14:21 +0000 (18:14 +0000)]
X64: Port optimization of LMulI to x64.
Review URL: http://codereview.chromium.org/6701003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7248
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 17 Mar 2011 17:25:54 +0000 (17:25 +0000)]
Refactor fast API call.
Make it use custom call generator infrastructure.
Review URL: http://codereview.chromium.org/6686003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 17 Mar 2011 16:12:13 +0000 (16:12 +0000)]
Remove empty test/mjsunit/compiler/global-accessors.js to make lint happy.
Review URL: http://codereview.chromium.org/6712001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7244
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 17 Mar 2011 15:46:42 +0000 (15:46 +0000)]
Emit slightly more compact code in untag double.
Review URL: http://codereview.chromium.org/6677111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7243
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 17 Mar 2011 14:30:48 +0000 (14:30 +0000)]
Revert revisions 7215 and 7212.
This caueses line positions to be off by one in certain cases, causing webkit http/tests/inspector/console-xhr-logging to fail.
Review URL: http://codereview.chromium.org/6667077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7239
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 17 Mar 2011 12:36:12 +0000 (12:36 +0000)]
Fix presubmit error introduced by r7221.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6673112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7223
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 12:34:24 +0000 (12:34 +0000)]
X64: Add the global object as parameter to the GlobalReceiver instruction
Review URL: http://codereview.chromium.org/6674053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7222
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 17 Mar 2011 12:22:49 +0000 (12:22 +0000)]
Make HDeoptimize to explicitly use environment values.
Otherwise dead phi elimination can actually remove some of the implicitly used phis.
BUG=1257
TEST=test/mjsunit/regress/regress-1257.js
Review URL: http://codereview.chromium.org/6672066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7221
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 17 Mar 2011 12:03:20 +0000 (12:03 +0000)]
Prepare push to trunk. Now working on version 3.2.4.
Review URL: http://codereview.chromium.org/6667074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7218
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 17 Mar 2011 10:37:29 +0000 (10:37 +0000)]
Add support for unary plus in hydrogen compiler.
Also strength-reduction of unary minus.
Fixes issue 1248.
BUG=1248
Review URL: http://codereview.chromium.org/6685045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7217
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 09:55:57 +0000 (09:55 +0000)]
Fix infinite recursion in the compiler introduced in r7212
In most situations tests passed just causing a bailout from the compiler due to stack overflow. On Mac some tests actually did crash and of cause some benchmarks showed regressions due to this.
Review URL: http://codereview.chromium.org/6665064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7215
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 17 Mar 2011 09:23:48 +0000 (09:23 +0000)]
Fix some XMM and byte register names in the X64 disassembler.
Review URL: http://codereview.chromium.org/6672045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7214
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 17 Mar 2011 08:16:27 +0000 (08:16 +0000)]
Partially fix serializer which crashes on x64 running with no snapshot.
We used the wrong heap space number when reading in code chunks (we
used LO_SPACE, should use kLargeCode).
Review URL: http://codereview.chromium.org/6670083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7213
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 08:16:12 +0000 (08:16 +0000)]
Increase coverage of global loads in optimized code
In the cases where a global property cell cannot be used in the optimized code use standard load ic to get the property instead of bailing out.
Review URL: http://codereview.chromium.org/6665026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7212
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 07:34:37 +0000 (07:34 +0000)]
Add a preprocessor symbol to have printing on Android use stdout instead of the system log
This is convenient for debugging on Android as one don't have to go to the system log for printf based debugging.
Review URL: http://codereview.chromium.org/6672041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7211
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 19:55:31 +0000 (19:55 +0000)]
Fix Array::New(length) in the API to return an array with the provided length.
The internal factory method initializes the elements but does not set
the length property of the array.
Add array api test case for length.
R=antonm@chromium.org
BUG=v8:1256
TEST=cctest/test-api/Array
Review URL: http://codereview.chromium.org/6674034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7210
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 16 Mar 2011 16:28:06 +0000 (16:28 +0000)]
Refactor lithium CheckSmi instruction into two separate instructions CheckSmi and CheckNonSmi.
There is no need to store the branch condition separately in the LIR.
Review URL: http://codereview.chromium.org/6673082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7206
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 16 Mar 2011 16:11:14 +0000 (16:11 +0000)]
Fix some register names in the ia32 disassembler. Byte register and XMM register names were sometimes not used, or used where they shouldn't be.
Review URL: http://codereview.chromium.org/6702001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7205
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 16 Mar 2011 12:47:43 +0000 (12:47 +0000)]
ARM: Fix the debugger using wrong break stub for slot breaks
On ARM the break at break slots wrongly used the break at return stub which assumes an object opinter in r0. At break slots there are no objects live in registers so a GC while at a break on a break stub could cause a crash as r0 was wrongly pushed on a internal frame to be handled by GC.
Review URL: http://codereview.chromium.org/6676037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7203
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 16 Mar 2011 12:02:28 +0000 (12:02 +0000)]
Introduce one way dependencies into object grouping.
Those are necessary to properly manage relationship between objects in cases
when they don't form proper tree structure.
Review URL: http://codereview.chromium.org/6686053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7202
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 11:16:18 +0000 (11:16 +0000)]
Use full paths for cctests.
Review URL: http://codereview.chromium.org/6670045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7201
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 16 Mar 2011 11:15:43 +0000 (11:15 +0000)]
* Fix build errors on FreeBSD 8.2
* Fix Crankshaft on FreeBSD.
* Partially fix profiling on FreeBSD.
* Remove bash-isms from tick processor script.
Review URL: http://codereview.chromium.org/6673045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7200
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 10:03:13 +0000 (10:03 +0000)]
Disable v8 benchmark run from standard test.py runs.
Let's add it as a separate test run on the buildbots.
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6667039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7199
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 09:45:28 +0000 (09:45 +0000)]
Add a V8 benchmark suite run to test.py to catch failures on the buildbot.
Review URL: http://codereview.chromium.org/6698029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7198
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 15 Mar 2011 21:56:12 +0000 (21:56 +0000)]
Fix incorrect assumption on bit-and on ARM
Review URL: http://codereview.chromium.org/6696037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7183
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 15 Mar 2011 18:20:10 +0000 (18:20 +0000)]
Strict mode renames and formatting cleanup.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6693014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7180
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 15 Mar 2011 14:49:10 +0000 (14:49 +0000)]
Use a class field instead of global FLAG_debug_code in assember and
macro assembler.
This way we can avoid changing the global flag value.
Review URL: http://codereview.chromium.org/6677044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7178
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 15 Mar 2011 14:26:55 +0000 (14:26 +0000)]
Use NativesFlag to allow/disallow natives syntax during compilation.
This way we can avoid changing the value of FLAG_allow_natives_syntax.
Review URL: http://codereview.chromium.org/6694024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7177
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Mar 2011 14:19:18 +0000 (14:19 +0000)]
Follow Safari on not throwing when __defineGetter__ fails.
In addition, this fixes defineOwnProperty to actually not throw when
the should_throw flag is false (we had no usage of this priorly).
Review URL: http://codereview.chromium.org/6695018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7176
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Mar 2011 12:25:13 +0000 (12:25 +0000)]
Reapply 7143 after fixing issue 1250
Review URL: http://codereview.chromium.org/6698027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7175
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 15 Mar 2011 11:19:13 +0000 (11:19 +0000)]
ARM: Improved double to integer truncation.
Patch from ARM Ltd.
BUG=none
TEST=Added to cctest/test-assembler-arm.cc and cctest/test-disasm-arm.cc
Review URL: http://codereview.chromium.org/6625084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7174
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 15 Mar 2011 11:01:21 +0000 (11:01 +0000)]
Revert "Strict mode ThrowTypeError functions for"
TBR=mmaly@chromium.org
Review URL: http://codereview.chromium.org/6696018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7173
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 15 Mar 2011 10:03:57 +0000 (10:03 +0000)]
Fix SmiCompare on 64 bit to distinguish between comparisons where
we know that both sides are Smi and those where we don't. Fix inlined
symbol table probes to cope with strings, undefined and null (indicating
a deleted entry). Some changes to other architectures that were found
with the new asserts.
Review URL: http://codereview.chromium.org/6682026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7172
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Mar 2011 09:16:12 +0000 (09:16 +0000)]
Do not set value on host objects in Object.defineProperty (fixes issue 1250).
To be compatible with safari we should not change the value on API
objects in Object.defineProperty (e.g., the window.location object).
Review URL: http://codereview.chromium.org/6673042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7169
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 14 Mar 2011 17:46:37 +0000 (17:46 +0000)]
Strict mode ThrowTypeError functions for
- function.caller
- function.arguments
Review URL: http://codereview.chromium.org/6691003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7168
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 14 Mar 2011 16:54:51 +0000 (16:54 +0000)]
Remove unused StringCharCodeAt stub.
Review URL: http://codereview.chromium.org/6690014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7163
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 14 Mar 2011 15:43:36 +0000 (15:43 +0000)]
Prepare push to trunk. Now working on version 3.2.3.
Review URL: http://codereview.chromium.org/6685048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7161
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 14 Mar 2011 15:36:00 +0000 (15:36 +0000)]
Crankshaft support for StringCharFromCode.
This allows more efficient implementations of string keyed access,
String.prototype.chatAt, and String.fromCharCode.
Review URL: http://codereview.chromium.org/6682025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7160
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 14 Mar 2011 15:09:50 +0000 (15:09 +0000)]
Fix presubmit failure introduced by r7158.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6685047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7159
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 14 Mar 2011 14:42:14 +0000 (14:42 +0000)]
Reduce strength of ModI for power-of-2 divisor.
This is ia32 only. I will port it to other platforms if this looks good to you.
Review URL: http://codereview.chromium.org/6665006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7158
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 14 Mar 2011 12:32:20 +0000 (12:32 +0000)]
ARM: Move the constant pool blocking for call instruction sequences
The constant pool blocking for call instruction sequences is hoisted to the begof the function generating the call sequence.
Review URL: http://codereview.chromium.org/6690009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7155
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 14 Mar 2011 11:26:19 +0000 (11:26 +0000)]
When aborting optimization attempts for a function, make sure
to clear any eager optimizing hints in the compilation cache.
Review URL: http://codereview.chromium.org/6681031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7154
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 11 Mar 2011 13:57:20 +0000 (13:57 +0000)]
Fix a problem where Object.getOwnPropertyDescriptor and related functions unintentionally called toString on the values of an object's properties. Fixes issue 1233.
Review URL: http://codereview.chromium.org/6677017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7151
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 11 Mar 2011 13:33:39 +0000 (13:33 +0000)]
X64: Load more values from the root array, rather than from immediate 64-bit constants.
Review URL: http://codereview.chromium.org/6676025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7150
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 11 Mar 2011 13:25:01 +0000 (13:25 +0000)]
Faster invocation for most of API calls.
For most of API calls we generate better stub which is faster than invocation
via builtin, so use IC instead of direct call in Hydrogen.
Review URL: http://codereview.chromium.org/6672026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7149
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 11 Mar 2011 12:12:44 +0000 (12:12 +0000)]
ARM: Implement inline conversion of heap numbers to int32 values for bitoperations.
For bit operations, values are truncated and converted to the range -2^31 through 2^31 - 1. This patch provides inlined handling of this conversion for all heap numbers.
Before, we were calling runtime for every heap number that did not fit into a signed int32.
Review URL: http://codereview.chromium.org/6658034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7148
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Mar 2011 11:02:27 +0000 (11:02 +0000)]
Fix compile failure with GCC 4.5.0 (issue 1244)
GCC apparently assumes that given that we do a static cast in the next
line the value must actually be in StrictModeFlag enum range (even
though this is actually what we are asserting)
Review URL: http://codereview.chromium.org/6670031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7147
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 11 Mar 2011 10:30:33 +0000 (10:30 +0000)]
Fix x64 array length operations in Crankshaft
x64-bit array length loads and bounds checks should be 32-bits
Review URL: http://codereview.chromium.org/6676009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7146
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Mar 2011 09:08:52 +0000 (09:08 +0000)]
Fix presubmit by deleting regress-1240 not deleted by last patch.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7145
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00