source: trunk/src/gui/painting/qdrawhelper_armv6_rvct.s@ 743

Last change on this file since 743 was 651, checked in by Dmitry A. Kuminov, 16 years ago

trunk: Merged in qt 4.6.2 sources.

  • Property svn:eol-style set to native
File size: 4.9 KB
Line 
1;****************************************************************************
2;**
3;** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4;** All rights reserved.
5;** Contact: Nokia Corporation (qt-info@nokia.com)
6;**
7;** This file is part of the QtGui module of the Qt Toolkit.
8;**
9;** $QT_BEGIN_LICENSE:LGPL$
10;** Commercial Usage
11;** Licensees holding valid Qt Commercial licenses may use this file in
12;** accordance with the Qt Commercial License Agreement provided with the
13;** Software or, alternatively, in accordance with the terms contained in
14;** a written agreement between you and Nokia.
15;**
16;** GNU Lesser General Public License Usage
17;** Alternatively, this file may be used under the terms of the GNU Lesser
18;** General Public License version 2.1 as published by the Free Software
19;** Foundation and appearing in the file LICENSE.LGPL included in the
20;** packaging of this file. Please review the following information to
21;** ensure the GNU Lesser General Public License version 2.1 requirements
22;** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23;**
24;** In addition, as a special exception, Nokia gives you certain additional
25;** rights. These rights are described in the Nokia Qt LGPL Exception
26;** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27;**
28;** GNU General Public License Usage
29;** Alternatively, this file may be used under the terms of the GNU
30;** General Public License version 3.0 as published by the Free Software
31;** Foundation and appearing in the file LICENSE.GPL included in the
32;** packaging of this file. Please review the following information to
33;** ensure the GNU General Public License version 3.0 requirements will be
34;** met: http://www.gnu.org/copyleft/gpl.html.
35;**
36;** If you have questions regarding the use of this file, please contact
37;** Nokia at qt-info@nokia.com.
38;** $QT_END_LICENSE$
39;**
40;****************************************************************************
41
42;
43; W A R N I N G
44; -------------
45;
46; This file is not part of the Qt API. It exists purely as an
47; implementation detail. This header file may change from version to
48; version without notice, or even be removed.
49;
50; We mean it.
51;
52
53 ARM
54 PRESERVE8
55
56 INCLUDE qdrawhelper_armv6_rvct.inc
57
58;-----------------------------------------------------------------------------
59; qt_memfill32_armv6
60;
61; @brief Not yet in use!
62;
63; @param dest Destination buffer (r0)
64; @param value Value (r1)
65; @param count Count (r2)
66;
67;---------------------------------------------------------------------------
68qt_memfill32_armv6 Function
69 stmfd sp!, {r4-r12, r14}
70
71 mov r3, r1
72 mov r4, r1
73 mov r5, r1
74 mov r6, r1
75 mov r7, r1
76 mov r8, r1
77 mov r9, r1
78
79mfill_loop
80 ; Fill 32 pixels per loop iteration
81 subs r2, r2, #32
82 stmgeia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
83 stmgeia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
84 stmgeia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
85 stmgeia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
86 bgt mfill_loop
87
88mfill_remaining
89
90 ; Fill up to 31 remaining pixels
91
92 ; Fill 16 pixels
93 tst r2, #16
94 stmneia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
95 stmneia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
96
97 ; Fill 8 pixels
98 tst r2, #8
99 stmneia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
100
101 ; Fill 4 pixels
102 tst r2, #4
103 stmneia r0!, {r1, r3, r4, r5}
104
105 ; Fill 2 pixels
106 tst r2, #2
107 stmneia r0!, {r1, r3}
108
109 ; Fill last one
110 tst r2, #1
111 strne r1, [r0]
112
113 ldmfd sp!, {r4-r12, pc} ; pop and return
114
115;-----------------------------------------------------------------------------
116; comp_func_Source_arm
117;
118; @brief
119;
120; @param dest Destination buffer (r0)
121; @param src Source buffer (r1)
122; @param length Length (r2)
123; @param const_alpha Constant alpha (r3)
124;
125;---------------------------------------------------------------------------
126comp_func_Source_armv6 Function
127 stmfd sp!, {r4-r12, r14}
128
129 cmp r3, #255 ; if(r3 == 255)
130 bne src2 ; branch if not
131
132src1 PixCpy r0, r1, r2
133
134 ldmfd sp!, {r4-r12, pc} ; pop and return
135
136src2
137 ;ldr r14, =ComponentHalf ; load 0x800080 to r14
138 mov r14, #0x800000
139 add r14, r14, #0x80
140
141src22 BlendRow PixelSourceConstAlpha
142
143 ldmfd sp!, {r4-r12, pc} ; pop and return
144
145;-----------------------------------------------------------------------------
146; comp_func_SourceOver_arm
147;
148; @brief
149;
150; @param dest Destination buffer (r0)
151; @param src Source buffer (r1)
152; @param length Length (r2)
153; @param const_alpha Constant alpha (r3)
154;
155;---------------------------------------------------------------------------
156comp_func_SourceOver_armv6 Function
157 stmfd sp!, {r4-r12, r14}
158
159 ;ldr r14, =ComponentHalf ; load 0x800080 to r14
160 mov r14, #0x800000
161 add r14, r14, #0x80
162
163 cmp r3, #255 ; if(r3 == 255)
164 bne srcovr2 ; branch if not
165
166srcovr1 BlendRow PixelSourceOver
167
168 ldmfd sp!, {r4-r12, pc} ; pop and return
169
170srcovr2
171
172srcovr22 BlendRow PixelSourceOverConstAlpha
173
174 ldmfd sp!, {r4-r12, pc} ; pop and return
175
176
177 END ; File end
Note: See TracBrowser for help on using the repository browser.