aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar tomhudson <tomhudson@google.com>2014-12-09 07:09:08 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-09 07:09:09 -0800
commit414867c00463e1405ce2234cf7591b1788d20b9f (patch)
treedb6b47fc509b6e65bee5fb649d442e790dd999a9
parent2b6658a7e399fcfd90c18ec1597abeddc6c4e64a (diff)
Avoid crash on some 64b ARM NEON platforms.
The compiler may choose to use x30 for a local loop counter; ensure it's saved. Patch from kevin.petit@arm.com, verified by benm@google.com. R=djsollen@google.com Review URL: https://codereview.chromium.org/786273003
-rw-r--r--src/opts/SkXfermode_opts_arm_neon.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/opts/SkXfermode_opts_arm_neon.cpp b/src/opts/SkXfermode_opts_arm_neon.cpp
index 7534c986ca..12c2f57d4f 100644
--- a/src/opts/SkXfermode_opts_arm_neon.cpp
+++ b/src/opts/SkXfermode_opts_arm_neon.cpp
@@ -818,6 +818,7 @@ void SkNEONProcCoeffXfermode::xfer32(SkPMColor* SK_RESTRICT dst,
*/
"x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9",
"x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18",
+ "x30", /* x30 implicitly clobbered by blr */
"v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v16", "v17",
"v18", "v19", "v20", "v21", "v22", "v23", "v24", "v25", "v26",
"v27", "v28", "v29", "v30", "v31"