Changeset 166233 in webkit


Ignore:
Timestamp:
Mar 25, 2014 6:14:42 AM (10 years ago)
Author:
rgabor@webkit.org
Message:

[ARM64] GNU assembler fails in TransformationMatrix::multiply
https://bugs.webkit.org/show_bug.cgi?id=130454

Reviewed by Zoltan Herczeg.

Change the NEON intstructions to the proper style.

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::multiply):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r166231 r166233  
     12014-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
    1132014-03-20  Sergio Villar Senin  <svillar@igalia.com>
    214
  • trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp

    r165676 r166233  
    10411041    asm volatile (
    10421042        // First, load the leftMatrix completely in memory. The leftMatrix is in v16-v23.
    1043         "mov      x4, %[leftMatrix]\n\t"
    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"
    10461046
    10471047        // 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"
    10601060
    10611061        // 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"
    10731073
    10741074        // 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"
    10861086
    10871087        // 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"
    10981098
    10991099        : [leftMatrix]"+r"(leftMatrix), [rightMatrix]"+r"(rightMatrix)
Note: See TracChangeset for help on using the changeset viewer.