Clean up the loadXXXStyle() idiom in StyleResolver.
https://bugs.webkit.org/show_bug.cgi?id=105903

Reviewed by Darin Adler.

This patch refactors 'loadViewSourceStyle' in order to avoid the
necessity of each call site checking whether the relevant data has
been loaded. The new 'viewSourceStyle' will load the data if required,
and return a pointer which can be used directly.

No new tests, as this refactoring should exhibit no visible change in
behavior.

* css/StyleResolver.cpp:
(WebCore::viewSourceStyle):
    Lazily populate the static 'defaultViewSourceStyle' with data. I
    haven't removed the outer variable, as it's used directly in
    StyleResolver::reportMemoryUsage.
(WebCore::StyleResolver::matchUARules):
(WebCore::StyleResolver::collectFeatures):
    Use the new hotness rather than the old, lame method.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Optimize TransformationMatrix::multiply() for x86_64
https://bugs.webkit.org/show_bug.cgi?id=105719

Reviewed by Sam Weinig.

On x86_64, we have access to 16 XMM registers. This can hold 32 double values.
We can use that in two ways to optimize matrix multiplications:
-Keep the source matrix completely in registers. Write the result directly in
 the source matrix's memory. This avoids the memcpy at the end of the multiplication
 and various memory operations.
-Use SIMD with SSE to perform 2 operations at a time.

The parameter from the second matrix are loaded one by one in XMM registers.
Loading them with SSE then shuffling the values perform worse than loading
one by one.

This is only enabled on 64bits as x86 only has access to 8 XMM registers and
the function should be written differently.

On a i5, TransformationMatrix::multiply() perform about 3 times faster with the change.

* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::multiply):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix): Fix an incorrect comment. Unify the comment with the cpp file.


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