Revert "finish new-style opts"

This reverts commit 4272d071d9a1aed5b76d7c05141a65a03d5cfb4e.

Reason for revert: Flutter roll?

Original change's description:
> finish new-style opts
> 
> Nothing super interesting.
> 
> SkOpts_crc32.cpp is worth looking at
> as the only non-x86 code.
> 
> I marked a few places I think we can
> trim to save code size as follow ups.
> 
> Change-Id: Ifdc8f4d1495ff56df5d2cdde39f7e9a6ac2b1277
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/294019
> Auto-Submit: Mike Klein <mtklein@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Herb Derby <herb@google.com>

TBR=mtklein@google.com,herb@google.com

Change-Id: Idbb914788489bdc5941f7fed23bf26d35d90dca4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/294280
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
diff --git a/gn/core.gni b/gn/core.gni
index cf65c77..e4d26bb 100644
--- a/gn/core.gni
+++ b/gn/core.gni
@@ -272,13 +272,15 @@
   "$_src/core/SkOSFile.h",
   "$_src/core/SkOpts.cpp",
   "$_src/core/SkOpts.h",
-  "$_src/core/SkOpts_avx.cpp",
-  "$_src/core/SkOpts_crc32.cpp",
+
+  #"$_src/core/SkOpts_avx.cpp",
+  #"$_src/core/SkOpts_crc32.cpp",
   "$_src/core/SkOpts_hsw.cpp",
   "$_src/core/SkOpts_skx.cpp",
-  "$_src/core/SkOpts_sse41.cpp",
-  "$_src/core/SkOpts_sse42.cpp",
-  "$_src/core/SkOpts_ssse3.cpp",
+
+  #"$_src/core/SkOpts_sse41.cpp",
+  #"$_src/core/SkOpts_sse42.cpp",
+  #"$_src/core/SkOpts_ssse3.cpp",
   "$_src/core/SkOrderedReadBuffer.h",
   "$_src/core/SkOverdrawCanvas.cpp",
   "$_src/core/SkPaint.cpp",
diff --git a/src/core/SkOpts_avx.cpp b/src/core/SkOpts_avx.cpp
deleted file mode 100644
index 14283cb..0000000
--- a/src/core/SkOpts_avx.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "src/core/SkOpts.h"
-
-#if defined(SK_CPU_X86)
-
-    // Turn on AVX feature set.
-    #if defined(__clang__)
-        #pragma clang attribute push(__attribute__((target("avx"))), apply_to=function)
-    #elif defined(__GNUC__)
-        #pragma GCC push_options
-        #pragma GCC target("avx")
-    #endif
-
-    // Let our code in *_opts.h know we want AVX features.
-    #undef  SK_CPU_SSE_LEVEL
-    #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_AVX
-
-    #if defined(__clang__) && defined(_MSC_VER)
-        // clang-cl's immintrin.h is bizarrely annoying, not including the
-        // various foointrin.h unless the __FOO__ flag is also defined (i.e.
-        // you used command-line flags to set the features instead of attributes).
-        // MSVC itself doesn't work this way, nor does non-_MSC_VER clang.  :/
-        #define __SSE__ 1
-        #define __SSE2__ 1
-        #define __SSE3__ 1
-        #define __SSSE3__ 1
-        #define __SSE4_1__ 1
-        #define __SSE4_2__ 1
-        #define __AVX__ 1
-    #endif
-
-    #define SK_OPTS_NS avx
-    #include "src/opts/SkRasterPipeline_opts.h"
-    #include "src/opts/SkUtils_opts.h"
-
-    namespace SkOpts {
-        void Init_avx() {
-            memset16 = SK_OPTS_NS::memset16;
-            memset32 = SK_OPTS_NS::memset32;
-            memset64 = SK_OPTS_NS::memset64;
-
-            rect_memset16 = SK_OPTS_NS::rect_memset16;
-            rect_memset32 = SK_OPTS_NS::rect_memset32;
-            rect_memset64 = SK_OPTS_NS::rect_memset64;
-
-            // TODO: maybe cut these stages to save code size?  Almost everything is HSW these days.
-        #define M(st) stages_highp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::st;
-            SK_RASTER_PIPELINE_STAGES(M)
-            just_return_highp = (StageFn)SK_OPTS_NS::just_return;
-            start_pipeline_highp = SK_OPTS_NS::start_pipeline;
-        #undef M
-
-        #define M(st) stages_lowp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::lowp::st;
-            SK_RASTER_PIPELINE_STAGES(M)
-            just_return_lowp = (StageFn)SK_OPTS_NS::lowp::just_return;
-            start_pipeline_lowp = SK_OPTS_NS::lowp::start_pipeline;
-        #undef M
-        }
-    }
-
-    #if defined(__clang__)
-        #pragma clang attribute pop
-    #elif defined(__GNUC__)
-        #pragma GCC pop_options
-    #endif
-
-#endif//defined(SK_CPU_X86)
diff --git a/src/core/SkOpts_crc32.cpp b/src/core/SkOpts_crc32.cpp
deleted file mode 100644
index e8b0d5a..0000000
--- a/src/core/SkOpts_crc32.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "src/core/SkOpts.h"
-
-#if defined(SK_CPU_ARM64)
-
-    // Turn on CRC32 feature set.
-    #if defined(__clang__)
-        #pragma clang attribute push(__attribute__((target("crc"))), apply_to=function)
-    #elif defined(__GNUC__)
-        #pragma GCC push_options
-        #pragma GCC target("crc")
-    #endif
-
-    // Let our code in *_opts.h know we want CRC32 features.
-    #define SK_ARM_HAS_CRC32
-
-    // Let the arm_acle.h headers know we will be using the CRC32 intrinsics.
-    #define __ARM_FEATURE_CRC32 1
-
-    #define SK_OPTS_NS crc32
-    #include "src/opts/SkChecksum_opts.h"
-
-    namespace SkOpts {
-        void Init_crc32() {
-            hash_fn = SK_OPTS_NS::hash_fn;
-        }
-    }
-
-    #if defined(__clang__)
-        #pragma clang attribute pop
-    #elif defined(__GNUC__)
-        #pragma GCC pop_options
-    #endif
-
-#endif//defined(SK_CPU_ARM64)
diff --git a/src/core/SkOpts_sse41.cpp b/src/core/SkOpts_sse41.cpp
deleted file mode 100644
index a6ff3ae..0000000
--- a/src/core/SkOpts_sse41.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "src/core/SkOpts.h"
-
-#if defined(SK_CPU_X86)
-
-    // Turn on SSE4.1 feature set.
-    #if defined(__clang__)
-        #pragma clang attribute push(__attribute__((target("sse4.1"))), apply_to=function)
-    #elif defined(__GNUC__)
-        #pragma GCC push_options
-        #pragma GCC target("sse4.1")
-    #endif
-
-    // Let our code in *_opts.h know we want SSE 4.1 features.
-    #undef  SK_CPU_SSE_LEVEL
-    #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE41
-
-    #if defined(__clang__) && defined(_MSC_VER)
-        // clang-cl's immintrin.h is bizarrely annoying, not including the
-        // various foointrin.h unless the __FOO__ flag is also defined (i.e.
-        // you used command-line flags to set the features instead of attributes).
-        // MSVC itself doesn't work this way, nor does non-_MSC_VER clang.  :/
-        #define __SSE__ 1
-        #define __SSE2__ 1
-        #define __SSE3__ 1
-        #define __SSSE3__ 1
-        #define __SSE4_1__ 1
-    #endif
-
-    #define SK_OPTS_NS sse41
-    #include "src/opts/SkBlitRow_opts.h"
-    #include "src/opts/SkRasterPipeline_opts.h"
-
-    // TODO: maybe cut this whole file to save code size?  Almost everything is HSW these days.
-    namespace SkOpts {
-        void Init_sse41() {
-            blit_row_color32     = SK_OPTS_NS::blit_row_color32;
-            blit_row_s32a_opaque = SK_OPTS_NS::blit_row_s32a_opaque;
-
-        #define M(st) stages_highp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::st;
-            SK_RASTER_PIPELINE_STAGES(M)
-            just_return_highp = (StageFn)SK_OPTS_NS::just_return;
-            start_pipeline_highp = SK_OPTS_NS::start_pipeline;
-        #undef M
-
-        #define M(st) stages_lowp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::lowp::st;
-            SK_RASTER_PIPELINE_STAGES(M)
-            just_return_lowp = (StageFn)SK_OPTS_NS::lowp::just_return;
-            start_pipeline_lowp = SK_OPTS_NS::lowp::start_pipeline;
-        #undef M
-        }
-    }
-
-    #if defined(__clang__)
-        #pragma clang attribute pop
-    #elif defined(__GNUC__)
-        #pragma GCC pop_options
-    #endif
-
-#endif//defined(SK_CPU_X86)
-
diff --git a/src/core/SkOpts_sse42.cpp b/src/core/SkOpts_sse42.cpp
deleted file mode 100644
index 46f0851..0000000
--- a/src/core/SkOpts_sse42.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "src/core/SkOpts.h"
-
-#if defined(SK_CPU_X86)
-
-    // Turn on SSE4.2 feature set.
-    #if defined(__clang__)
-        #pragma clang attribute push(__attribute__((target("sse4.2"))), apply_to=function)
-    #elif defined(__GNUC__)
-        #pragma GCC push_options
-        #pragma GCC target("sse4.2")
-    #endif
-
-    // Let our code in *_opts.h know we want SSE 4.2 features.
-    #undef  SK_CPU_SSE_LEVEL
-    #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE42
-
-    #if defined(__clang__) && defined(_MSC_VER)
-        // clang-cl's immintrin.h is bizarrely annoying, not including the
-        // various foointrin.h unless the __FOO__ flag is also defined (i.e.
-        // you used command-line flags to set the features instead of attributes).
-        // MSVC itself doesn't work this way, nor does non-_MSC_VER clang.  :/
-        #define __SSE__ 1
-        #define __SSE2__ 1
-        #define __SSE3__ 1
-        #define __SSSE3__ 1
-        #define __SSE4_1__ 1
-        #define __SSE4_2__ 1
-    #endif
-
-    #define SK_OPTS_NS sse42
-    #include "src/opts/SkChecksum_opts.h"
-
-    namespace SkOpts {
-        void Init_sse42() {
-            hash_fn = SK_OPTS_NS::hash_fn;
-        }
-    }
-
-    #if defined(__clang__)
-        #pragma clang attribute pop
-    #elif defined(__GNUC__)
-        #pragma GCC pop_options
-    #endif
-
-#endif//defined(SK_CPU_X86)
diff --git a/src/core/SkOpts_ssse3.cpp b/src/core/SkOpts_ssse3.cpp
deleted file mode 100644
index 7009546..0000000
--- a/src/core/SkOpts_ssse3.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2020 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "src/core/SkOpts.h"
-
-#if defined(SK_CPU_X86)
-
-    // Turn on SSSE3 feature set.
-    #if defined(__clang__)
-        #pragma clang attribute push(__attribute__((target("ssse3"))), apply_to=function)
-    #elif defined(__GNUC__)
-        #pragma GCC push_options
-        #pragma GCC target("ssse3")
-    #endif
-
-    // Let our code in *_opts.h know we want SSSE3 features.
-    #undef  SK_CPU_SSE_LEVEL
-    #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSSE3
-
-    #if defined(__clang__) && defined(_MSC_VER)
-        // clang-cl's immintrin.h is bizarrely annoying, not including the
-        // various foointrin.h unless the __FOO__ flag is also defined (i.e.
-        // you used command-line flags to set the features instead of attributes).
-        // MSVC itself doesn't work this way, nor does non-_MSC_VER clang.  :/
-        #define __SSE__ 1
-        #define __SSE2__ 1
-        #define __SSE3__ 1
-        #define __SSSE3__ 1
-    #endif
-
-    #define SK_OPTS_NS ssse3
-    #include "src/opts/SkBitmapProcState_opts.h"
-    #include "src/opts/SkBlitMask_opts.h"
-    #include "src/opts/SkSwizzler_opts.h"
-    #include "src/opts/SkXfermode_opts.h"
-
-    namespace SkOpts {
-        void Init_ssse3() {
-            RGBA_to_BGRA          = SK_OPTS_NS::RGBA_to_BGRA;
-            RGBA_to_rgbA          = SK_OPTS_NS::RGBA_to_rgbA;
-            RGBA_to_bgrA          = SK_OPTS_NS::RGBA_to_bgrA;
-            RGB_to_RGB1           = SK_OPTS_NS::RGB_to_RGB1;
-            RGB_to_BGR1           = SK_OPTS_NS::RGB_to_BGR1;
-            gray_to_RGB1          = SK_OPTS_NS::gray_to_RGB1;
-            grayA_to_RGBA         = SK_OPTS_NS::grayA_to_RGBA;
-            grayA_to_rgbA         = SK_OPTS_NS::grayA_to_rgbA;
-            inverted_CMYK_to_RGB1 = SK_OPTS_NS::inverted_CMYK_to_RGB1;
-            inverted_CMYK_to_BGR1 = SK_OPTS_NS::inverted_CMYK_to_BGR1;
-
-            // TODO: maybe cut these three to save code size?  Almost everything is HSW these days.
-            create_xfermode = SK_OPTS_NS::create_xfermode;
-            blit_mask_d32_a8 = SK_OPTS_NS::blit_mask_d32_a8;
-            S32_alpha_D32_filter_DX  = SK_OPTS_NS::S32_alpha_D32_filter_DX;
-        }
-    }
-
-    #if defined(__clang__)
-        #pragma clang attribute pop
-    #elif defined(__GNUC__)
-        #pragma GCC pop_options
-    #endif
-
-#endif//defined(SK_CPU_X86)
diff --git a/src/opts/SkOpts_avx.cpp b/src/opts/SkOpts_avx.cpp
index 049c90e..80ccf54 100644
--- a/src/opts/SkOpts_avx.cpp
+++ b/src/opts/SkOpts_avx.cpp
@@ -5,4 +5,32 @@
  * found in the LICENSE file.
  */
 
-// Intentionally empty, to be cleaned up.
+#include "src/core/SkOpts.h"
+
+#define SK_OPTS_NS avx
+#include "src/opts/SkRasterPipeline_opts.h"
+#include "src/opts/SkUtils_opts.h"
+
+namespace SkOpts {
+    void Init_avx() {
+        memset16 = SK_OPTS_NS::memset16;
+        memset32 = SK_OPTS_NS::memset32;
+        memset64 = SK_OPTS_NS::memset64;
+
+        rect_memset16 = SK_OPTS_NS::rect_memset16;
+        rect_memset32 = SK_OPTS_NS::rect_memset32;
+        rect_memset64 = SK_OPTS_NS::rect_memset64;
+
+    #define M(st) stages_highp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::st;
+        SK_RASTER_PIPELINE_STAGES(M)
+        just_return_highp = (StageFn)SK_OPTS_NS::just_return;
+        start_pipeline_highp = SK_OPTS_NS::start_pipeline;
+    #undef M
+
+    #define M(st) stages_lowp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::lowp::st;
+        SK_RASTER_PIPELINE_STAGES(M)
+        just_return_lowp = (StageFn)SK_OPTS_NS::lowp::just_return;
+        start_pipeline_lowp = SK_OPTS_NS::lowp::start_pipeline;
+    #undef M
+    }
+}
diff --git a/src/opts/SkOpts_crc32.cpp b/src/opts/SkOpts_crc32.cpp
index 049c90e..205f0eb 100644
--- a/src/opts/SkOpts_crc32.cpp
+++ b/src/opts/SkOpts_crc32.cpp
@@ -5,4 +5,13 @@
  * found in the LICENSE file.
  */
 
-// Intentionally empty, to be cleaned up.
+#include "src/core/SkOpts.h"
+
+#define SK_OPTS_NS crc32
+#include "src/opts/SkChecksum_opts.h"
+
+namespace SkOpts {
+    void Init_crc32() {
+        hash_fn = crc32::hash_fn;
+    }
+}
diff --git a/src/opts/SkOpts_sse41.cpp b/src/opts/SkOpts_sse41.cpp
index abd4796..8e52596 100644
--- a/src/opts/SkOpts_sse41.cpp
+++ b/src/opts/SkOpts_sse41.cpp
@@ -5,4 +5,27 @@
  * found in the LICENSE file.
  */
 
-// Intentionally empty, to be cleaned up.
+#include "src/core/SkOpts.h"
+
+#define SK_OPTS_NS sse41
+#include "src/opts/SkBlitRow_opts.h"
+#include "src/opts/SkRasterPipeline_opts.h"
+
+namespace SkOpts {
+    void Init_sse41() {
+        blit_row_color32     = sse41::blit_row_color32;
+        blit_row_s32a_opaque = sse41::blit_row_s32a_opaque;
+
+    #define M(st) stages_highp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::st;
+        SK_RASTER_PIPELINE_STAGES(M)
+        just_return_highp = (StageFn)SK_OPTS_NS::just_return;
+        start_pipeline_highp = SK_OPTS_NS::start_pipeline;
+    #undef M
+
+    #define M(st) stages_lowp[SkRasterPipeline::st] = (StageFn)SK_OPTS_NS::lowp::st;
+        SK_RASTER_PIPELINE_STAGES(M)
+        just_return_lowp = (StageFn)SK_OPTS_NS::lowp::just_return;
+        start_pipeline_lowp = SK_OPTS_NS::lowp::start_pipeline;
+    #undef M
+    }
+}
diff --git a/src/opts/SkOpts_sse42.cpp b/src/opts/SkOpts_sse42.cpp
index 049c90e..8e80fff 100644
--- a/src/opts/SkOpts_sse42.cpp
+++ b/src/opts/SkOpts_sse42.cpp
@@ -5,4 +5,14 @@
  * found in the LICENSE file.
  */
 
-// Intentionally empty, to be cleaned up.
+#include "src/core/SkOpts.h"
+
+#define SK_OPTS_NS sse42
+#include "src/opts/SkChecksum_opts.h"
+
+namespace SkOpts {
+    void Init_sse42() {
+        hash_fn = sse42::hash_fn;
+    }
+}
+
diff --git a/src/opts/SkOpts_ssse3.cpp b/src/opts/SkOpts_ssse3.cpp
index abd4796..daa6987 100644
--- a/src/opts/SkOpts_ssse3.cpp
+++ b/src/opts/SkOpts_ssse3.cpp
@@ -5,4 +5,29 @@
  * found in the LICENSE file.
  */
 
-// Intentionally empty, to be cleaned up.
+#include "src/core/SkOpts.h"
+#define SK_OPTS_NS ssse3
+#include "src/opts/SkBitmapProcState_opts.h"
+#include "src/opts/SkBlitMask_opts.h"
+#include "src/opts/SkSwizzler_opts.h"
+#include "src/opts/SkXfermode_opts.h"
+
+namespace SkOpts {
+    void Init_ssse3() {
+        create_xfermode = ssse3::create_xfermode;
+        blit_mask_d32_a8 = ssse3::blit_mask_d32_a8;
+
+        RGBA_to_BGRA          = ssse3::RGBA_to_BGRA;
+        RGBA_to_rgbA          = ssse3::RGBA_to_rgbA;
+        RGBA_to_bgrA          = ssse3::RGBA_to_bgrA;
+        RGB_to_RGB1           = ssse3::RGB_to_RGB1;
+        RGB_to_BGR1           = ssse3::RGB_to_BGR1;
+        gray_to_RGB1          = ssse3::gray_to_RGB1;
+        grayA_to_RGBA         = ssse3::grayA_to_RGBA;
+        grayA_to_rgbA         = ssse3::grayA_to_rgbA;
+        inverted_CMYK_to_RGB1 = ssse3::inverted_CMYK_to_RGB1;
+        inverted_CMYK_to_BGR1 = ssse3::inverted_CMYK_to_BGR1;
+
+        S32_alpha_D32_filter_DX  = ssse3::S32_alpha_D32_filter_DX;
+    }
+}