aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-06-09 20:00:51 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-10 00:23:17 +0000
commitf449ded72acf90c1d68a9492bc627a16e709591d (patch)
tree9784b0cab0f88970583ee40a3ce1a1785a07368e /src
parent63544a42f69620d503acc75eb3b645686cf2eb7f (diff)
attempt to fix compiler error
../../third_party/skia/src/core/SkBlendMode.cpp: In function 'SkPM4f SkBlendMode_Apply(SkBlendMode, SkPM4f, SkPM4f)': ../../third_party/skia/src/core/SkBlendMode.cpp:133:1: error: unrecognizable insn: } ^ (insn 48 47 49 7 (set (reg:V4SF 112 [ D.89567 ]) (unspec:V4SF [ (mem/c:V4SF (reg/f:SI 104 virtual-incoming-args) [0 MEM[(const __builtin_neon_sf[4] *)&src]+0 S16 A32]) ] UNSPEC_VLD1)) /b/c/b/android/src/third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/include/arm_neon.h:8693 -1 (nil)) ../../third_party/skia/src/core/SkBlendMode.cpp:133:1: internal compiler error: in extract_insn, at recog.c:2202 Bug: skia: Change-Id: I85e98e858d00b8b505c6676e9a9dc762f0ccb25c Reviewed-on: https://skia-review.googlesource.com/19392 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkBlendMode.cpp14
-rw-r--r--src/core/SkBlendModePriv.h2
2 files changed, 10 insertions, 6 deletions
diff --git a/src/core/SkBlendMode.cpp b/src/core/SkBlendMode.cpp
index c3a904d5f2..42340dcd65 100644
--- a/src/core/SkBlendMode.cpp
+++ b/src/core/SkBlendMode.cpp
@@ -107,7 +107,7 @@ void SkBlendMode_AppendClampIfNeeded(SkBlendMode mode, SkRasterPipeline* p) {
}
}
-SkPM4f SkBlendMode_Apply(SkBlendMode mode, SkPM4f src, SkPM4f dst) {
+SkPM4f SkBlendMode_Apply(SkBlendMode mode, const SkPM4f& src, const SkPM4f& dst) {
// special-case simple/common modes...
switch (mode) {
case SkBlendMode::kClear: return {{ 0, 0, 0, 0 }};
@@ -120,14 +120,18 @@ SkPM4f SkBlendMode_Apply(SkBlendMode mode, SkPM4f src, SkPM4f dst) {
}
SkRasterPipeline_<256> p;
- SkPM4f *src_ctx = &src,
- *dst_ctx = &dst;
+ SkPM4f src_storage = src,
+ dst_storage = dst,
+ result_storage,
+ *src_ctx = &src_storage,
+ *dst_ctx = &dst_storage,
+ *res_ctx = &result_storage;
p.append(SkRasterPipeline::load_f32, &dst_ctx);
p.append(SkRasterPipeline::move_src_dst);
p.append(SkRasterPipeline::load_f32, &src_ctx);
SkBlendMode_AppendStages(mode, &p);
- p.append(SkRasterPipeline::store_f32, &dst_ctx);
+ p.append(SkRasterPipeline::store_f32, &res_ctx);
p.run(0, 0, 1);
- return dst;
+ return result_storage;
}
diff --git a/src/core/SkBlendModePriv.h b/src/core/SkBlendModePriv.h
index 89d952d767..2767241a01 100644
--- a/src/core/SkBlendModePriv.h
+++ b/src/core/SkBlendModePriv.h
@@ -46,6 +46,6 @@ enum class SkBlendModeCoeff {
bool SkBlendMode_AsCoeff(SkBlendMode mode, SkBlendModeCoeff* src, SkBlendModeCoeff* dst);
-SkPM4f SkBlendMode_Apply(SkBlendMode, SkPM4f src, SkPM4f dst);
+SkPM4f SkBlendMode_Apply(SkBlendMode, const SkPM4f& src, const SkPM4f& dst);
#endif