Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(435)

Side by Side Diff: src/opts/SkXfermode_opts_arm_neon.cpp

Issue 786273003: Avoid crash on some 64b ARM NEON platforms. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #include "SkXfermode.h" 1 #include "SkXfermode.h"
2 #include "SkXfermode_proccoeff.h" 2 #include "SkXfermode_proccoeff.h"
3 #include "SkColorPriv.h" 3 #include "SkColorPriv.h"
4 4
5 #include <arm_neon.h> 5 #include <arm_neon.h>
6 #include "SkColor_opts_neon.h" 6 #include "SkColor_opts_neon.h"
7 #include "SkXfermode_opts_arm_neon.h" 7 #include "SkXfermode_opts_arm_neon.h"
8 8
9 #define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b) 9 #define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b)
10 10
(...skipping 800 matching lines...) Expand 10 before | Expand all | Expand 10 after
811 "blr %[proc] \t\n" 811 "blr %[proc] \t\n"
812 "st4 {v0.8b - v3.8b}, [%[dst]], #32 \t\n" 812 "st4 {v0.8b - v3.8b}, [%[dst]], #32 \t\n"
813 : [src] "+&r" (src), [dst] "+&r" (dst) 813 : [src] "+&r" (src), [dst] "+&r" (dst)
814 : [proc] "r" (procSIMD) 814 : [proc] "r" (procSIMD)
815 : "cc", "memory", 815 : "cc", "memory",
816 /* We don't know what proc is going to clobber so we must 816 /* We don't know what proc is going to clobber so we must
817 * add everything that is not callee-saved. 817 * add everything that is not callee-saved.
818 */ 818 */
819 "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", 819 "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9",
820 "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", 820 "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18",
821 "x30", /* x30 implicitly clobbered by blr */
821 "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v16", "v17", 822 "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v16", "v17",
822 "v18", "v19", "v20", "v21", "v22", "v23", "v24", "v25", "v26", 823 "v18", "v19", "v20", "v21", "v22", "v23", "v24", "v25", "v26",
823 "v27", "v28", "v29", "v30", "v31" 824 "v27", "v28", "v29", "v30", "v31"
824 ); 825 );
825 826
826 #endif // #ifdef SK_CPU_ARM32 827 #endif // #ifdef SK_CPU_ARM32
827 828
828 count -= 8; 829 count -= 8;
829 } 830 }
830 // Leftovers 831 // Leftovers
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 1015
1015 if (procSIMD != NULL) { 1016 if (procSIMD != NULL) {
1016 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD)); 1017 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD));
1017 } 1018 }
1018 return NULL; 1019 return NULL;
1019 } 1020 }
1020 1021
1021 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) { 1022 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) {
1022 return gNEONXfermodeProcs1[mode]; 1023 return gNEONXfermodeProcs1[mode];
1023 } 1024 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698