1. 17 Jan, 2013 1 commit
  2. 05 Dec, 2012 1 commit
  3. 26 Nov, 2012 1 commit
  4. 23 May, 2012 1 commit
  5. 12 Mar, 2012 1 commit
  6. 05 Mar, 2012 1 commit
  7. 02 Mar, 2012 2 commits
  8. 24 Nov, 2011 1 commit
  9. 17 Nov, 2011 1 commit
  10. 20 Oct, 2011 1 commit
  11. 07 Apr, 2011 1 commit
  12. 18 Mar, 2011 3 commits
  13. 07 Dec, 2010 3 commits
  14. 11 Nov, 2010 1 commit
  15. 18 Oct, 2010 1 commit
  16. 14 Sep, 2010 1 commit
  17. 01 Sep, 2010 1 commit
  18. 30 Aug, 2010 1 commit
  19. 27 Aug, 2010 2 commits
  20. 20 Aug, 2010 1 commit
  21. 16 Aug, 2010 2 commits
    • vitalyr@chromium.org's avatar
      Copy-on-write arrays. · 3202df6c
      vitalyr@chromium.org authored
      Object model changes
      ----------------------------------------
      New fixed_cow_array_map is used for the elements array of a JSObject
      to mark it as COW. The JSObject's map and other fields are not
      affected. The JSObject's map still has the "fast elements" bit set. It
      means we can do only the receiver map check in keyed loads and the
      receiver and the elements map checks in keyed stores. So introducing
      COW arrays doesn't hurt performance of these operations. But note that
      the elements map check is necessary in all mutating operations because
      the "has fast elements" bit now means "has fast elements for reading".
      EnsureWritableFastElements can be used in runtime functions to perform
      the necessary lazy copying.
      
      Generated code changes
      ----------------------------------------
      Generic keyed load is updated to only do the receiver map check (this
      could have been done earlier). FastCloneShallowArrayStub now has two
      modes: clone elements and use COW elements. AssertFastElements macro
      is added to check the elements when necessary. The custom call IC
      generators for Array.prototype.{push,pop} are updated to avoid going
      to the slow case (and patching the IC) when calling the builtin should
      work.
      
      COW enablement
      ----------------------------------------
      Currently we only put shallow and simple literal arrays in the COW
      mode. This is done by the parser.
      
      Review URL: http://codereview.chromium.org/3144002
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      3202df6c
    • sgjesse@chromium.org's avatar
      ARM: backend opt for ToBoolean: JIT code generation for ToBool · e61bd7bd
      sgjesse@chromium.org authored
      Upgraded the CodeGenerator::ToBoolean() function in the ARM backend to use complete JIT code generation and not make runtime calls to ToBool (when VFP is enabled). 
      
      This change also includes the vcmp VFP instruction that supports a constant 0.0 as the second operand. 
      
      Patch by Subrato K De <subratokde@codeaurora.org>
      
      
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      e61bd7bd
  22. 12 Aug, 2010 1 commit
    • sgjesse@chromium.org's avatar
      Handle overwriting valueOf on String objects correctly when adding · 8e0cd6db
      sgjesse@chromium.org authored
      This adds a check to the fast case string add to ensure that the String object still have the default valueOf function. The default valueOf is sitting on a hidden prototype of String.prototype.
      
      Before using the fast case valueOf the object is checked for a local valueOf property. For slow case objects this check always reports true (the dictionary is not probed, so valueOf might be there) and for fast case objects the descriptor array is checked for the valueOf symbol (just liniar scan). After that the prototype is checked for beeing the initial value of String.prototype. If this all pass (that is the default valueOf is still in place) this result is cached on the map making the check fast the next time.
      
      This is only implemented in the optimizing compiler, as the two usages of %_IsStringWrapperSafeForDefaultValueOf is never hit by the full compiler.
      
      I will port to x64 and ARM when this has been reviewed for ia32.
      
      I will remove the performance counters prior to final commit.
      
      BUG=http://code.google.com/p/v8/issues/detail?id=760
      TEST=test/mjsunit/regress/regress-760-1.js
      TEST=test/mjsunit/regress/regress-760-2.js
      
      Review URL: http://codereview.chromium.org/3117006
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      8e0cd6db
  23. 09 Aug, 2010 1 commit
  24. 06 Aug, 2010 1 commit
  25. 16 Jul, 2010 1 commit
    • ricow@chromium.org's avatar
      Refactor type checks in v8natives.js and runtime.js. · 49573265
      ricow@chromium.org authored
      This includes adding a new inline IsSpecObject method to the code
      generator.  The old approach was somehow ineffecient since we would
      call both IsObject, IsUndetectable and IsFunction to determine if
      something was an object according to the spec. This change introduces
      a new macro that determines if something is an object according to the
      spec (and this does not include null). 
      
      This change also corrects a few places where undetectable objects was
      not allowed even when they should be (priorly they would use only
      IS_SPEC_OBJECT_OR_NULL, which would return false on an undetectable
      object, the new IS_SPEC_OBJECT returns true on an undetectable object.
      
      Review URL: http://codereview.chromium.org/2877018
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      49573265
  26. 13 Jul, 2010 1 commit
  27. 05 Jul, 2010 2 commits
  28. 27 May, 2010 1 commit
  29. 26 May, 2010 1 commit
    • vitalyr@chromium.org's avatar
      Custom call IC-s for String.prototype.{charAt,charCodeAt}. · ad0e3890
      vitalyr@chromium.org authored
      These string methods can be composed from two basic blocks: charCodeAt
      and fromCharCode, both of which have fast cases for certain types of
      inputs. In this patch these two blocks are refactored to allow
      generating the fast cases without having to jump around the slow
      cases. In the slow cases since they can now be invoked both from
      inline runtime functions and from IC stubs we either have to
      save/restore state of the current frame or enter/leave a new internal
      frame. This is handled by new RuntimeCallHelper interface. Its
      implementation for virtual frame is based on FrameRegisterState class
      extracted from DeferredCode class.
      
      Review URL: http://codereview.chromium.org/2087009
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      ad0e3890
  30. 19 May, 2010 1 commit
    • sgjesse@chromium.org's avatar
      Add complete implementation of full compiler for the ia32 architecture · 19d98493
      sgjesse@chromium.org authored
      This makes the full compiler handle all constructs on ia32. However the syntax checker for the full compiler is still the same so for both normal operation and with the flag --always-full-compiler the coverage of the full compiler will be the same.
      
      This is on preparation for improving the debugger break point experience where the plan is to only use code from full code generator when debugging JavaScript.
      
      Runs all tests on all three platforms in release and debug mode. The tests also run with both the following flags to the test runner
      
        --special-command="@ --nofull-compiler"
        --special-command="@ --always-full-compiler"
      
      The changes to the x64 and ARM architectures are mainly structural due to the change to EmitVariableAssignment to handle initialization of const variables.
      Review URL: http://codereview.chromium.org/1989012
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      19d98493
  31. 10 May, 2010 1 commit
    • erik.corry@gmail.com's avatar
      First step towards making JumpTarget work on ARM. Instead · fa7c92ea
      erik.corry@gmail.com authored
      of having a list of virtual frame pointers in the jump
      target we have one virtual frame, which is the frame that
      all have to merge to to branch to that frame.  The virtual
      frame in the JumpTarget is inside the JumpTarget, rather than
      being an allocated object that is pointed to.  Unfortunately
      this means that the JumpTarget class has to be able to see
      the size of a VirtualFrame object to compile, which in turn
      lead to a major reorganization of related .h files.  The
      actual change of functionality in this change is intended
      to be minimal (we now assert that the virtual frames match
      when using JumpTarget instead of just assuming that they do).
      Review URL: http://codereview.chromium.org/1961004
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      fa7c92ea
  32. 29 Apr, 2010 1 commit