Avoid crash on some 64b ARM NEON platforms.
authortomhudson <tomhudson@google.com>
Tue, 9 Dec 2014 15:09:08 +0000 (07:09 -0800)
committerCommit bot <commit-bot@chromium.org>
Tue, 9 Dec 2014 15:09:09 +0000 (07:09 -0800)
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

src/opts/SkXfermode_opts_arm_neon.cpp

index 7534c98..12c2f57 100644 (file)
@@ -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"