Implement SSE2-based implementations of the morphology filters (dilate & erode). This gives a 3-5X speedup over the naive implementation, and also mitigates a timing-based security attack in Chrome (https://code.google.com/p/chromium/issues/detail?id=251711).

NOTE: this will require a corresponding GYP change on the Skia roll into Chrome: https://codereview.chromium.org/52453004/

R=mtklein@google.com, reed@google.com

Review URL: https://codereview.chromium.org/52603004

git-svn-id: http://skia.googlecode.com/svn/trunk/gyp@12038 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/effects.gyp b/effects.gyp
index d22debb..7b256d3 100644
--- a/effects.gyp
+++ b/effects.gyp
@@ -17,6 +17,7 @@
       'include_dirs': [
         '../include/effects',
         '../src/effects',
+        '../src/opts',
         '../src/core',
       ],
       'direct_dependent_settings': {
diff --git a/opts.gyp b/opts.gyp
index d9cd6f2..383c3c9 100644
--- a/opts.gyp
+++ b/opts.gyp
@@ -51,6 +51,7 @@
             '../src/opts/SkBitmapFilter_opts_SSE2.cpp',
             '../src/opts/SkBlitRow_opts_SSE2.cpp',
             '../src/opts/SkBlitRect_opts_SSE2.cpp',
+            '../src/opts/SkMorphology_opts_SSE2.cpp',
             '../src/opts/SkUtils_opts_SSE2.cpp',
             '../src/opts/SkXfermode_opts_none.cpp',
           ],
@@ -100,6 +101,7 @@
             '../src/opts/SkBitmapProcState_opts_none.cpp',
             '../src/opts/SkBlitMask_opts_none.cpp',
             '../src/opts/SkBlitRow_opts_none.cpp',
+            '../src/opts/SkMorphology_opts_none.cpp',
             '../src/opts/SkUtils_opts_none.cpp',
             '../src/opts/SkXfermode_opts_none.cpp',
           ],