Convert LayerPool and TileCoverageMap from ObjC to C++
https://bugs.webkit.org/show_bug.cgi?id=133862
<rdar://problem/17302883>

Reviewed by Simon Fraser.

This just moves two ObjC files from the mac subdirectory to the parent and
revises the project to build them as C++.

* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/LayerPool.cpp: Copied from platform/graphics/ca/mac/LayerPool.mm.
* platform/graphics/ca/LayerPool.h: Copied from platform/graphics/ca/mac/LayerPool.h.
* platform/graphics/ca/TileCoverageMap.cpp: Copied from platform/graphics/ca/mac/TileCoverageMap.mm.
* platform/graphics/ca/TileCoverageMap.h: Copied from platform/graphics/ca/mac/TileCoverageMap.h.
* platform/graphics/ca/mac/LayerPool.h: Removed.
* platform/graphics/ca/mac/LayerPool.mm: Removed.
* platform/graphics/ca/mac/TileCoverageMap.h: Removed.
* platform/graphics/ca/mac/TileCoverageMap.mm: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
OSR exit should barrier the Executables for all InlineCallFrames, not just those on the stack at the time of exit
https://bugs.webkit.org/show_bug.cgi?id=133880

Reviewed by Filip Pizlo.

Source/JavaScriptCore:
We could have exited due to a value received from an inlined block that's no longer on
the stack, so we should just barrier all InlineCallFrames.

* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::adjustAndJumpToTarget):

Source/WTF:
* wtf/Bag.h:
(WTF::Bag::iterator::operator!=): Add != to the Bag iterator so we can use it in range-based iteration.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
set setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=133829

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-06-13
Reviewed by Eric Carlson.

When playing inline and external screen is active, don't use external playback.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
declare updateDisableExternalPlayback()
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
call updateDisableExternalPlayback when player is created
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
call updateDisableExternalPlayback when fullscreen mode changes
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback):
update setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make css jit allocator smarter.
https://bugs.webkit.org/show_bug.cgi?id=133834

Patch by Alex Christensen <achristensen@webkit.org> on 2014-06-13
Reviewed by Benjamin Poulain.

* cssjit/RegisterAllocator.h:
(WebCore::RegisterAllocator::allocateRegister):
(WebCore::RegisterAllocator::deallocateRegister):
(WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
(WebCore::LocalRegister::LocalRegister):
(WebCore::RegisterAllocator::RegisterAllocator):
Use a Deque for the registers.  Allocate from the front and deallocate to the back to cycle the register usage.
(WebCore::RegisterAllocator::allocateRegisterWithPreference):
(WebCore::LocalRegisterWithPreference::LocalRegisterWithPreference):
Added the ability to specify that we prefer a certain register if it is available while allocating.
These functions always return a register.  It is just a different register than preferred if the preferred register is not available.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
Whenever we are allocating a register for the second argument, we should specify that we
prefer to have argumentGPR1 to reduce register swapping when preparing for a function call.
This cannot be done for argumentGPR0 because elementAddressRegister is argumentGPR0 and it is always allocated.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169953 268f45cc-cd09-0410-ab3c-d52691b4dbfc