[openfirmware] [commit] r2619 - cpu/arm
repository service
svn at openfirmware.info
Sun Oct 16 02:32:51 CEST 2011
Author: wmb
Date: Sun Oct 16 02:32:50 2011
New Revision: 2619
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2619
Log:
Checked in ARM 16bpp to 24bpp conversion function in case we need it later.
Added:
cpu/arm/rgb566cvt.fth
Added: cpu/arm/rgb566cvt.fth
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ cpu/arm/rgb566cvt.fth Sun Oct 16 02:32:50 2011 (r2619)
@@ -0,0 +1,50 @@
+purpose: Copy from 16bpp to 24bpp frame buffer format
+
+code copy16>24-line ( src-adr dst-adr #pixels -- )
+ mov r2,tos \ #pixels in r2
+ ldmia sp!,{r0,r1,tos} \ r0: src, r1: dst, r2: #pixels
+ begin
+ ldrh r3,[r0]
+ inc r3,2
+
+ mov r4,r3,lsr #8
+ and r4,r4,#0xf8
+ strb r4,[r1],#1
+
+ mov r4,r3,lsr #3
+ and r4,r4,#0xfc
+ strb r4,[r1],#1
+
+ mov r4,r3,lsl #3
+ and r4,r4,#0xf8
+ strb r4,[r1],#1
+
+ decs r2,1
+ 0= until
+c;
+
+0 value rect-w
+0 value rect-h
+
+0 value dst-base
+0 value dst-pitch
+0 value dst-x
+0 value dst-y
+
+: dst-base ( -- adr ) dst-y dst-pitch * dst-x + ;
+
+0 value src-base
+0 value src-pitch
+0 value src-x
+0 value src-y
+
+: src-base ( -- adr ) dst-y dst-pitch * dst-x + ;
+
+: copy16>24 ( src-base src-pitch src-x,y dst-x,y w,h -- )
+ src-base dst-base ( src-adr dst-adr )
+ rect-h 0 ?do ( src-adr dst-adr )
+ 2dup rect-w copy16>24-line ( scr-adr dst-adr )
+ swap src-pitch + swap dst-pitch + ( scr-adr' dst-adr' )
+ loop ( src-adr dst-adr )
+ 2drop ( )
+;
More information about the openfirmware
mailing list