Go to file
Mike Klein d3cc16c8bb eliminate the need for a tmp ymm register
Like any other Instruction the store*s are assigned
a destination register d, which doesn't really make
sense, but works perfectly as a temporary register.

This means store8 doesn't need to reserve xmm/ymm15
as a temporary... it already has one naturally.   As
you might expect, the examples we have so far assign
the consumed input x register as the d register, so
things that used to look like

    vpackusdw %ymm6 ,%ymm6 ,%ymm15
    vpermq    $0xd8 ,%ymm15,%ymm15
    vpackuswb %ymm15,%ymm15,%ymm15
    vmoq      %xmm15,(%rdx)

now look more like

    vpackusdw %ymm6,%ymm6,%ymm6
    vpermq    $0xd8,%ymm6,%ymm6
    vpackuswb %ymm6,%ymm6,%ymm6
    vmoq      %xmm6,(%rdx)

Should be no perf difference, just simplified register bookkeeping.

This may suggest splitting load8/store8 into finer instructions,
two to do the physical loads and stores, and two for the 8->32
and 32->8 widen and narrow?  On the other hand load8 really is
just one vpmovzxbd instruction, so it'd be a shame to split it.
I suspect this will become more clear as I add 16-bit support.

Change-Id: I7c2b4d6b1689d40b50382f65fc00c01c54529c8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/220543
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-06-12 17:34:38 +00:00
animations
bench Reland "SkParagraph" 2019-06-11 17:20:36 +00:00
bin Add bin/try-clients to trigger client tryjobs 2019-06-11 16:55:53 +00:00
dm Make color initialization version of createBackendTexture public 2019-06-04 20:12:22 +00:00
docker Include wasm debugger in continuous build part 2 2019-04-01 19:51:43 +00:00
docs/examples PDF example 2019-05-28 17:21:59 +00:00
example Use SkTextEncoding enum instead of macros. 2019-05-07 20:54:16 +00:00
experimental Revert "Revert "try resolver pattern"" 2019-06-12 14:46:56 +00:00
fuzz Make fuzzing use embedded test font 2019-06-03 16:29:21 +00:00
gm Revert "Revert "try resolver pattern"" 2019-06-12 14:46:56 +00:00
gn Add SkRasterPipeline support for more load/store formats and GrSwizzle. 2019-06-11 20:31:02 +00:00
include Minor optimization to serialization of SkPictures with many subpictures. 2019-06-12 14:50:56 +00:00
infra Roll recipe dependencies (trivial). 2019-06-12 00:51:04 +00:00
modules Baseline for empty text 2019-06-11 21:49:49 +00:00
platform_tools rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
resources [skottie] Animated text tracking support 2019-06-11 13:41:28 +00:00
samplecode Baseline for empty text 2019-06-11 21:49:49 +00:00
site fix up relative links and spacing 2019-06-11 14:29:38 +00:00
specs [img-decode] Start on proposed new spec 2019-05-06 17:39:19 +00:00
src eliminate the need for a tmp ymm register 2019-06-12 17:34:38 +00:00
tests Add SkRasterPipeline support for more load/store formats and GrSwizzle. 2019-06-11 20:31:02 +00:00
third_party third-party.gni: Search includes using -I. 2019-06-11 19:04:29 +00:00
tools Remove version string from Viewer's "highlight" SkSL shader 2019-06-12 16:03:36 +00:00
.clang-format restore .clang-format 2019-03-21 15:52:32 +00:00
.clang-tidy add google-build-namespaces to clang-tidy checks 2018-12-12 16:33:59 +00:00
.gitignore clean up some .gitignores 2019-05-15 19:55:45 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS third-party.gni: Search includes using -I. 2019-06-11 19:04:29 +00:00
BUILD.gn Revert "Revert "try resolver pattern"" 2019-06-12 14:46:56 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll third_party/externals/angle2 1b5ad312c57a..2589cdcc88ec (5 commits) 2019-06-12 05:57:12 +00:00
go.mod [infra] Pin infra code using Go modules 2019-05-06 17:53:19 +00:00
go.sum [infra] Pin infra code using Go modules 2019-05-06 17:53:19 +00:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py add mtklein to api approvals 2019-04-02 15:16:56 +00:00
public.bzl expose xform to google3 2019-06-11 21:21:38 +00:00
README
README.chromium
whitespace.txt Whitespace test 2019-05-18 13:05:29 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.