Bug 740191 - [Skia] Fix SkBlitRow_opts_arm.cpp for compiling with NEON and Thumb enabled. r=mattwoodrow
authorGeorge Wright <gwright@mozilla.com>
Wed, 28 Mar 2012 22:23:28 -0400
changeset 92399 b6a1c1c85ca364cb7743de0a1b3b14b5c85eb679
parent 92398 ca5328d3c661e035ee1b74a88881353182862100
child 92400 17f586740c3bde0eac12b3e5409bba107726de99
push idunknown
push userunknown
push dateunknown
reviewersmattwoodrow
bugs740191
milestone14.0a1
Bug 740191 - [Skia] Fix SkBlitRow_opts_arm.cpp for compiling with NEON and Thumb enabled. r=mattwoodrow
gfx/skia/src/opts/SkBlitRow_opts_arm.cpp
--- a/gfx/skia/src/opts/SkBlitRow_opts_arm.cpp
+++ b/gfx/skia/src/opts/SkBlitRow_opts_arm.cpp
@@ -24,16 +24,19 @@ static void S32A_D565_Opaque_neon(uint16
     if (count >= 8) {
         uint16_t* SK_RESTRICT keep_dst;
         
         asm volatile (
                       "ands       ip, %[count], #7            \n\t"
                       "vmov.u8    d31, #1<<7                  \n\t"
                       "vld1.16    {q12}, [%[dst]]             \n\t"
                       "vld4.8     {d0-d3}, [%[src]]           \n\t"
+                      // Thumb does not support the standard ARM conditional instructions but
+                      // instead requires the 'it' instruction to signal conditional execution.
+                      "it eq                                  \n\t"
                       "moveq      ip, #8                      \n\t"
                       "mov        %[keep_dst], %[dst]         \n\t"
                       
                       "add        %[src], %[src], ip, LSL#2   \n\t"
                       "add        %[dst], %[dst], ip, LSL#1   \n\t"
                       "subs       %[count], %[count], ip      \n\t"
                       "b          9f                          \n\t"
                       // LOOP