Move QPainterPathPrivate to the private header files.
[profile/ivi/qtbase.git] / src / gui / painting / qdrawhelper_mips_dspr2_asm.S
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 MIPS Technologies, www.mips.com, author Damir Tatalovic <dtatalovic@mips.com>
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16 **
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
20 **
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
28 **
29 ** Other Usage
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 #include "qt_mips_asm_dsp.h"
43
44 LEAF_MIPS_DSPR2(INTERPOLATE_PIXEL_255_asm_mips_dspr2)
45 /*
46  * a0 - uint x (First value to multiply)
47  * a1 - uint a (Multiplicator byte for first value)
48  * a2 - uint y (Second value to multiply)
49  * a3 - uint b (Multiplicator byte for second value)
50  */
51
52     .set reorder
53     replv.ph          a1, a1
54     replv.ph          a3, a3
55     li                t8, 8388736
56     muleu_s.ph.qbl    t0, a0, a1
57     muleu_s.ph.qbl    t1, a2, a3
58     muleu_s.ph.qbr    t2, a0, a1
59     muleu_s.ph.qbr    t3, a2, a3
60     addu.ph           t4, t0, t1
61     addu.ph           t5, t2, t3
62     preceu.ph.qbla    t0, t4
63     addu              t1, t0, t8
64     addu              t1, t4, t1
65     preceu.ph.qbla    t6, t5
66     addu              t7, t6, t8
67     addu              t7, t5, t7
68     precrq.qb.ph      t2, t1, t7
69     move              v0, t2
70     j                 ra
71
72 END(INTERPOLATE_PIXEL_255_asm_mips_dspr2)
73
74 LEAF_MIPS_DSPR2(BYTE_MUL_asm_mips_dspr2)
75 /*
76  * a0 - uint x (Value to multiply)
77  * a1 - uint a (Multiplicator byte)
78  */
79
80     .set reorder
81     replv.ph          a1, a1              /* a1 = 0x00a00a */
82     li                t4, 8388736         /* t4 = 0x800080 */
83     muleu_s.ph.qbl    t0, a0, a1
84     muleu_s.ph.qbr    t2, a0, a1
85     preceu.ph.qbla    t1, t0
86     addu              t0, t0, t1
87     addu              t0, t0, t4
88     preceu.ph.qbla    t3, t2
89     addu              t2, t2, t3
90     addu              t2, t2, t4
91     precrq.qb.ph      t4, t0, t2
92     move              v0, t4
93     j                 ra
94
95 END(BYTE_MUL_asm_mips_dspr2)