|
Packit |
030a23 |
/*
|
|
Packit |
030a23 |
* Copyright (c) 2012
|
|
Packit |
030a23 |
* MIPS Technologies, Inc., California.
|
|
Packit |
030a23 |
*
|
|
Packit |
030a23 |
* Redistribution and use in source and binary forms, with or without
|
|
Packit |
030a23 |
* modification, are permitted provided that the following conditions
|
|
Packit |
030a23 |
* are met:
|
|
Packit |
030a23 |
* 1. Redistributions of source code must retain the above copyright
|
|
Packit |
030a23 |
* notice, this list of conditions and the following disclaimer.
|
|
Packit |
030a23 |
* 2. Redistributions in binary form must reproduce the above copyright
|
|
Packit |
030a23 |
* notice, this list of conditions and the following disclaimer in the
|
|
Packit |
030a23 |
* documentation and/or other materials provided with the distribution.
|
|
Packit |
030a23 |
* 3. Neither the name of the MIPS Technologies, Inc., nor the names of its
|
|
Packit |
030a23 |
* contributors may be used to endorse or promote products derived from
|
|
Packit |
030a23 |
* this software without specific prior written permission.
|
|
Packit |
030a23 |
*
|
|
Packit |
030a23 |
* THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND
|
|
Packit |
030a23 |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Packit |
030a23 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
Packit |
030a23 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE
|
|
Packit |
030a23 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
Packit |
030a23 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
Packit |
030a23 |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
Packit |
030a23 |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
Packit |
030a23 |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
Packit |
030a23 |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
Packit |
030a23 |
* SUCH DAMAGE.
|
|
Packit |
030a23 |
*
|
|
Packit |
030a23 |
* Author: Nemanja Lukic (nemanja.lukic@rt-rk.com)
|
|
Packit |
030a23 |
*/
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
030a23 |
#include <config.h>
|
|
Packit |
030a23 |
#endif
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
#include "pixman-private.h"
|
|
Packit |
030a23 |
#include "pixman-mips-dspr2.h"
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, src_x888_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, src_8888_0565,
|
|
Packit |
030a23 |
uint32_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, src_0565_8888,
|
|
Packit |
030a23 |
uint16_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (DO_FAST_MEMCPY, src_0565_0565,
|
|
Packit |
030a23 |
uint16_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (DO_FAST_MEMCPY, src_8888_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (DO_FAST_MEMCPY, src_0888_0888,
|
|
Packit |
030a23 |
uint8_t, 3, uint8_t, 3)
|
|
Packit |
030a23 |
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, src_0888_8888_rev,
|
|
Packit |
030a23 |
uint8_t, 3, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, src_0888_0565_rev,
|
|
Packit |
030a23 |
uint8_t, 3, uint16_t, 1)
|
|
Packit |
030a23 |
#endif
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, src_pixbuf_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, src_rpixbuf_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, over_8888_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, over_8888_0565,
|
|
Packit |
030a23 |
uint32_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, add_8_8,
|
|
Packit |
030a23 |
uint8_t, 1, uint8_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, add_8888_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, out_reverse_8_0565,
|
|
Packit |
030a23 |
uint8_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_DST (0, out_reverse_8_8888,
|
|
Packit |
030a23 |
uint8_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (0, src_n_8_8888,
|
|
Packit |
030a23 |
uint8_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (0, src_n_8_8,
|
|
Packit |
030a23 |
uint8_t, 1, uint8_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, over_n_8888_8888_ca,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, over_n_8888_0565_ca,
|
|
Packit |
030a23 |
uint32_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, over_n_8_8,
|
|
Packit |
030a23 |
uint8_t, 1, uint8_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, over_n_8_8888,
|
|
Packit |
030a23 |
uint8_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, over_n_8_0565,
|
|
Packit |
030a23 |
uint8_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, add_n_8_8,
|
|
Packit |
030a23 |
uint8_t, 1, uint8_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, add_n_8_8888,
|
|
Packit |
030a23 |
uint8_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, over_8888_n_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, over_8888_n_0565,
|
|
Packit |
030a23 |
uint32_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, over_0565_n_0565,
|
|
Packit |
030a23 |
uint16_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, add_8888_n_8888,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_DST (SKIP_ZERO_SRC, over_n_0565,
|
|
Packit |
030a23 |
uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_DST (SKIP_ZERO_SRC, over_n_8888,
|
|
Packit |
030a23 |
uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_DST (SKIP_ZERO_SRC, over_reverse_n_8888,
|
|
Packit |
030a23 |
uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_N_DST (0, in_n_8,
|
|
Packit |
030a23 |
uint8_t, 1)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (add_8_8_8, uint8_t, 1,
|
|
Packit |
030a23 |
uint8_t, 1, uint8_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (add_8888_8_8888, uint32_t, 1,
|
|
Packit |
030a23 |
uint8_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (add_8888_8888_8888, uint32_t, 1,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (add_0565_8_0565, uint16_t, 1,
|
|
Packit |
030a23 |
uint8_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (over_8888_8_8888, uint32_t, 1,
|
|
Packit |
030a23 |
uint8_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (over_8888_8_0565, uint32_t, 1,
|
|
Packit |
030a23 |
uint8_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (over_0565_8_0565, uint16_t, 1,
|
|
Packit |
030a23 |
uint8_t, 1, uint16_t, 1)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_FAST_PATH_SRC_MASK_DST (over_8888_8888_8888, uint32_t, 1,
|
|
Packit |
030a23 |
uint32_t, 1, uint32_t, 1)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_NEAREST_SRC_DST (8888_8888, OVER,
|
|
Packit |
030a23 |
uint32_t, uint32_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_NEAREST_SRC_DST (8888_0565, OVER,
|
|
Packit |
030a23 |
uint32_t, uint16_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_NEAREST_SRC_DST (0565_8888, SRC,
|
|
Packit |
030a23 |
uint16_t, uint32_t)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST (0, 8888_8888, SRC,
|
|
Packit |
030a23 |
uint32_t, uint32_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST (0, 8888_0565, SRC,
|
|
Packit |
030a23 |
uint32_t, uint16_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST (0, 0565_8888, SRC,
|
|
Packit |
030a23 |
uint16_t, uint32_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST (0, 0565_0565, SRC,
|
|
Packit |
030a23 |
uint16_t, uint16_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST (SKIP_ZERO_SRC, 8888_8888, OVER,
|
|
Packit |
030a23 |
uint32_t, uint32_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_DST (SKIP_ZERO_SRC, 8888_8888, ADD,
|
|
Packit |
030a23 |
uint32_t, uint32_t)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_NEAREST_SRC_A8_DST (SKIP_ZERO_SRC, 8888_8_0565,
|
|
Packit |
030a23 |
OVER, uint32_t, uint16_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_NEAREST_SRC_A8_DST (SKIP_ZERO_SRC, 0565_8_0565,
|
|
Packit |
030a23 |
OVER, uint16_t, uint16_t)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_A8_DST (0, 8888_8_8888, SRC,
|
|
Packit |
030a23 |
uint32_t, uint32_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_A8_DST (0, 8888_8_0565, SRC,
|
|
Packit |
030a23 |
uint32_t, uint16_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_A8_DST (0, 0565_8_x888, SRC,
|
|
Packit |
030a23 |
uint16_t, uint32_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_A8_DST (0, 0565_8_0565, SRC,
|
|
Packit |
030a23 |
uint16_t, uint16_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_A8_DST (SKIP_ZERO_SRC, 8888_8_8888, OVER,
|
|
Packit |
030a23 |
uint32_t, uint32_t)
|
|
Packit |
030a23 |
PIXMAN_MIPS_BIND_SCALED_BILINEAR_SRC_A8_DST (SKIP_ZERO_SRC, 8888_8_8888, ADD,
|
|
Packit |
030a23 |
uint32_t, uint32_t)
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
static pixman_bool_t
|
|
Packit |
030a23 |
mips_dspr2_fill (pixman_implementation_t *imp,
|
|
Packit |
030a23 |
uint32_t * bits,
|
|
Packit |
030a23 |
int stride,
|
|
Packit |
030a23 |
int bpp,
|
|
Packit |
030a23 |
int x,
|
|
Packit |
030a23 |
int y,
|
|
Packit |
030a23 |
int width,
|
|
Packit |
030a23 |
int height,
|
|
Packit |
030a23 |
uint32_t _xor)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
uint8_t *byte_line;
|
|
Packit |
030a23 |
uint32_t byte_width;
|
|
Packit |
030a23 |
switch (bpp)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
case 16:
|
|
Packit |
030a23 |
stride = stride * (int) sizeof (uint32_t) / 2;
|
|
Packit |
030a23 |
byte_line = (uint8_t *)(((uint16_t *)bits) + stride * y + x);
|
|
Packit |
030a23 |
byte_width = width * 2;
|
|
Packit |
030a23 |
stride *= 2;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
while (height--)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
uint8_t *dst = byte_line;
|
|
Packit |
030a23 |
byte_line += stride;
|
|
Packit |
030a23 |
pixman_fill_buff16_mips (dst, byte_width, _xor & 0xffff);
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
return TRUE;
|
|
Packit |
030a23 |
case 32:
|
|
Packit |
030a23 |
stride = stride * (int) sizeof (uint32_t) / 4;
|
|
Packit |
030a23 |
byte_line = (uint8_t *)(((uint32_t *)bits) + stride * y + x);
|
|
Packit |
030a23 |
byte_width = width * 4;
|
|
Packit |
030a23 |
stride *= 4;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
while (height--)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
uint8_t *dst = byte_line;
|
|
Packit |
030a23 |
byte_line += stride;
|
|
Packit |
030a23 |
pixman_fill_buff32_mips (dst, byte_width, _xor);
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
return TRUE;
|
|
Packit |
030a23 |
default:
|
|
Packit |
030a23 |
return FALSE;
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
static pixman_bool_t
|
|
Packit |
030a23 |
mips_dspr2_blt (pixman_implementation_t *imp,
|
|
Packit |
030a23 |
uint32_t * src_bits,
|
|
Packit |
030a23 |
uint32_t * dst_bits,
|
|
Packit |
030a23 |
int src_stride,
|
|
Packit |
030a23 |
int dst_stride,
|
|
Packit |
030a23 |
int src_bpp,
|
|
Packit |
030a23 |
int dst_bpp,
|
|
Packit |
030a23 |
int src_x,
|
|
Packit |
030a23 |
int src_y,
|
|
Packit |
030a23 |
int dest_x,
|
|
Packit |
030a23 |
int dest_y,
|
|
Packit |
030a23 |
int width,
|
|
Packit |
030a23 |
int height)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
if (src_bpp != dst_bpp)
|
|
Packit |
030a23 |
return FALSE;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
uint8_t *src_bytes;
|
|
Packit |
030a23 |
uint8_t *dst_bytes;
|
|
Packit |
030a23 |
uint32_t byte_width;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
switch (src_bpp)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
case 16:
|
|
Packit |
030a23 |
src_stride = src_stride * (int) sizeof (uint32_t) / 2;
|
|
Packit |
030a23 |
dst_stride = dst_stride * (int) sizeof (uint32_t) / 2;
|
|
Packit |
030a23 |
src_bytes =(uint8_t *)(((uint16_t *)src_bits)
|
|
Packit |
030a23 |
+ src_stride * (src_y) + (src_x));
|
|
Packit |
030a23 |
dst_bytes = (uint8_t *)(((uint16_t *)dst_bits)
|
|
Packit |
030a23 |
+ dst_stride * (dest_y) + (dest_x));
|
|
Packit |
030a23 |
byte_width = width * 2;
|
|
Packit |
030a23 |
src_stride *= 2;
|
|
Packit |
030a23 |
dst_stride *= 2;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
while (height--)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
uint8_t *src = src_bytes;
|
|
Packit |
030a23 |
uint8_t *dst = dst_bytes;
|
|
Packit |
030a23 |
src_bytes += src_stride;
|
|
Packit |
030a23 |
dst_bytes += dst_stride;
|
|
Packit |
030a23 |
pixman_mips_fast_memcpy (dst, src, byte_width);
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
return TRUE;
|
|
Packit |
030a23 |
case 32:
|
|
Packit |
030a23 |
src_stride = src_stride * (int) sizeof (uint32_t) / 4;
|
|
Packit |
030a23 |
dst_stride = dst_stride * (int) sizeof (uint32_t) / 4;
|
|
Packit |
030a23 |
src_bytes = (uint8_t *)(((uint32_t *)src_bits)
|
|
Packit |
030a23 |
+ src_stride * (src_y) + (src_x));
|
|
Packit |
030a23 |
dst_bytes = (uint8_t *)(((uint32_t *)dst_bits)
|
|
Packit |
030a23 |
+ dst_stride * (dest_y) + (dest_x));
|
|
Packit |
030a23 |
byte_width = width * 4;
|
|
Packit |
030a23 |
src_stride *= 4;
|
|
Packit |
030a23 |
dst_stride *= 4;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
while (height--)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
uint8_t *src = src_bytes;
|
|
Packit |
030a23 |
uint8_t *dst = dst_bytes;
|
|
Packit |
030a23 |
src_bytes += src_stride;
|
|
Packit |
030a23 |
dst_bytes += dst_stride;
|
|
Packit |
030a23 |
pixman_mips_fast_memcpy (dst, src, byte_width);
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
return TRUE;
|
|
Packit |
030a23 |
default:
|
|
Packit |
030a23 |
return FALSE;
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
static const pixman_fast_path_t mips_dspr2_fast_paths[] =
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, r5g6b5, null, r5g6b5, mips_composite_src_0565_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, b5g6r5, null, b5g6r5, mips_composite_src_0565_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, a8r8g8b8, null, r5g6b5, mips_composite_src_8888_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, x8r8g8b8, null, r5g6b5, mips_composite_src_8888_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, b5g6r5, mips_composite_src_8888_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, b5g6r5, mips_composite_src_8888_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, r5g6b5, null, a8r8g8b8, mips_composite_src_0565_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, r5g6b5, null, x8r8g8b8, mips_composite_src_0565_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, b5g6r5, null, a8b8g8r8, mips_composite_src_0565_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, b5g6r5, null, x8b8g8r8, mips_composite_src_0565_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, a8r8g8b8, null, x8r8g8b8, mips_composite_src_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, x8r8g8b8, null, x8r8g8b8, mips_composite_src_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, x8b8g8r8, mips_composite_src_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, x8b8g8r8, mips_composite_src_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, a8r8g8b8, null, a8r8g8b8, mips_composite_src_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, a8b8g8r8, mips_composite_src_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, x8r8g8b8, null, a8r8g8b8, mips_composite_src_x888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, a8b8g8r8, mips_composite_src_x888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, r8g8b8, null, r8g8b8, mips_composite_src_0888_0888),
|
|
Packit |
030a23 |
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, b8g8r8, null, x8r8g8b8, mips_composite_src_0888_8888_rev),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, b8g8r8, null, r5g6b5, mips_composite_src_0888_0565_rev),
|
|
Packit |
030a23 |
#endif
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, pixbuf, pixbuf, a8r8g8b8, mips_composite_src_pixbuf_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, pixbuf, pixbuf, a8b8g8r8, mips_composite_src_rpixbuf_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, rpixbuf, rpixbuf, a8r8g8b8, mips_composite_src_rpixbuf_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, rpixbuf, rpixbuf, a8b8g8r8, mips_composite_src_pixbuf_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, solid, a8, a8r8g8b8, mips_composite_src_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, solid, a8, x8r8g8b8, mips_composite_src_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, solid, a8, a8b8g8r8, mips_composite_src_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, solid, a8, x8b8g8r8, mips_composite_src_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (SRC, solid, a8, a8, mips_composite_src_n_8_8),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, a8r8g8b8, mips_composite_over_n_8888_8888_ca),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, x8r8g8b8, mips_composite_over_n_8888_8888_ca),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, a8b8g8r8, mips_composite_over_n_8888_8888_ca),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, x8b8g8r8, mips_composite_over_n_8888_8888_ca),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8r8g8b8, r5g6b5, mips_composite_over_n_8888_0565_ca),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH_CA (OVER, solid, a8b8g8r8, b5g6r5, mips_composite_over_n_8888_0565_ca),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8, mips_composite_over_n_8_8),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8r8g8b8, mips_composite_over_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, a8, x8r8g8b8, mips_composite_over_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, a8, a8b8g8r8, mips_composite_over_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, a8, x8b8g8r8, mips_composite_over_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, a8, r5g6b5, mips_composite_over_n_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, a8, b5g6r5, mips_composite_over_n_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, null, r5g6b5, mips_composite_over_n_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, null, a8r8g8b8, mips_composite_over_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, solid, null, x8r8g8b8, mips_composite_over_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, solid, a8r8g8b8, mips_composite_over_8888_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, solid, x8r8g8b8, mips_composite_over_8888_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, solid, r5g6b5, mips_composite_over_8888_n_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, solid, b5g6r5, mips_composite_over_8888_n_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, r5g6b5, solid, r5g6b5, mips_composite_over_0565_n_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, b5g6r5, solid, b5g6r5, mips_composite_over_0565_n_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, a8, a8r8g8b8, mips_composite_over_8888_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, a8, x8r8g8b8, mips_composite_over_8888_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, a8, a8b8g8r8, mips_composite_over_8888_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, a8, x8b8g8r8, mips_composite_over_8888_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, a8, r5g6b5, mips_composite_over_8888_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, a8, b5g6r5, mips_composite_over_8888_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, r5g6b5, a8, r5g6b5, mips_composite_over_0565_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, b5g6r5, a8, b5g6r5, mips_composite_over_0565_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, a8r8g8b8, mips_composite_over_8888_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, a8r8g8b8, mips_composite_over_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, x8r8g8b8, mips_composite_over_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, a8b8g8r8, mips_composite_over_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, x8b8g8r8, mips_composite_over_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, r5g6b5, mips_composite_over_8888_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, b5g6r5, mips_composite_over_8888_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, solid, a8, a8, mips_composite_add_n_8_8),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, solid, a8, a8r8g8b8, mips_composite_add_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, solid, a8, a8b8g8r8, mips_composite_add_n_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8, a8, a8, mips_composite_add_8_8_8),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, r5g6b5, a8, r5g6b5, mips_composite_add_0565_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, b5g6r5, a8, b5g6r5, mips_composite_add_0565_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, a8, a8r8g8b8, mips_composite_add_8888_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8b8g8r8, a8, a8b8g8r8, mips_composite_add_8888_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, a8r8g8b8, a8r8g8b8, mips_composite_add_8888_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, solid, a8r8g8b8, mips_composite_add_8888_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8b8g8r8, solid, a8b8g8r8, mips_composite_add_8888_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8, null, a8, mips_composite_add_8_8),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, null, a8r8g8b8, mips_composite_add_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (ADD, a8b8g8r8, null, a8b8g8r8, mips_composite_add_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OUT_REVERSE, a8, null, r5g6b5, mips_composite_out_reverse_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OUT_REVERSE, a8, null, b5g6r5, mips_composite_out_reverse_8_0565),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OUT_REVERSE, a8, null, a8r8g8b8, mips_composite_out_reverse_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OUT_REVERSE, a8, null, a8b8g8r8, mips_composite_out_reverse_8_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER_REVERSE, solid, null, a8r8g8b8, mips_composite_over_reverse_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (OVER_REVERSE, solid, null, a8b8g8r8, mips_composite_over_reverse_n_8888),
|
|
Packit |
030a23 |
PIXMAN_STD_FAST_PATH (IN, solid, null, a8, mips_composite_in_n_8),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, mips_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, mips_8888_8888),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (OVER, a8r8g8b8, r5g6b5, mips_8888_0565),
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (OVER, a8b8g8r8, b5g6r5, mips_8888_0565),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (SRC, b5g6r5, x8b8g8r8, mips_0565_8888),
|
|
Packit |
030a23 |
PIXMAN_MIPS_SIMPLE_NEAREST_FAST_PATH (SRC, r5g6b5, x8r8g8b8, mips_0565_8888),
|
|
Packit |
030a23 |
/* Note: NONE repeat is not supported yet */
|
|
Packit |
030a23 |
SIMPLE_NEAREST_FAST_PATH_COVER (SRC, r5g6b5, a8r8g8b8, mips_0565_8888),
|
|
Packit |
030a23 |
SIMPLE_NEAREST_FAST_PATH_COVER (SRC, b5g6r5, a8b8g8r8, mips_0565_8888),
|
|
Packit |
030a23 |
SIMPLE_NEAREST_FAST_PATH_PAD (SRC, r5g6b5, a8r8g8b8, mips_0565_8888),
|
|
Packit |
030a23 |
SIMPLE_NEAREST_FAST_PATH_PAD (SRC, b5g6r5, a8b8g8r8, mips_0565_8888),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8r8g8b8, r5g6b5, mips_8888_8_0565),
|
|
Packit |
030a23 |
SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, a8b8g8r8, b5g6r5, mips_8888_8_0565),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, r5g6b5, r5g6b5, mips_0565_8_0565),
|
|
Packit |
030a23 |
SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, b5g6r5, b5g6r5, mips_0565_8_0565),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, r5g6b5, mips_8888_0565),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (SRC, x8r8g8b8, r5g6b5, mips_8888_0565),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (SRC, r5g6b5, x8r8g8b8, mips_0565_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (SRC, r5g6b5, r5g6b5, mips_0565_0565),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (ADD, a8r8g8b8, a8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_FAST_PATH (ADD, a8r8g8b8, x8r8g8b8, mips_8888_8888),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, mips_8888_8_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, mips_8888_8_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, mips_8888_8_8888),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (SRC, a8r8g8b8, r5g6b5, mips_8888_8_0565),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (SRC, x8r8g8b8, r5g6b5, mips_8888_8_0565),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (SRC, r5g6b5, x8r8g8b8, mips_0565_8_x888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (SRC, r5g6b5, r5g6b5, mips_0565_8_0565),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, mips_8888_8_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, mips_8888_8_8888),
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (ADD, a8r8g8b8, a8r8g8b8, mips_8888_8_8888),
|
|
Packit |
030a23 |
SIMPLE_BILINEAR_A8_MASK_FAST_PATH (ADD, a8r8g8b8, x8r8g8b8, mips_8888_8_8888),
|
|
Packit |
030a23 |
{ PIXMAN_OP_NONE },
|
|
Packit |
030a23 |
};
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
static void
|
|
Packit |
030a23 |
mips_dspr2_combine_over_u (pixman_implementation_t *imp,
|
|
Packit |
030a23 |
pixman_op_t op,
|
|
Packit |
030a23 |
uint32_t * dest,
|
|
Packit |
030a23 |
const uint32_t * src,
|
|
Packit |
030a23 |
const uint32_t * mask,
|
|
Packit |
030a23 |
int width)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
if (mask)
|
|
Packit |
030a23 |
pixman_composite_over_8888_8888_8888_asm_mips (
|
|
Packit |
030a23 |
dest, (uint32_t *)src, (uint32_t *)mask, width);
|
|
Packit |
030a23 |
else
|
|
Packit |
030a23 |
pixman_composite_over_8888_8888_asm_mips (
|
|
Packit |
030a23 |
dest, (uint32_t *)src, width);
|
|
Packit |
030a23 |
}
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
pixman_implementation_t *
|
|
Packit |
030a23 |
_pixman_implementation_create_mips_dspr2 (pixman_implementation_t *fallback)
|
|
Packit |
030a23 |
{
|
|
Packit |
030a23 |
pixman_implementation_t *imp =
|
|
Packit |
030a23 |
_pixman_implementation_create (fallback, mips_dspr2_fast_paths);
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
imp->combine_32[PIXMAN_OP_OVER] = mips_dspr2_combine_over_u;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
imp->blt = mips_dspr2_blt;
|
|
Packit |
030a23 |
imp->fill = mips_dspr2_fill;
|
|
Packit |
030a23 |
|
|
Packit |
030a23 |
return imp;
|
|
Packit |
030a23 |
}
|