- 09 Feb, 2011 1 commit
-
-
fschneider@chromium.org authored
Instead of using the stack, use a temporary integer register and avoid memory access. Review URL: http://codereview.chromium.org/6452002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Feb, 2011 7 commits
-
-
antonm@chromium.org authored
If --debug-code is on, check that returned value and Top::has_pending_exception agree on exception state. Review URL: http://codereview.chromium.org/6450004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
BUG=v8:1109 TEST=test/mjsunit/regress/regress-1109.js Review URL: http://codereview.chromium.org/6453005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
Review URL: http://codereview.chromium.org/6448001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
For redeclarations of variables that alias the parameters in functions using arguments, we need to avoid re-visiting the shared variable rewrite. BUG=v8:1104 Review URL: http://codereview.chromium.org/6453004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
1. Remove unnecessary superlcass LConstant. 2. Use hydrogen accessor instead of duplicating the value. Review URL: http://codereview.chromium.org/6410120 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
Provide special case for f.bind(obj). Review URL: http://codereview.chromium.org/6368138 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
- Don't use SmiSub when overflow can occur. It asserts that overflow does not happen. - Actually use CompareICs and signal to crankshaft whether or not smi code was inlined. - Fix bug in CmpI where 64 bits were compared instead of 32 bits. - Implement Throw, DeferredStackCheck, StoreKeyedFastElement in lithium backend. BUG= TEST= Review URL: http://codereview.chromium.org/6312193 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Feb, 2011 1 commit
-
-
kmillikin@chromium.org authored
Revision 6635 added an assert on IA32 that there were no 'const' parameters. This assert could be hit at compile time because we compiled the unreachable body of functions with illegal redeclarations, which are thrown at runtime. Review URL: http://codereview.chromium.org/6286144 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Feb, 2011 4 commits
-
-
mmaly@chromium.org authored
Code review feedback. Code Review URL: http://codereview.chromium.org/6286043/ git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
BUG=v8:1099 TEST=test/mjsunit/regress/regress-1099.js Review URL: http://codereview.chromium.org/6246106 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Instead of constructing a temporary container for all LOperands of each instruction, the register works directly on the LIR instructions that provide an abstract interface for input/output/temp operands. This saves allocation of zone memory and speeds up LIR construction, but makes iterating over all uses in the register allocator slightly more expensive because environment uses are stored in a linked list of environments. We can fix this by using a flat representation of LOperands. Review URL: http://codereview.chromium.org/6352006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
There was an unnecessary load on every statically-resolved context lookup. Remove it. This revealed a hidden bug in const initializers inside 'with'. They claim to be statically resolved (having slot type CONTEXT) but they occur in a spot where the runtime context chain and the static scope chain do not agree. This is fixed by special casing const initializers in the backend. Review URL: http://codereview.chromium.org/6384020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Feb, 2011 4 commits
-
-
kmillikin@chromium.org authored
Each context in the context chain has a corresponding hydrogen value. The context values are used for global object lookup and context slot lookup. Add simple (non-compound) assignment to context slots. Review URL: http://codereview.chromium.org/6390003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Review URL: http://codereview.chromium.org/6287030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Rewrite the lazy deopt patching code on IA32 to use addresses throughout, rather than offsets and a base address. Also, rename a couple of ambiguous Code fields from _start to _offset. Review URL: http://codereview.chromium.org/6334083 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6368074 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Feb, 2011 4 commits
-
-
kmillikin@chromium.org authored
Record a safepoint with a deoptimization id for throw in optimized code. We don't seem to much care what the AST ID is because we will not be using it for lazy deoptimization (throw doesn't return to the point of throw). For hygiene we use the actual ID of the throw expression. Throw is no longer a control-flow instruction, but it's followed by an unconditional abnormal exit. This is required to insert a simulate between the throw and the exit. Make our optimized treatment of Function.prototype.apply act like a call and have side effects. This ensures that it will get a lazy deoptimization environment. Use that deoptimization ID in the safepoint for the call. Deleting a property was also missing a deoptimization ID, though there was a deoptimization environment assigned to the instruction. Record the environment and use the deoptimization ID at the safepoint. Review URL: http://codereview.chromium.org/6250105 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Fix Math.pow(-0, 0.5) and Math.pow(-0, -0.5). These are not equal to sqrt(-0) and 1/sqrt(-0). Add tests for these cases. Fixes V8 issue 1088. BUG=1088 TEST=test/mjsunit/math-pow.js Review URL: http://codereview.chromium.org/6368050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
karlklose@chromium.org authored
BUG=none TEST=none Review URL: http://codereview.chromium.org/6349046 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
If we, immediately after the deoptimization, but before actually running the patched code, get a compacting GC, the addresses from the calls might no longer be valid. I have validated that this works by patching the existing code to always do a compacting gc after we finish deoptimizing. I will create a real regression test for this, but this includes additional code for allowing us to force a deopt/opt from javascript test code. I will land this in a seperate change. Review URL: http://codereview.chromium.org/6349043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Feb, 2011 1 commit
-
-
karlklose@chromium.org authored
Change OSR stack check patching to use the stack check table to iterate over the calls to stack guards platform independent. Introduce Deoptimizer::PatchStackCheckAt for each platform to perform the platform specific patch at a given pc. BUG=none TEST=none Review URL: http://codereview.chromium.org/6392027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jan, 2011 3 commits
-
-
kmillikin@chromium.org authored
This change caused failures in (out of bounds) keyed loads of strings. TBR'd. Review URL: http://codereview.chromium.org/6298019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This stub is used for increment/decrement operations and unary plus. The resulting code is more compact and faster than calling a JS builtin. Review URL: http://codereview.chromium.org/6350021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
Review URL: http://codereview.chromium.org/6323002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jan, 2011 3 commits
-
-
antonm@chromium.org authored
This reverts r6518. TBR=ager@chromium.org Review URL: http://codereview.chromium.org/6359015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Review URL: http://codereview.chromium.org/6335016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Deletion of global properties puts 'the hole' in the global property cell and updates the property details in the property dictionary with the information that the property has been deleted. When setting global properties that have been deleted in generated code we just store the new value in the global property cell. This does not update the property details in the property dictionary. Therefore, it looks like the property is not there eventhough it was just reintroduced. Perform 'the hole' checks in generated code for global property stores and bail out of ICs and optimized code if storing to a property cell that contains 'the hole'. Review URL: http://codereview.chromium.org/6306014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Jan, 2011 5 commits
-
-
karlklose@chromium.org authored
Refactor SafepointTableBuilder::DefineSafepoint and ARM LCodeGen::RecordSafepoint to use an enum for different kinds of safepoints. This change removes a lot of duplicated code and makes it easier to include new kinds of safepoints in the future. The remaining variants of LCodeGen::RecordSafepoint remain as a convinient way to record common safepoint kinds. BUG=http://code.google.com/p/v8/issues/detail?id=1043 TEST=none Review URL: http://codereview.chromium.org/6341008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
If we compile a function literal twice with the full code generator, we must make sure that the labels embedded in the AST are reset. BUG=1076 Review URL: http://codereview.chromium.org/6339014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
TBR=serya@chromium.org Review URL: http://codereview.chromium.org/6260021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
stub cache generation. Review URL: http://codereview.chromium.org/6392003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This fixes a crash in the code generator. BUG=1074 Review URL: http://codereview.chromium.org/6258020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Jan, 2011 7 commits
-
-
vitalyr@chromium.org authored
To avoid deopts a few extra changes were needed: o Enable megamorphic state for special property loads on primitives. We used to flip between monomorphic stubs. o Extract pure string (no string wrapper support) version of the string length stub. Review URL: http://codereview.chromium.org/6334015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Revert this change again. Somewhat mysteriously we sometimes get empty contexts that we do not expect in the context chain. Review URL: http://codereview.chromium.org/6372013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
Review URL: http://codereview.chromium.org/6283012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/6279011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Port to ARM and x64: Record the lazy deoptimization environmnent only at LLazyBailout-instructions. This is a port of the change http://codereview.chromium.org/6348016/ to ARM and x64 platform. Review URL: http://codereview.chromium.org/6350011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/6366003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
Review URL: http://codereview.chromium.org/6368013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-