[CSS Grid Layout] Add parsing for grid-auto-flow
https://bugs.webkit.org/show_bug.cgi?id=108397

Reviewed by Ojan Vafai.

Source/WebCore:

Test: fast/css-grid-layout/grid-auto-flow-get-set.html

This change adds the parsing, application and conversion back through getComputedStyle
for the new property -webkit-grid-auto-flow, which accpets the following:

-webkit-grid-auto-flow: none | rows | columns

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
Added code to convert the RenderStyle information back into a CSS value.

* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
Implemented parsing for -webkit-grid-auto-flow.

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator GridAutoFlow):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
Added the conversion operators, used for parsing and getComputedStyle.

* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
Added -webkit-grid-auto-flow to the list of the not inherited properties.

* css/CSSPropertyNames.in:
Added the new value and keywords.

* css/StyleBuilder.cpp:
(WebCore::StyleBuilder::StyleBuilder):
Added a handler for the new CSS property.

* rendering/style/RenderStyle.h:
Added the usual getter / setter / initial function.

* rendering/style/RenderStyleConstants.h:
Added a new enum GridAutoFlow to hold the parsed value.

* rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData):
* rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator==):
Updated after adding a new field for the GridAutoFlow value.

LayoutTests:

* fast/css-grid-layout/grid-auto-flow-get-set-expected.txt: Added.
* fast/css-grid-layout/grid-auto-flow-get-set.html: Added.
* fast/css-grid-layout/resources/grid.css:
(.gridAutoFlowNone):
(.gridAutoFlowColumn):
(.gridAutoFlowRow):
Added these new classes to our common style.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141787 268f45cc-cd09-0410-ab3c-d52691b4dbfc
For ARMv7s use integer divide instruction for divide and modulo when possible
https://bugs.webkit.org/show_bug.cgi?id=108840

Reviewed in person by Filip Pizlo.

Added ARMv7s integer divide path for ArithDiv and ArithMod where operands and results are integer.
This is patterned after the similar code for X86.  Also added modulo power of 2 optimization
that uses logical and.  Added sdiv and udiv to the ARMv7 disassembler.  Put all the changes
behind #if CPU(APPLE_ARMV7S). 

* assembler/ARMv7Assembler.h:
(ARMv7Assembler):
(JSC::ARMv7Assembler::sdiv):
(JSC::ARMv7Assembler::udiv):
* dfg/DFGCommon.h:
(JSC::DFG::isARMv7s):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileSoftModulo):
(JSC::DFG::SpeculativeJIT::compileIntegerArithDivForARMv7s):
* dfg/DFGSpeculativeJIT.h:
(SpeculativeJIT):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):


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