platform/upstream/v8.git
15 years agoOptimize %ClassOf() on IA-32 and use it instead of the
kasperl@chromium.org [Mon, 29 Jun 2009 10:45:16 +0000 (10:45 +0000)]
Optimize %ClassOf() on IA-32 and use it instead of the
custom %HasXXXClass() calls.
Review URL: http://codereview.chromium.org/151018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years ago* Add missing imul instruction on Intel.
erik.corry@gmail.com [Mon, 29 Jun 2009 09:32:06 +0000 (09:32 +0000)]
* Add missing imul instruction on Intel.
* Fix incorrect signedness in disassembly of umull/mull on ARM.
* Fix incorrect register order in disassembly of umull/mull.
* Fix incorrect assembly of umull on ARM.
* Remove retroactively obsoleted restriction on choice of
  registers in mul instructions on ARM.
Review URL: http://codereview.chromium.org/150002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoOptimize %IsConstructCall() on IA-32.
kasperl@chromium.org [Mon, 29 Jun 2009 08:14:06 +0000 (08:14 +0000)]
Optimize %IsConstructCall() on IA-32.
Review URL: http://codereview.chromium.org/150018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoPrepare push of version 1.2.10 to trunk.
ager@chromium.org [Mon, 29 Jun 2009 08:12:02 +0000 (08:12 +0000)]
Prepare push of version 1.2.10 to trunk.
Review URL: http://codereview.chromium.org/151015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Fix error in running handlers, disable TakeValue optimization for count operators.
whesse@chromium.org [Mon, 29 Jun 2009 08:11:35 +0000 (08:11 +0000)]
X64: Fix error in running handlers, disable TakeValue optimization for count operators.
Review URL: http://codereview.chromium.org/150007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 Implementation: Implement Generate_Function(Call,Apply)
whesse@chromium.org [Mon, 29 Jun 2009 08:04:39 +0000 (08:04 +0000)]
X64 Implementation: Implement Generate_Function(Call,Apply)
Review URL: http://codereview.chromium.org/147205

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoChanged HashTable::EnsureCapacity to gurantee at least 50% of the entries are free...
bak@chromium.org [Mon, 29 Jun 2009 07:19:17 +0000 (07:19 +0000)]
Changed  HashTable::EnsureCapacity to gurantee at least 50% of the entries are free (up from 25%).
This reduces the mount of probing in large hash tables.

Review URL: http://codereview.chromium.org/150017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix issue 392 by disabling the TakeValue optimization for
kasperl@chromium.org [Mon, 29 Jun 2009 06:20:52 +0000 (06:20 +0000)]
Fix issue 392 by disabling the TakeValue optimization for
access to the arguments object.
Review URL: http://codereview.chromium.org/150016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Store to lookup slots
whesse@chromium.org [Fri, 26 Jun 2009 13:52:05 +0000 (13:52 +0000)]
X64 implementation: Store to lookup slots
Review URL: http://codereview.chromium.org/147203

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years ago- Inlined the code for make simple cons strings.
bak@chromium.org [Fri, 26 Jun 2009 13:09:50 +0000 (13:09 +0000)]
- Inlined the code for make simple cons strings.
- Simplify generated code for Runtime_** functions.

Review URL: http://codereview.chromium.org/149068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 Implementation: Correct type, add VisitCallEval
whesse@chromium.org [Fri, 26 Jun 2009 11:35:42 +0000 (11:35 +0000)]
X64 Implementation: Correct type, add VisitCallEval
Review URL: http://codereview.chromium.org/149066

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 Implementation: Implement floating-point compare
whesse@chromium.org [Fri, 26 Jun 2009 11:01:13 +0000 (11:01 +0000)]
X64 Implementation: Implement floating-point compare
Review URL: http://codereview.chromium.org/147201

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Break and continue.
lrn@chromium.org [Fri, 26 Jun 2009 10:59:04 +0000 (10:59 +0000)]
X64: Break and continue.

Review URL: http://codereview.chromium.org/147198

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Add arguments object to context when needed.
whesse@chromium.org [Fri, 26 Jun 2009 08:38:48 +0000 (08:38 +0000)]
X64 implementation: Add arguments object to context when needed.
Review URL: http://codereview.chromium.org/149063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Added support for "with" and "switch".
lrn@chromium.org [Fri, 26 Jun 2009 08:29:01 +0000 (08:29 +0000)]
X64: Added support for "with" and "switch".

Review URL: http://codereview.chromium.org/147197

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Added for-in
lrn@chromium.org [Fri, 26 Jun 2009 07:41:19 +0000 (07:41 +0000)]
X64: Added for-in

Review URL: http://codereview.chromium.org/149005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 Implementation: Correct error with initializer blocks
whesse@chromium.org [Fri, 26 Jun 2009 07:27:06 +0000 (07:27 +0000)]
X64 Implementation: Correct error with initializer blocks
Review URL: http://codereview.chromium.org/149008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoReintroduce recording of source position that was lost on ia32 for
ager@chromium.org [Thu, 25 Jun 2009 12:20:15 +0000 (12:20 +0000)]
Reintroduce recording of source position that was lost on ia32 for
some reason.
Review URL: http://codereview.chromium.org/147147

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Add some inline runtime functions.
whesse@chromium.org [Thu, 25 Jun 2009 12:06:30 +0000 (12:06 +0000)]
X64 implementation: Add some inline runtime functions.
Review URL: http://codereview.chromium.org/149004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Count operations (increment, decrement)
lrn@chromium.org [Thu, 25 Jun 2009 11:48:27 +0000 (11:48 +0000)]
X64: Count operations (increment, decrement)

Review URL: http://codereview.chromium.org/149002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix instance type check in apply optimization.
ager@chromium.org [Thu, 25 Jun 2009 11:35:03 +0000 (11:35 +0000)]
Fix instance type check in apply optimization.

We accidentally compared a map address with an instance type.  This
fix additionally avoids an upper bounds check that is not needed.

Review URL: http://codereview.chromium.org/149003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years ago* Fix compile errors on Android.
erik.corry@gmail.com [Thu, 25 Jun 2009 10:51:34 +0000 (10:51 +0000)]
* Fix compile errors on Android.
Review URL: http://codereview.chromium.org/149001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: VisitLoop and StackCheck
whesse@chromium.org [Thu, 25 Jun 2009 10:39:28 +0000 (10:39 +0000)]
X64 implementation: VisitLoop and StackCheck
Review URL: http://codereview.chromium.org/147143

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoMake sure that message reporting works when the builtin string and
ager@chromium.org [Thu, 25 Jun 2009 10:27:36 +0000 (10:27 +0000)]
Make sure that message reporting works when the builtin string and
array functions are overwritten.

Review URL: http://codereview.chromium.org/147142

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: VisitUnaryOperation, configure dtoa for X64 platform.
whesse@chromium.org [Thu, 25 Jun 2009 10:15:50 +0000 (10:15 +0000)]
X64 implementation: VisitUnaryOperation, configure dtoa for X64 platform.
Review URL: http://codereview.chromium.org/147141

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoDo not use common INFINITY name as it might be overriden by some other include file...
antonm@chromium.org [Wed, 24 Jun 2009 17:25:46 +0000 (17:25 +0000)]
Do not use common INFINITY name as it might be overriden by some other include file.  Let's use
project specific name.

Review URL: http://codereview.chromium.org/146096

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: GenerateAdaptor builtin.
whesse@chromium.org [Wed, 24 Jun 2009 15:02:46 +0000 (15:02 +0000)]
X64 implementation: GenerateAdaptor builtin.
Review URL: http://codereview.chromium.org/146085

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Start compiling native functions.
whesse@chromium.org [Wed, 24 Jun 2009 13:48:09 +0000 (13:48 +0000)]
X64 implementation: Start compiling native functions.
Review URL: http://codereview.chromium.org/146083

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: comparison operations.
whesse@chromium.org [Wed, 24 Jun 2009 13:46:07 +0000 (13:46 +0000)]
X64 implementation: comparison operations.
Review URL: http://codereview.chromium.org/146082

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAttempt to reduce performance penalty for logging and profiling
antonm@chromium.org [Wed, 24 Jun 2009 13:09:34 +0000 (13:09 +0000)]
Attempt to reduce performance penalty for logging and profiling

Review URL: http://codereview.chromium.org/125141

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoRemoved static type inference and add a dynamic test for string addition.
lrn@chromium.org [Wed, 24 Jun 2009 12:46:00 +0000 (12:46 +0000)]
Removed static type inference and add a dynamic test for string addition.
The complexity of static type inference never really paid off, and as an
analysis it didn't fit well with codegen frame propagation.

Review URL: http://codereview.chromium.org/146077

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Implemented LikelySmiBinaryOperation
lrn@chromium.org [Wed, 24 Jun 2009 12:12:17 +0000 (12:12 +0000)]
X64: Implemented LikelySmiBinaryOperation

Review URL: http://codereview.chromium.org/146081

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoA helper function to speed up creation of V8 wrappers for DOM Nodes.
antonm@chromium.org [Wed, 24 Jun 2009 11:52:52 +0000 (11:52 +0000)]
A helper function to speed up creation of V8 wrappers for DOM Nodes.

Review URL: http://codereview.chromium.org/141044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoChanged benchmark html and css files to be almost validating HTML 4.01 and CSS.
lrn@chromium.org [Wed, 24 Jun 2009 10:10:49 +0000 (10:10 +0000)]
Changed benchmark html and css files to be almost validating HTML 4.01 and CSS.

Review URL: http://codereview.chromium.org/146076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoRevert attempt to optimize away the allocation of a temporary.
ager@chromium.org [Wed, 24 Jun 2009 08:56:55 +0000 (08:56 +0000)]
Revert attempt to optimize away the allocation of a temporary.

TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/147076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agox64 code generation for construct calls, declaring global variables
ager@chromium.org [Wed, 24 Jun 2009 08:28:42 +0000 (08:28 +0000)]
x64 code generation for construct calls, declaring global variables
and for runtime calls.

We could not handle functions with no explicit return statement.  I
added support for that as well.  The place was hard to find because
code was left out from the codegenerator with no TODO comment.  We
need to make sure to comment if we leave out code when porting
something. :-)

Review URL: http://codereview.chromium.org/146029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAllocate arguments object on-demand instead of at function entry.
kasperl@chromium.org [Wed, 24 Jun 2009 08:01:38 +0000 (08:01 +0000)]
Allocate arguments object on-demand instead of at function entry.
This allows Function.prototype.apply to not allocate the objects
and copy the arguments directly from the stack.
Review URL: http://codereview.chromium.org/147075

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Addition binary operation.
lrn@chromium.org [Tue, 23 Jun 2009 11:26:05 +0000 (11:26 +0000)]
X64: Addition binary operation.

Review URL: http://codereview.chromium.org/146022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Read compiler tests from test.js.
whesse@chromium.org [Tue, 23 Jun 2009 11:11:38 +0000 (11:11 +0000)]
X64 implementation: Read compiler tests from test.js.
Review URL: http://codereview.chromium.org/146024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoIntroduce an argument that allows to include some data neccessary for displaying...
yurys@chromium.org [Tue, 23 Jun 2009 09:53:18 +0000 (09:53 +0000)]
Introduce an argument that allows to include some data neccessary for displaying collapsed scope variables values in graphical debugger.

When request has 'inlineRefs' option simple type values will be written in the response directly. Variables of other types in addition to 'ref' property containing the value handle will contain some type information.
Review URL: http://codereview.chromium.org/140061

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Change argument to relocator to take a 64-bit delta. Change...
whesse@chromium.org [Tue, 23 Jun 2009 09:50:51 +0000 (09:50 +0000)]
X64 implementation: Change argument to relocator to take a 64-bit delta.  Change maximum relocation info encoding length.
Review URL: http://codereview.chromium.org/146021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agofixrev
christian.plesner.hansen@gmail.com [Tue, 23 Jun 2009 08:07:22 +0000 (08:07 +0000)]
fixrev

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agofixlink
christian.plesner.hansen@gmail.com [Tue, 23 Jun 2009 08:07:12 +0000 (08:07 +0000)]
fixlink

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoPrepare to push V8 version 1.2.9 to trunk.
ager@chromium.org [Tue, 23 Jun 2009 07:16:22 +0000 (07:16 +0000)]
Prepare to push V8 version 1.2.9 to trunk.
Review URL: http://codereview.chromium.org/146017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoRemove unused variable from keyed stores to fix 64-bit release mode.
ager@chromium.org [Tue, 23 Jun 2009 06:24:37 +0000 (06:24 +0000)]
Remove unused variable from keyed stores to fix 64-bit release mode.
The variable is used for the inlined version of stores which has not
yet been implemented.

Review URL: http://codereview.chromium.org/146016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agox64: Generate code for loading from, storing to and calling properties.
ager@chromium.org [Tue, 23 Jun 2009 06:12:14 +0000 (06:12 +0000)]
x64: Generate code for loading from, storing to and calling properties.

Review URL: http://codereview.chromium.org/141056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoImplement code generation for conditional expressions and regexp
ager@chromium.org [Mon, 22 Jun 2009 19:25:41 +0000 (19:25 +0000)]
Implement code generation for conditional expressions and regexp
literals.  Regexp literals will not really work before we can
bootstrap, but the right code is being called with the right
arguments.

Finish implementation of object literals.  We can now call through the
StoreIC_Miss stub into the runtime system to do stores.

Restore comment that I accidentally removed in my last commit.
Review URL: http://codereview.chromium.org/140068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix non-Intel regexp that needed the number of registers in the
erik.corry@gmail.com [Mon, 22 Jun 2009 18:37:57 +0000 (18:37 +0000)]
Fix non-Intel regexp that needed the number of registers in the
regexp implementation before the regexp had been compiled and the
register count calculated.
Review URL: http://codereview.chromium.org/141047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix lint issue.
ager@chromium.org [Mon, 22 Jun 2009 15:19:47 +0000 (15:19 +0000)]
Fix lint issue.

TBR=bak@chromium.org
Review URL: http://codereview.chromium.org/140066

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoEnable code generation for array literals.
ager@chromium.org [Mon, 22 Jun 2009 15:14:20 +0000 (15:14 +0000)]
Enable code generation for array literals.

Introduce macro assembler support for pushing heap-object handles and
for comparing a register to a heap-object handle.

Cleanup: Remove some code that was needlessly commented out.  Added
TODO's for code that was commented out (where we do not hit an
UNIMPLEMENTED).
Review URL: http://codereview.chromium.org/140060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Correct kTargetAddrToReturnAddrDist value for x64.
whesse@chromium.org [Mon, 22 Jun 2009 14:46:33 +0000 (14:46 +0000)]
X64 implementation: Correct kTargetAddrToReturnAddrDist value for x64.
Review URL: http://codereview.chromium.org/140063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAdded descriptor lookup cache to eliminate some search overhead.
bak@chromium.org [Mon, 22 Jun 2009 14:29:35 +0000 (14:29 +0000)]
Added descriptor lookup cache to eliminate some search overhead.
Reduced the KeyedLookupCache length to 64.
Review URL: http://codereview.chromium.org/141046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Emit correct merge code for virtual frames at CFG merges.
whesse@chromium.org [Mon, 22 Jun 2009 14:22:39 +0000 (14:22 +0000)]
X64 implementation: Emit correct merge code for virtual frames at CFG merges.
Review URL: http://codereview.chromium.org/141043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoSending scope types and object refs costs nothing but would save us request that...
yurys@chromium.org [Mon, 22 Jun 2009 13:14:47 +0000 (13:14 +0000)]
Sending scope types and object refs costs nothing but would save us request that should be send to retrieve scopes informations for each frame in 'backtrace' response.
Review URL: http://codereview.chromium.org/131107

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix bug in static type inference for loops.
lrn@chromium.org [Mon, 22 Jun 2009 12:36:01 +0000 (12:36 +0000)]
Fix bug in static type inference for loops.

Review URL: http://codereview.chromium.org/140058

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix regexp bug reported on iit.edu.
erik.corry@gmail.com [Mon, 22 Jun 2009 12:29:27 +0000 (12:29 +0000)]
Fix regexp bug reported on iit.edu.
Review URL: http://codereview.chromium.org/141042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAfter compile event should be sent even if there is a provisional breakpoint out...
yurys@chromium.org [Mon, 22 Jun 2009 11:56:36 +0000 (11:56 +0000)]
After compile event should be sent even if there is a provisional breakpoint out of its lines range.

Review URL: http://codereview.chromium.org/141041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoRefactor the handling of generations in the compilation cache.
sgjesse@chromium.org [Mon, 22 Jun 2009 11:12:51 +0000 (11:12 +0000)]
Refactor the handling of generations in the compilation cache.

Add generations to the compilation cache for eval and regexp. The number of generations for these are set to two.

BUG=none
TEST=none
Review URL: http://codereview.chromium.org/140056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Enable lazy compilation and add code generation for simple object
ager@chromium.org [Mon, 22 Jun 2009 10:54:11 +0000 (10:54 +0000)]
X64: Enable lazy compilation and add code generation for simple object
literals.
Review URL: http://codereview.chromium.org/141040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Add high_bit() and low_bits() to register methods.
whesse@chromium.org [Mon, 22 Jun 2009 08:17:44 +0000 (08:17 +0000)]
X64 implementation: Add high_bit() and low_bits() to register methods.
Review URL: http://codereview.chromium.org/141032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoImplemented a ContextSlotCache for compiled code.
bak@chromium.org [Mon, 22 Jun 2009 08:09:57 +0000 (08:09 +0000)]
Implemented a ContextSlotCache for compiled code.

Review URL: http://codereview.chromium.org/141038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: if-then-else
whesse@chromium.org [Mon, 22 Jun 2009 08:08:47 +0000 (08:08 +0000)]
X64 implementation: if-then-else
Review URL: http://codereview.chromium.org/141030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix issue 386, a bug in JSObject::ReplaceSlowProperty with constant transitions.
whesse@chromium.org [Mon, 22 Jun 2009 07:41:15 +0000 (07:41 +0000)]
Fix issue 386, a bug in JSObject::ReplaceSlowProperty with constant transitions.
Review URL: http://codereview.chromium.org/141031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoEliminate double offsetting of line numbers in profiler.
mikhail.naganov@gmail.com [Mon, 22 Jun 2009 07:22:09 +0000 (07:22 +0000)]
Eliminate double offsetting of line numbers in profiler.

I didn't noticed that in r1481 GetScriptLineNumber was changed to perform line numbers offsetting by itself.

Review URL: http://codereview.chromium.org/131102

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix regexp bug reported by Ian where [6-9] would match any digit.
erik.corry@gmail.com [Sat, 20 Jun 2009 17:57:09 +0000 (17:57 +0000)]
Fix regexp bug reported by Ian where [6-9] would match any digit.
Review URL: http://codereview.chromium.org/140021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoTwo requested changes to tick processor.
mikhail.naganov@gmail.com [Sat, 20 Jun 2009 12:54:02 +0000 (12:54 +0000)]
Two requested changes to tick processor.

1. If D8_PATH isn't specified, first try to locate 'd8' shell in path,
   and if not found, fallback to the one in tools_path/..
2. Add '--nm=<nm_exec>' parameter to specify 'nm' executable to use.

Review URL: http://codereview.chromium.org/132021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Local vars, nested function calls, assignment statements
whesse@chromium.org [Fri, 19 Jun 2009 10:16:52 +0000 (10:16 +0000)]
X64 implementation: Local vars, nested function calls, assignment statements
Review URL: http://codereview.chromium.org/131050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoClarify precedence of operations involving bitwise and(&) in x64/assembler.
whesse@chromium.org [Fri, 19 Jun 2009 09:12:20 +0000 (09:12 +0000)]
Clarify precedence of operations involving bitwise and(&) in x64/assembler.
Review URL: http://codereview.chromium.org/131099

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAllow functions to have custom construct stubs that are called
kasperl@chromium.org [Fri, 19 Jun 2009 07:36:16 +0000 (07:36 +0000)]
Allow functions to have custom construct stubs that are called
when the function is instantiated.
Review URL: http://codereview.chromium.org/132063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix 'nm' results parsing in tickprocessor.
mikhail.naganov@gmail.com [Fri, 19 Jun 2009 07:08:31 +0000 (07:08 +0000)]
Fix 'nm' results parsing in tickprocessor.

Without an explicit check if a function belongs to shared library address space, "finishing" a library symbols processing with 'addPrevEntry(libEnd);' can cause emission of code entries which cover almost the entire address space, shadowing other code.

Review URL: http://codereview.chromium.org/131033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoChanged allocation to allow large objects to be allocated in new space.
bak@chromium.org [Thu, 18 Jun 2009 14:06:36 +0000 (14:06 +0000)]
Changed allocation to allow large objects to be allocated in new space.
This avoids back-to-back mark-sweep collections.

Review URL: http://codereview.chromium.org/136001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFixed exception in debugger scripts request.
sgjesse@chromium.org [Thu, 18 Jun 2009 14:04:04 +0000 (14:04 +0000)]
Fixed exception in debugger scripts request.

When collecting the result for a scripts request check that scripts compiled through eval actually have a script for the function they where eval'ed in before adding that informaiton to the response.

BUG=http://crbug.com/14388
TEST=none

Review URL: http://codereview.chromium.org/135001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 implementation: Add function literals and function calls.
whesse@chromium.org [Thu, 18 Jun 2009 11:46:38 +0000 (11:46 +0000)]
X64 implementation: Add function literals and function calls.
Review URL: http://codereview.chromium.org/131029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoImplemented processing of compressed log files.
mikhail.naganov@gmail.com [Thu, 18 Jun 2009 07:59:13 +0000 (07:59 +0000)]
Implemented processing of compressed log files.

- fixed address delta calculation;
- code creations are also compressed to be in sync with other events;
- factored out a base class from TickProcessor to reuse code in DevTools profiler.

Review URL: http://codereview.chromium.org/125256

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoInline mod for integer powers of 2.
erik.corry@gmail.com [Thu, 18 Jun 2009 07:33:44 +0000 (07:33 +0000)]
Inline mod for integer powers of 2.
Review URL: http://codereview.chromium.org/126293

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoSpeculative fix for computing Math.pow(2, -1074) on win32 where
kasperl@chromium.org [Thu, 18 Jun 2009 05:47:31 +0000 (05:47 +0000)]
Speculative fix for computing Math.pow(2, -1074) on win32 where
the overloaded pow(double, int) function from math.h produces the
wrong answer.

TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/131022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoMake some small Mac-specific modifications to V8 to make it work on MacOS X 10.4
iposva@chromium.org [Thu, 18 Jun 2009 00:22:52 +0000 (00:22 +0000)]
Make some small Mac-specific modifications to V8 to make it work on MacOS X 10.4
rather than just 10.5 and up.
1: Set the right compile flags and predefines to get backward compatible Unix
system calls.
2: Explicitly weak import the functions in execinfo.h and check at runtime to
see if that library loaded before calling backtrace().

Original change submitted by maf@google.com and reviewed at http://codereview.chromium.org/126241.
Review URL: http://codereview.chromium.org/132002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoDon't strength reduce divisions by 1 or 2 as they can often be
erik.corry@gmail.com [Wed, 17 Jun 2009 19:26:01 +0000 (19:26 +0000)]
Don't strength reduce divisions by 1 or 2 as they can often be
handled by an optimistic inline idiv.
Review URL: http://codereview.chromium.org/125258

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix lint error.
sgjesse@chromium.org [Wed, 17 Jun 2009 14:14:24 +0000 (14:14 +0000)]
Fix lint error.

TBR=kasperl@chromium.org

Review URL: http://codereview.chromium.org/126276

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoMore debug mode tweaks to mozilla.status.
kasperl@chromium.org [Wed, 17 Jun 2009 14:05:00 +0000 (14:05 +0000)]
More debug mode tweaks to mozilla.status.

TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/125251

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoUpdate Mozilla test expectations to better match the new handling
kasperl@chromium.org [Wed, 17 Jun 2009 13:57:44 +0000 (13:57 +0000)]
Update Mozilla test expectations to better match the new handling
of tests that time out.
Review URL: http://codereview.chromium.org/126274

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix unload debugger.
sgjesse@chromium.org [Wed, 17 Jun 2009 13:14:51 +0000 (13:14 +0000)]
Fix unload debugger.

Add a missing handle scope when clearing the debug message handler.

BUG=none
TEST=cctest/test-debug/DebuggerUnload
Review URL: http://codereview.chromium.org/126271

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoMake sure to treat tests that time out as having the
kasperl@chromium.org [Wed, 17 Jun 2009 12:19:51 +0000 (12:19 +0000)]
Make sure to treat tests that time out as having the
TIMEOUT outcome.
Review URL: http://codereview.chromium.org/125248

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64 Implementation: Make codegen load literals and assign to local variables.
whesse@chromium.org [Wed, 17 Jun 2009 12:16:59 +0000 (12:16 +0000)]
X64 Implementation: Make codegen load literals and assign to local variables.
Review URL: http://codereview.chromium.org/126198

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoX64: Implementation of a bunch of stubs, and some new opcodes.
lrn@chromium.org [Wed, 17 Jun 2009 11:50:33 +0000 (11:50 +0000)]
X64: Implementation of a bunch of stubs, and some new opcodes.

Review URL: http://codereview.chromium.org/125185

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAvoid needless creation of handles in regexp runtime routines and use
ager@chromium.org [Wed, 17 Jun 2009 11:44:25 +0000 (11:44 +0000)]
Avoid needless creation of handles in regexp runtime routines and use
the stack instead.
Review URL: http://codereview.chromium.org/126268

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoOptimize special cases of Math.pow().
kasperl@chromium.org [Wed, 17 Jun 2009 11:06:32 +0000 (11:06 +0000)]
Optimize special cases of Math.pow().
Review URL: http://codereview.chromium.org/125245

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoInline fast case of the method that ensures that an array has a
ager@chromium.org [Wed, 17 Jun 2009 10:55:58 +0000 (10:55 +0000)]
Inline fast case of the method that ensures that an array has a
certain size.
Review URL: http://codereview.chromium.org/126265

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoInclude weak symbols from 'nm' report. This fixes "C++" part of profiling results.
mikhail.naganov@gmail.com [Wed, 17 Jun 2009 08:27:19 +0000 (08:27 +0000)]
Include weak symbols from 'nm' report. This fixes "C++" part of profiling results.

Review URL: http://codereview.chromium.org/125243

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoRevert change to LongRunningApply, but allow the test case to time
kasperl@chromium.org [Wed, 17 Jun 2009 06:47:15 +0000 (06:47 +0000)]
Revert change to LongRunningApply, but allow the test case to time
out for now.
Review URL: http://codereview.chromium.org/125241

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoMake test-api/ApplyInterruption less likely to time out in debug
kasperl@chromium.org [Wed, 17 Jun 2009 06:18:10 +0000 (06:18 +0000)]
Make test-api/ApplyInterruption less likely to time out in debug
mode and on actual ARM hardware.

TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/125240

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoReimplemented the KeyedLookupCache to speed up access.
bak@chromium.org [Wed, 17 Jun 2009 06:07:49 +0000 (06:07 +0000)]
Reimplemented the KeyedLookupCache to speed up access.

Review URL: http://codereview.chromium.org/126262

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix the problem with JS entries in tickprocessor.
mikhail.naganov@gmail.com [Tue, 16 Jun 2009 18:57:26 +0000 (18:57 +0000)]
Fix the problem with JS entries in tickprocessor.

The main problem was due to the following: after Erik had fixed the logger to report library addresses, tickprocessor started to add to the code map entries that covered almost entire memory. This happened because tickprocessor contains a heuristic to bias addresses of functions from dynamic libraries:

    if (funcInfo.start < libStart && funcInfo.start < libEnd - libStart) {
      funcInfo.start += libStart;
    }

And, as tickprocessor tried to process all symbols from the library, including data entries, which can be outside reported library addresses range, the second condition failed, and funcInfo.start remained unbiased.

Review URL: http://codereview.chromium.org/125192

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoUse >>> instead of >> in order to cover the full 32 bit range when
erik.corry@gmail.com [Tue, 16 Jun 2009 15:01:24 +0000 (15:01 +0000)]
Use >>> instead of >> in order to cover the full 32 bit range when
handling addresses.
Review URL: http://codereview.chromium.org/125187

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoDon't panic if tickprocessor can't find a shared library.
erik.corry@gmail.com [Tue, 16 Jun 2009 13:44:48 +0000 (13:44 +0000)]
Don't panic if tickprocessor can't find a shared library.
Don't swallow exceptions so we can't see where they are really
thrown.
Review URL: http://codereview.chromium.org/126200

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years ago- Changed fast case for computing object size based on usage histogram.
bak@chromium.org [Tue, 16 Jun 2009 13:31:31 +0000 (13:31 +0000)]
- Changed fast case for computing object size based on usage histogram.
- Added fast case to String.prototype.split (Mads's idea).
- Made minor other optimizations in String.prototype.split.

Review URL: http://codereview.chromium.org/126201

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAdd fast negative checks for symbol equality: If we're comparing
kasperl@chromium.org [Tue, 16 Jun 2009 12:54:07 +0000 (12:54 +0000)]
Add fast negative checks for symbol equality: If we're comparing
two symbols, they're only equal if the objects are identical.
Review URL: http://codereview.chromium.org/125184

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix profiling for shared libraries on Linux loaded at negative addresses
erik.corry@gmail.com [Tue, 16 Jun 2009 12:52:02 +0000 (12:52 +0000)]
Fix profiling for shared libraries on Linux loaded at negative addresses
(Android does this).  Fix logging for executable mappings that have no
file associated.  Be more consistent with use of uintptr_t.
Review URL: http://codereview.chromium.org/125183

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoAdded utility scripts for running oprofile in tools/oprofile.
sgjesse@chromium.org [Tue, 16 Jun 2009 12:08:59 +0000 (12:08 +0000)]
Added utility scripts for running oprofile in tools/oprofile.

To profile running the JavaScript file test.js using the V8 release mode shell (assuming it is build passing prof=oprofile to the SCons build). The following commands can be used:

$ tools/oprofile/start
$ tools/oprofile/run test.js
$ tools/oprofile/report | less
$ tools/oprofile/annotate | less
$ tools/oprofile/shutdown

Here is a summary of the commands.

For all the commands taking an executable the executable is expected to be a binary using V8. If no executable is specified the release mode V8 shell is assumed.

By default the --session-dir=/tmp/oprofv8 is passed to all oprofile commands. This walue can be changed by setting environment variable OPROFILE_SESSION_DIR.

When using the defaulf executable (V8 shell in release mode) it is assumed to be located in ../.. relative from the oprofile utility scripts. This default location can be overridden using the V8_SHELL_DIR environment variable.

start
-----
Start the oprofiling daemon.

run [executable] [parameters]
-----------------------------
Profile a V8 executable. Running this will reset oprofile samples, run the command and do an oprofile dump to flush samples and write ELF binaries for the generated code. The parameters are passed to the executable together with the --oprofile option.

report [executable] [parameters]
--------------------------------
Print the report for a profile run. The parameters are passed to opreport. E.g report --callgraph.

annotate [executable] [parameters]
----------------------------------
Print annotated assembly for a profile run. The parameters are passed to opannotate. E.g annotate -threshold 1.

reset
-----
Reset oprofile samples.

dump
----
Flush oprofile samples and write ELF binaries for the generated code.

shutdown
--------
Shutdown oprofile daemon.

Added a warning which is printed if option --oprofile is passed to a V8 which has not been compiled with oprofile support.
Review URL: http://codereview.chromium.org/125181

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

15 years agoFix issue 380.
mikhail.naganov@gmail.com [Tue, 16 Jun 2009 11:47:00 +0000 (11:47 +0000)]
Fix issue 380.

Don't infer name for a function if a result of its call is assigned to a variable / property. E.g., in this case:

  a = function() { ... } ();

the function must remain anonymous because 'a' doesn't receive a function reference, but instead a result of its call.

BUG=http://code.google.com/p/v8/issues/detail?id=380
TEST=cctest/test-func-name-inference/Issue380

Review URL: http://codereview.chromium.org/126195

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00