| Index: src/opts/SkBitmapProcState_opts_mips_dsp.cpp
|
| diff --git a/src/opts/SkBitmapProcState_opts_mips_dsp.cpp b/src/opts/SkBitmapProcState_opts_mips_dsp.cpp
|
| index dac4e20381fb059164e8f88f9435fdc47ed99b70..a80e955aeb2cac00549bec8307e6d3ba764c1685 100644
|
| --- a/src/opts/SkBitmapProcState_opts_mips_dsp.cpp
|
| +++ b/src/opts/SkBitmapProcState_opts_mips_dsp.cpp
|
| @@ -12,138 +12,6 @@
|
| #include "SkPaint.h"
|
| #include "SkUtils.h"
|
|
|
| -static void SI8_D16_nofilter_DX_mips_dsp(const SkBitmapProcState& s,
|
| - const uint32_t* SK_RESTRICT xy,
|
| - int count, uint16_t* SK_RESTRICT colors) {
|
| - SkASSERT(count > 0 && colors != nullptr);
|
| - SkASSERT(s.fInvType <= (SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask));
|
| - SkASSERT(kNone_SkFilterQuality == s.fFilterLevel);
|
| - const uint16_t* SK_RESTRICT table = s.fPixmap.ctable()->read16BitCache();
|
| - const uint8_t* SK_RESTRICT srcAddr = (const uint8_t*)s.fPixmap.addr();
|
| - SkASSERT((unsigned)xy[0] < (unsigned)s.fPixmap.height());
|
| - srcAddr = (const uint8_t*)((const char*)srcAddr + xy[0] * s.fPixmap.rowBytes());
|
| - uint8_t src;
|
| -
|
| - if (1 == s.fPixmap.width()) {
|
| - src = srcAddr[0];
|
| - uint16_t dstValue = table[src];
|
| - sk_memset16(colors, dstValue, count);
|
| - } else {
|
| - int count8;
|
| - const uint16_t* SK_RESTRICT xx = (const uint16_t*)(xy + 1);
|
| -
|
| - __asm__ volatile (
|
| - ".set push \n\t"
|
| - ".set noreorder \n\t"
|
| - ".set noat \n\t"
|
| - "sra %[count8], %[count], 3 \n\t"
|
| - "beqz %[count8], 3f \n\t"
|
| - " addiu %[count8], %[count8], -1 \n\t"
|
| - "1: \n\t"
|
| - "beqz %[count8], 2f \n\t"
|
| - " addiu %[count8], %[count8], -1 \n\t"
|
| - "pref 0, 16(%[xx]) \n\t"
|
| - "lhu $t0, 0(%[xx]) \n\t"
|
| - "lhu $t1, 2(%[xx]) \n\t"
|
| - "lhu $t2, 4(%[xx]) \n\t"
|
| - "lhu $t3, 6(%[xx]) \n\t"
|
| - "lhu $t4, 8(%[xx]) \n\t"
|
| - "lhu $t5, 10(%[xx]) \n\t"
|
| - "lhu $t6, 12(%[xx]) \n\t"
|
| - "lhu $t7, 14(%[xx]) \n\t"
|
| - "pref 0, 8(%[srcAddr]) \n\t"
|
| - "lbux $t0, $t0(%[srcAddr]) \n\t"
|
| - "lbux $t1, $t1(%[srcAddr]) \n\t"
|
| - "lbux $t2, $t2(%[srcAddr]) \n\t"
|
| - "lbux $t3, $t3(%[srcAddr]) \n\t"
|
| - "lbux $t4, $t4(%[srcAddr]) \n\t"
|
| - "lbux $t5, $t5(%[srcAddr]) \n\t"
|
| - "lbux $t6, $t6(%[srcAddr]) \n\t"
|
| - "lbux $t7, $t7(%[srcAddr]) \n\t"
|
| - "addu $t0, $t0, $t0 \n\t"
|
| - "addu $t1, $t1, $t1 \n\t"
|
| - "addu $t2, $t2, $t2 \n\t"
|
| - "addu $t3, $t3, $t3 \n\t"
|
| - "addu $t4, $t4, $t4 \n\t"
|
| - "addu $t5, $t5, $t5 \n\t"
|
| - "addu $t6, $t6, $t6 \n\t"
|
| - "addu $t7, $t7, $t7 \n\t"
|
| - "pref 0, 16(%[table]) \n\t"
|
| - "lhx $t0, $t0(%[table]) \n\t"
|
| - "lhx $t1, $t1(%[table]) \n\t"
|
| - "lhx $t2, $t2(%[table]) \n\t"
|
| - "lhx $t3, $t3(%[table]) \n\t"
|
| - "lhx $t4, $t4(%[table]) \n\t"
|
| - "lhx $t5, $t5(%[table]) \n\t"
|
| - "lhx $t6, $t6(%[table]) \n\t"
|
| - "lhx $t7, $t7(%[table]) \n\t"
|
| - "sh $t0, 0(%[colors]) \n\t"
|
| - "sh $t1, 2(%[colors]) \n\t"
|
| - "sh $t2, 4(%[colors]) \n\t"
|
| - "sh $t3, 6(%[colors]) \n\t"
|
| - "sh $t4, 8(%[colors]) \n\t"
|
| - "sh $t5, 10(%[colors]) \n\t"
|
| - "sh $t6, 12(%[colors]) \n\t"
|
| - "sh $t7, 14(%[colors]) \n\t"
|
| - "addiu %[xx], %[xx], 16 \n\t"
|
| - "bgtz %[count8], 1b \n\t"
|
| - " addiu %[colors], %[colors], 16 \n\t"
|
| - "2: \n\t"
|
| - "lhu $t0, 0(%[xx]) \n\t"
|
| - "lhu $t1, 2(%[xx]) \n\t"
|
| - "lhu $t2, 4(%[xx]) \n\t"
|
| - "lhu $t3, 6(%[xx]) \n\t"
|
| - "lhu $t4, 8(%[xx]) \n\t"
|
| - "lhu $t5, 10(%[xx]) \n\t"
|
| - "lhu $t6, 12(%[xx]) \n\t"
|
| - "lhu $t7, 14(%[xx]) \n\t"
|
| - "lbux $t0, $t0(%[srcAddr]) \n\t"
|
| - "lbux $t1, $t1(%[srcAddr]) \n\t"
|
| - "lbux $t2, $t2(%[srcAddr]) \n\t"
|
| - "lbux $t3, $t3(%[srcAddr]) \n\t"
|
| - "lbux $t4, $t4(%[srcAddr]) \n\t"
|
| - "lbux $t5, $t5(%[srcAddr]) \n\t"
|
| - "lbux $t6, $t6(%[srcAddr]) \n\t"
|
| - "lbux $t7, $t7(%[srcAddr]) \n\t"
|
| - "addu $t0, $t0, $t0 \n\t"
|
| - "addu $t1, $t1, $t1 \n\t"
|
| - "addu $t2, $t2, $t2 \n\t"
|
| - "addu $t3, $t3, $t3 \n\t"
|
| - "addu $t4, $t4, $t4 \n\t"
|
| - "addu $t5, $t5, $t5 \n\t"
|
| - "addu $t6, $t6, $t6 \n\t"
|
| - "addu $t7, $t7, $t7 \n\t"
|
| - "lhx $t0, $t0(%[table]) \n\t"
|
| - "lhx $t1, $t1(%[table]) \n\t"
|
| - "lhx $t2, $t2(%[table]) \n\t"
|
| - "lhx $t3, $t3(%[table]) \n\t"
|
| - "lhx $t4, $t4(%[table]) \n\t"
|
| - "lhx $t5, $t5(%[table]) \n\t"
|
| - "lhx $t6, $t6(%[table]) \n\t"
|
| - "lhx $t7, $t7(%[table]) \n\t"
|
| - "sh $t0, 0(%[colors]) \n\t"
|
| - "sh $t1, 2(%[colors]) \n\t"
|
| - "sh $t2, 4(%[colors]) \n\t"
|
| - "sh $t3, 6(%[colors]) \n\t"
|
| - "sh $t4, 8(%[colors]) \n\t"
|
| - "sh $t5, 10(%[colors]) \n\t"
|
| - "sh $t6, 12(%[colors]) \n\t"
|
| - "sh $t7, 14(%[colors]) \n\t"
|
| - "addiu %[xx], %[xx], 16 \n\t"
|
| - "addiu %[colors], %[colors], 16 \n\t"
|
| - "3: \n\t"
|
| - ".set pop \n\t"
|
| - : [xx]"+r"(xx), [count8]"=&r"(count8), [colors]"+r"(colors)
|
| - : [table]"r"(table), [srcAddr]"r"(srcAddr), [count]"r"(count)
|
| - : "memory","t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"
|
| - );
|
| -
|
| - for (int i = (count & 7); i > 0; --i) {
|
| - src = srcAddr[*xx++]; *colors++ = table[src];
|
| - }
|
| - }
|
| -}
|
| -
|
| static void SI8_opaque_D32_nofilter_DX_mips_dsp(const SkBitmapProcState& s,
|
| const uint32_t* SK_RESTRICT xy,
|
| int count, SkPMColor* SK_RESTRICT colors) {
|
| @@ -379,8 +247,6 @@ void SkBitmapProcState::platformProcs() {
|
| switch (fPixmap.colorType()) {
|
| case kIndex_8_SkColorType:
|
| if (justDx && kNone_SkFilterQuality == fFilterLevel) {
|
| - fSampleProc16 = SI8_D16_nofilter_DX_mips_dsp;
|
| - fShaderProc16 = nullptr;
|
| if (isOpaque) {
|
| fSampleProc32 = SI8_opaque_D32_nofilter_DX_mips_dsp;
|
| fShaderProc32 = nullptr;
|
|
|