- 25 Jan, 2011 24 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
-
sgjesse@chromium.org authored
This implements the type recording binary operation stub for ARM. This first iteration only supports ADD. Handling of 32-bit integers is currently not implemented but just transitions. The generic case for now delegates to the generic binary operation stub. Review URL: http://codereview.chromium.org/6342019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/6262013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/6324012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
With SVN r6465 (reverting changes to scopes), a regression test for deleting parameter variables has to change to reflect a semantic change. It is now again possible to delete parameters from a function that uses 'with' or 'try...catch'. Review URL: http://codereview.chromium.org/6307014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6466 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
-
sgjesse@chromium.org authored
Patch by Mark Lam from Hewlett-Packard Development Company, LP Review URL: http://codereview.chromium.org/6287004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
This works around possible collisions with modules installed in the system python directories. See Gentoo Linux bug report: http://bugs.gentoo.org/349794 Patch by Mike Gilbert <floppymaster@gmail.com> Review URL: http://codereview.chromium.org/6253009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/6249016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Patch by Mark Lam from Hewlett-Packard Development Company, LP Review URL: http://codereview.chromium.org/6287004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
liveobjectlist=on/off and objectprint=on/off. Patch by Mark Lam from Hewlett-Packard Development Company, LP Review URL: http://codereview.chromium.org/6267007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Code generated for checks starting with primitive receivers skips one step in the usual prototype checking algorithm, so the holder must always be set. Not setting the holder did not cause an immediate failure because our primitives have additional hidden prototypes before the real prototypes. These extra objects in the chain usually contain no properties and so allowed the right holders to be selected. Review URL: http://codereview.chromium.org/6353014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6459 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
-
ricow@chromium.org authored
Review URL: http://codereview.chromium.org/6324011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/6366010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/6272017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6454 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
-
ager@chromium.org authored
ReferenceError.prototype.__proto__ which will make "error instanceof Error" fail. However, the ReferenceError.prototype object itself cannot be modified. Therefore, the error checks must check for concrete error instances instead of only checking for Error. Review URL: http://codereview.chromium.org/6388003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
I did not take out the code relating to osr from the generate method since this makes it easier to compare to ia32 (we will abort anyway when we hit the osr code so there should be no issues with having this in) Review URL: http://codereview.chromium.org/6390001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Change the ARM exit frame to have the same layout as the IA32 exit frame. This basically re-arranges the order of fp and sp and changes the sp location of the entry frame to hold the sp used by the gc and not the sp for popping the arguments. This removes the option of tearing down the frame and returning using one ldm instruction. The main motivation for this is to avoid pushing an alignment word before generating the entry frame. The GC handling of optimized frames process the registers pushed as part of a safepoint and asumes that these are at the top of the frame, so if an alignment word is pushed this processing will be one off. The alignment handling in the C entry stub have also been simplified. Now the value of lr is stored to a stack slot already reserved avoiding pushing it and keeping track of "frame skew". This does result in more instructions in the exit frame on ARM, but we can look into improving this later. Review URL: http://codereview.chromium.org/6247019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
We allow symbols that are array indices. Review URL: http://codereview.chromium.org/6304016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jan, 2011 11 commits
-
-
mmaly@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
We now conform to ES5 by not deleting variables that occur in a scope shadowed by with or eval. Review URL: http://codereview.chromium.org/6376009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
files. On ARM it is not enough to iterate the relocation information because that will only give us access to the constant pool and not to the place in the instruction stream where the target in the constant pool is called. Review URL: http://codereview.chromium.org/6343005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
The function Runtime_LookupContext searches the context chain for a LOOKUP slot and returns the object holding the slot. It returned the global context if the slot was not found or if it was found in a function's context or arguments object. This is not the correct object to use for 'delete'. Since this lookup function is only ever used when deleting LOOKUP slots (those that have to go through a with or a scope with eval), it is simply replaced with a Runtime_DeleteContextSlot function that does the appropriate thing for all kinds of context lookups. This fixes Chromium bug 70066. http://code.google.com/p/chromium/issues/detail?id=70066 Review URL: http://codereview.chromium.org/6280013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This saves one pointer per LIR instructions. The change relies on the fact that there is a LazyBailout instruction at all the places where we need to register a lazy deoptimization environment. Review URL: http://codereview.chromium.org/6348016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
BUG=none TEST=none Review URL: http://codereview.chromium.org/6308012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/6272015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This is a port of the IA32 version and is needed to allow changing the register allocator interface in a later change. Review URL: http://codereview.chromium.org/6250027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
formatting. I missed a couple of places. Extracting the error object check to a separate function. Review URL: http://codereview.chromium.org/6304015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
This should fix the sputnik issue on the arm simulator. Priorly tmp2 and tmp3 could potentially be the same register as input. Review URL: http://codereview.chromium.org/6293017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Chromium already sets this variable in common.gypi which is force included to all gyp files in the build. Review URL: http://codereview.chromium.org/6250025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jan, 2011 1 commit
-
-
nsylvain@gmail.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jan, 2011 4 commits
-
-
kbr@chromium.org authored
conversions for external array types, which implement the Typed Array spec. (Revision of http://codereview.chromium.org/6315004 .) Prefer SSE2 code path on x86 processors. Non-SSE2 processors now make a slow runtime call for float-to-int conversions. Use SSE3 for 32-bit signed and unsigned int array types where possible. The movement of code from ic-arm.cc to stub-cache-arm.cc caused the VFP3 code path to be tested for the first time. Fixed bugs in the register usage and in the constant value stored into integer arrays for NaN and +/-Infinity. Added new truncation test to test-api.cc. Storage of NaN and +/-Inf was already covered. Ran unit tests on x86, x64 and ARM simulator. Tested ia32 and x64 code in Chromium on Mac and Linux respectively with Typed Array unit tests and WebGL content. BUG=http://code.google.com/p/chromium/issues/detail?id=50972 TEST=test-api/ExternalArrays Review URL: http://codereview.chromium.org/6303012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
encountered error objects with the empty string. This actually does match the Safari behaviour. Review URL: http://codereview.chromium.org/6259010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ricow@chromium.org authored
This tests is flaky in debug mode (especially on mac) Review URL: http://codereview.chromium.org/6275012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
matches the behavior of Safari and Firefox. Our old behavior was to throw a stack overflow exception. BUG=crbug.com/70334 TEST=mjsunit/cyclic-error-to-string.js Review URL: http://codereview.chromium.org/6261018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-