f988bb53d0
These have a kind of neat way of encoding the lane index, using the Q bit to pick the lower or upper 64 bits of the register, then the S bit to pick the 32-bit lane within those 64 bits. Usually Q=1 distinguishes a 128-bit op from a Q=0 64-bit op, so its repurposing here is at first surprising, but actually very fitting. I'd eventually like load64/128 to use these like this: Reg tmp0 = alloc_tmp(2), tmp1 = (Reg)(tmp0+1); if (scalar) { a->ld24s(tmp0, arg[immA], 0); } else { a->ld24s(tmp0, arg[immA] ); } mark_tmp_as_dst(tmp0, tmp1); where the mechanism to track up to four registers per value and implement mark_tmp_as_dst(...) for more than one argument is what I'm still working on. Change-Id: I944e571de19f65d41f462406ce35f0f2a35bb381 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/360700 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@google.com> |
||
---|---|---|
animations | ||
bazel | ||
bench | ||
bin | ||
build/fuchsia | ||
build_overrides | ||
client_utils/android | ||
demos.skia.org | ||
dm | ||
docker | ||
docs/examples | ||
example | ||
experimental | ||
fuzz | ||
gm | ||
gn | ||
include | ||
infra | ||
modules | ||
platform_tools | ||
resources | ||
samplecode | ||
site | ||
specs | ||
src | ||
tests | ||
third_party | ||
tools | ||
.bazelignore | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
.gn | ||
AUTHORS | ||
BUILD.bazel | ||
BUILD.gn | ||
codereview.settings | ||
CONTRIBUTING | ||
CQ_COMMITTERS | ||
DEPS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
OWNERS | ||
PRESUBMIT.py | ||
public.bzl | ||
README | ||
README.chromium | ||
RELEASE_NOTES.txt | ||
whitespace.txt | ||
WORKSPACE.bazel |
Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See full details, and build instructions, at https://skia.org.