Reland "Use tailcall recursion to process skcms ops."

This reverts commit e0a502ae9dab9b659018cbc07d98dda20a305cec.

Reason for revert: experiment complete - https://screenshot.googleplex.com/3jGGaL8NX3kthzn

Original change's description:
> Revert "Use tailcall recursion to process skcms ops."
>
> This reverts commit 7cf575c421865b23b898e7a1b9cbcd3f6ecc63da.
>
> Reason for revert: This is a temporary revert to test for performance deltas on Pinpoint. Barring unforeseen circumstances, this CL will be relanded shortly.
>
> Original change's description:
> > Use tailcall recursion to process skcms ops.
> >
> > This is dramatically faster on M1 processors (and likely other ARMs)
> > compared to a giant switch. It is also 25% faster on AMD EPYC (hsw).
> > The MSVS + clang-cl configuration fails tests when SKCMS_MUSTTAIL is
> > used, so SKCMS_MUSTTAIL is disabled in this configuration; I don't
> > have access to a Windows machine to check the difference in actual
> > code generation, but hopefully this is a negligible difference.
> >
> > Change-Id: Ie2f9569d19f3804fcf3ba77b6148fe8f5c8e13f9
> > Bug: b/305974160
> > Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/771479
> > Commit-Queue: John Stiles <johnstiles@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
>
> Bug: b/305974160
> Change-Id: I03728c1e9be80c4e8d5a0ae808fb2c977420efab
> Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/784541
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Bug: b/305974160
Change-Id: I1a97be6d27ae9ea719c0d8308e3f6b52ab09efa2
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/784990
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2 files changed