aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkAnalyticEdge.h
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-04-21 14:58:03 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-25 22:47:52 +0000
commit101806f4526d0ba5d48515c82a28dbf6956aca4d (patch)
tree0c41b4fa746dc44afecbc2e8a9c816cccda54308 /src/core/SkAnalyticEdge.h
parent0c66640ec83af956ab3f6451bd7befd44e73b3b5 (diff)
Inject a dsb into SkAnalyticEdge::setLine() to work around ARMv7 CPU erratum.
BUG=chromium:710131 Change-Id: I4568bc24cc8fabb6f9df3b7645b01a98e11791b8 Reviewed-on: https://skia-review.googlesource.com/14062 Reviewed-by: Doug Anderson <dianders@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/core/SkAnalyticEdge.h')
-rw-r--r--src/core/SkAnalyticEdge.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/SkAnalyticEdge.h b/src/core/SkAnalyticEdge.h
index 65fb11c69c..6c75d157ce 100644
--- a/src/core/SkAnalyticEdge.h
+++ b/src/core/SkAnalyticEdge.h
@@ -131,6 +131,9 @@ struct SkAnalyticCubicEdge : public SkAnalyticEdge {
};
bool SkAnalyticEdge::setLine(const SkPoint& p0, const SkPoint& p1) {
+#if defined(__arm__)
+ asm volatile("dsb"); // crbug.com/710131
+#endif
fRiteE = nullptr;
// We must set X/Y using the same way (e.g., times 4, to FDot6, then to Fixed) as Quads/Cubics.