Changeset 166233 in webkit
- Timestamp:
- Mar 25, 2014 6:14:42 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r166231 r166233 1 2014-03-25 Gabor Rapcsanyi <rgabor@webkit.org> 2 3 [ARM64] GNU assembler fails in TransformationMatrix::multiply 4 https://bugs.webkit.org/show_bug.cgi?id=130454 5 6 Reviewed by Zoltan Herczeg. 7 8 Change the NEON intstructions to the proper style. 9 10 * platform/graphics/transforms/TransformationMatrix.cpp: 11 (WebCore::TransformationMatrix::multiply): 12 1 13 2014-03-20 Sergio Villar Senin <svillar@igalia.com> 2 14 -
trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp
r165676 r166233 1041 1041 asm volatile ( 1042 1042 // First, load the leftMatrix completely in memory. The leftMatrix is in v16-v23. 1043 "mov 1044 "ld1 .2d {v16, v17, v18, v19}, [%[leftMatrix]], #64\n\t"1045 "ld1 .2d {v20, v21, v22, v23}, [%[leftMatrix]]\n\t"1043 "mov x4, %[leftMatrix]\n\t" 1044 "ld1 {v16.2d, v17.2d, v18.2d, v19.2d}, [%[leftMatrix]], #64\n\t" 1045 "ld1 {v20.2d, v21.2d, v22.2d, v23.2d}, [%[leftMatrix]]\n\t" 1046 1046 1047 1047 // First row. 1048 "ld4r .2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t"1049 "fmul .2d v28, v24, v16\n\t"1050 "fmul .2d v29, v24, v17\n\t"1051 "fmla .2d v28, v25, v18\n\t"1052 "fmla .2d v29, v25, v19\n\t"1053 "fmla .2d v28, v26, v20\n\t"1054 "fmla .2d v29, v26, v21\n\t"1055 "fmla .2d v28, v27, v22\n\t"1056 "fmla .2d v29, v27, v23\n\t"1057 1058 "ld4r .2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t"1059 "st1 .2d {v28, v29}, [x4], #32\n\t"1048 "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t" 1049 "fmul v28.2d, v24.2d, v16.2d\n\t" 1050 "fmul v29.2d, v24.2d, v17.2d\n\t" 1051 "fmla v28.2d, v25.2d, v18.2d\n\t" 1052 "fmla v29.2d, v25.2d, v19.2d\n\t" 1053 "fmla v28.2d, v26.2d, v20.2d\n\t" 1054 "fmla v29.2d, v26.2d, v21.2d\n\t" 1055 "fmla v28.2d, v27.2d, v22.2d\n\t" 1056 "fmla v29.2d, v27.2d, v23.2d\n\t" 1057 1058 "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t" 1059 "st1 {v28.2d, v29.2d}, [x4], #32\n\t" 1060 1060 1061 1061 // Second row. 1062 "fmul .2d v30, v0, v16\n\t"1063 "fmul .2d v31, v0, v17\n\t"1064 "fmla .2d v30, v1, v18\n\t"1065 "fmla .2d v31, v1, v19\n\t"1066 "fmla .2d v30, v2, v20\n\t"1067 "fmla .2d v31, v2, v21\n\t"1068 "fmla .2d v30, v3, v22\n\t"1069 "fmla .2d v31, v3, v23\n\t"1070 1071 "ld4r .2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t"1072 "st1 .2d {v30, v31}, [x4], #32\n\t"1062 "fmul v30.2d, v0.2d, v16.2d\n\t" 1063 "fmul v31.2d, v0.2d, v17.2d\n\t" 1064 "fmla v30.2d, v1.2d, v18.2d\n\t" 1065 "fmla v31.2d, v1.2d, v19.2d\n\t" 1066 "fmla v30.2d, v2.2d, v20.2d\n\t" 1067 "fmla v31.2d, v2.2d, v21.2d\n\t" 1068 "fmla v30.2d, v3.2d, v22.2d\n\t" 1069 "fmla v31.2d, v3.2d, v23.2d\n\t" 1070 1071 "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t" 1072 "st1 {v30.2d, v31.2d}, [x4], #32\n\t" 1073 1073 1074 1074 // Third row. 1075 "fmul .2d v28, v24, v16\n\t"1076 "fmul .2d v29, v24, v17\n\t"1077 "fmla .2d v28, v25, v18\n\t"1078 "fmla .2d v29, v25, v19\n\t"1079 "fmla .2d v28, v26, v20\n\t"1080 "fmla .2d v29, v26, v21\n\t"1081 "fmla .2d v28, v27, v22\n\t"1082 "fmla .2d v29, v27, v23\n\t"1083 1084 "ld4r .2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t"1085 "st1 .2d {v28, v29}, [x4], #32\n\t"1075 "fmul v28.2d, v24.2d, v16.2d\n\t" 1076 "fmul v29.2d, v24.2d, v17.2d\n\t" 1077 "fmla v28.2d, v25.2d, v18.2d\n\t" 1078 "fmla v29.2d, v25.2d, v19.2d\n\t" 1079 "fmla v28.2d, v26.2d, v20.2d\n\t" 1080 "fmla v29.2d, v26.2d, v21.2d\n\t" 1081 "fmla v28.2d, v27.2d, v22.2d\n\t" 1082 "fmla v29.2d, v27.2d, v23.2d\n\t" 1083 1084 "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t" 1085 "st1 {v28.2d, v29.2d}, [x4], #32\n\t" 1086 1086 1087 1087 // Fourth row. 1088 "fmul .2d v30, v0, v16\n\t"1089 "fmul .2d v31, v0, v17\n\t"1090 "fmla .2d v30, v1, v18\n\t"1091 "fmla .2d v31, v1, v19\n\t"1092 "fmla .2d v30, v2, v20\n\t"1093 "fmla .2d v31, v2, v21\n\t"1094 "fmla .2d v30, v3, v22\n\t"1095 "fmla .2d v31, v3, v23\n\t"1096 1097 "st1 .2d {v30, v31}, [x4]\n\t"1088 "fmul v30.2d, v0.2d, v16.2d\n\t" 1089 "fmul v31.2d, v0.2d, v17.2d\n\t" 1090 "fmla v30.2d, v1.2d, v18.2d\n\t" 1091 "fmla v31.2d, v1.2d, v19.2d\n\t" 1092 "fmla v30.2d, v2.2d, v20.2d\n\t" 1093 "fmla v31.2d, v2.2d, v21.2d\n\t" 1094 "fmla v30.2d, v3.2d, v22.2d\n\t" 1095 "fmla v31.2d, v3.2d, v23.2d\n\t" 1096 1097 "st1 {v30.2d, v31.2d}, [x4]\n\t" 1098 1098 1099 1099 : [leftMatrix]"+r"(leftMatrix), [rightMatrix]"+r"(rightMatrix)
Note: See TracChangeset
for help on using the changeset viewer.