- 25 Jan, 2011 6 commits
-
-
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 8 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
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/6255008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
This is svn r6415 with a bugfix. The bug was that we can have scopes with 0 heap slots (functions with such scopes do not need a local context) and scopes with at least Context::MIN_CONTEXT_SLOTS. The code generator only allocated a local context if there were strictly more than Context::MIN_CONTEXT_SLOTS. Before the change to with/arguments, it was impossible to actually get a function scope with exactly Context::MIN_CONTEXT_SLOTS because every such scope included a heap-allocated arguments (and arguments shadow) slot. Review URL: http://codereview.chromium.org/6248014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Instead require that the number of temps be specified at each declaration. Review URL: http://codereview.chromium.org/6265019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6303013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jan, 2011 13 commits
-
-
mmaly@chromium.org authored
TBR=arger@chromium.org git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mmaly@chromium.org authored
- var eval | arguments - catch (eval | arguments) - 'with' is disabled - function can't be named eval or arguments Add FLAG_strict_mode git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
karlklose@chromium.org authored
Implement fast code for the common cases of left hand sides that are less than three times larger as the right hand side and and right hand sides that are powers of two up and including 32. In the covered special cases the result is computed directly, else the generic stub is called. The implementation deoptimizes only for mod 0 and if the result may be a negative zero. BUG=none TEST=none Review URL: http://codereview.chromium.org/6331005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6355009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
backend. Review URL: http://codereview.chromium.org/6368009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
This reverts SVN revision 6415 due to layout test failures. TBR=ricow Review URL: http://codereview.chromium.org/6374006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Rename HBranch (the instruction that coerces an arbitrary HValue to control flow) to HTest to free up the term Branch to refer to any control instruction with two successors. Change the virtual FirstSuccessor and SecondSuccessor functions on control instructions to a pair of data members. Review URL: http://codereview.chromium.org/6366002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Add a generic tagged version for all bitwise operation that invoke the generic stub. This allows us to perform generic bitwise operations (i.e. on non-integers) without deoptimizing. Review URL: http://codereview.chromium.org/6366006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Before, we conservatively marked every variable in a scope as used if the scope contained 'with'. Instead, just mark the variables occurring in the body of the with. This avoids marking 'arguments' as used whenever 'with' occurs, which incurs an extra performance penalty (a use of arguments is seen as an instruction to redirect all parameter accesses to the arguments object). Review URL: http://codereview.chromium.org/6357007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6415 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/6364002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/6260014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6413 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/6335009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
tagged case. I couldn't find a way to test the double case yet so I'm leaving that unimplemented for now. Review URL: http://codereview.chromium.org/6347007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jan, 2011 1 commit
-
-
vitalyr@chromium.org authored
This patch adds H- and L-variants of StringCharCodeAt and StringLength. StringCharCodeAt is used to inline a constant function call of String.prototype.charCodeAt and to implement the corresponding inline runtime function. It does not yet use the recently introduced extra IC state. (We can specialize on string encoding and avoid deopts because of out of bounds accesses.) StringLength needs more work because the stub version of it also supports strings wrappers and it matters in some cases. (We have to separate the string only case.) Review URL: http://codereview.chromium.org/6243008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-