cond_stack/mask_stack for CPU backend

This is enough to let the next runtimecolorfilter filter draw.

Mostly this just apes the cond/mask stacks from SkSLByteCode.cpp.

The point of most interest is that we can skip forward kBranchIfAllFalse
if we make our side effects (stores) conditional.

My reasoning here is that a forward branch-if-all-false instruction must
always be a performance optimization only; it's always got to be safe to
not take the branch, as one of your lanes could very well not be false.

Change-Id: I90dda02489b0de4ee91477a4eb7fe14aeb5c555e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327276
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
1 file changed