Create a BranchCtx for Raster Pipeline branch ops.

Previously, these ops just pointed directly at an int*. Now they
point at a BranchCtx* (which contains an int). At present, this
should result in the same data in the Raster Pipeline's alloc; an
int doesn't behave differently than a struct holding an int.

One minor tweak is that we now put the branch target contexts
into the alloc as branch instructions are emitted, rather than
creating them in a slab at the start of the alloc. This might
improve locality _very slightly_ but in practice I assume it's
immaterial.

These changes will make it easier to add new types of RP branching
ops that use more context data than just a single int*.

Change-Id: I41321743fbdf2c61f33cd28b3c3b29cf974ba558
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/633577
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
4 files changed