Revert "Revert "use pipeline for non-opt xfermodes""

This reverts commit 4f8c695736c8ae4fed2190a8e1301a4f4a979898.

Reason for revert: suppression re-landed in chrome

Original change's description:
> Revert "use pipeline for non-opt xfermodes"
> 
> This reverts commit e93cf97175d348ce1400762bdd8d9acabdd29766.
> 
> Reason for revert: unblock Chrome roll
> 
> Original change's description:
> > use pipeline for non-opt xfermodes
> > 
> > Produces slightly different results for Hue, Saturation, Color, Luminosity,
> > seemingly around the aa edging.
> > 
> > Bug: skia:
> > Change-Id: I6364818c9788863e5fad6d14cad4797d073dbea3
> > Reviewed-on: https://skia-review.googlesource.com/19554
> > Reviewed-by: Mike Klein <mtklein@google.com>
> > Commit-Queue: Mike Reed <reed@google.com>
> 
> TBR=mtklein@google.com,fmalita@chromium.org,reed@google.com
> 
> Change-Id: Ib85a51753d21ce778fa5cfedd6b7d1b5b2b87096
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/19745
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>

TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com

Change-Id: I1201b5abae1514edf9143927064ce060095592f4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/19760
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp
index 4fb6293..7dff657 100644
--- a/src/effects/SkLayerDrawLooper.cpp
+++ b/src/effects/SkLayerDrawLooper.cpp
@@ -54,8 +54,8 @@
         default: {
             SkPMColor pmS = SkPreMultiplyColor(src);
             SkPMColor pmD = SkPreMultiplyColor(dst);
-            SkPMColor result = SkXfermode::GetProc(mode)(pmS, pmD);
-            return SkUnPreMultiply::PMColorToColor(result);
+            SkXfermode::Peek(mode)->xfer32(&pmD, &pmS, 1, nullptr);
+            return SkUnPreMultiply::PMColorToColor(pmD);
         }
     }
 }