⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glib.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\glib.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  _PutPixel18Bit PROC
;;;145    void _PutPixel18Bit(U32 x,U32 y,U32 c)
;;;146    {
                  |L1.0|
000000  e52de004          STR      lr,[sp,#-4]!
;;;147    	if(x<vframewidth && y<vframeheight)
000004  e59f38a0          LDR      r3,|L1.2220|
000008  e5933000          LDR      r3,[r3,#0]  ; vframewidth
00000c  e1500003          CMP      r0,r3
000010  2a00000c          BCS      |L1.72|
000014  e59f3894          LDR      r3,|L1.2224|
000018  e5933000          LDR      r3,[r3,#0]  ; vframeheight
00001c  e1510003          CMP      r1,r3
000020  2a000008          BCS      |L1.72|
;;;148    		*(framebuffer+y*vframewidth+x)= (*(framebuffer+y*vframewidth+x) 
000024  e59f3888          LDR      r3,|L1.2228|
000028  e0023003          AND      r3,r2,r3
00002c  e59fc878          LDR      r12,|L1.2220|
000030  e59cc000          LDR      r12,[r12,#0]  ; vframewidth
000034  e00e019c          MUL      lr,r12,r1
000038  e59fc878          LDR      r12,|L1.2232|
00003c  e59cc000          LDR      r12,[r12,#0]  ; framebuffer
000040  e08cc10e          ADD      r12,r12,lr,LSL #2
000044  e78c3100          STR      r3,[r12,r0,LSL #2]
;;;149    		& 0x0)|(c&0xfcfcfc);
;;;150    }
                  |L1.72|
000048  e49df004          LDR      pc,[sp],#4
                          ENDP

                  _PutPixel16Bit PROC
;;;138    void _PutPixel16Bit(U32 x,U32 y,U32 c)
;;;139    {
00004c  e52de004          STR      lr,[sp,#-4]!
;;;140    	if(x<vframewidth && y<vframeheight)
000050  e59f3854          LDR      r3,|L1.2220|
000054  e5933000          LDR      r3,[r3,#0]  ; vframewidth
000058  e1500003          CMP      r0,r3
00005c  2a00001e          BCS      |L1.220|
000060  e59f3848          LDR      r3,|L1.2224|
000064  e5933000          LDR      r3,[r3,#0]  ; vframeheight
000068  e1510003          CMP      r1,r3
00006c  2a00001a          BCS      |L1.220|
;;;141    		*(framebuffer+y*vframewidth/2+x/2)= (*(framebuffer+y*vframewidth/2+x/2) 
000070  e59f3834          LDR      r3,|L1.2220|
000074  e5933000          LDR      r3,[r3,#0]  ; vframewidth
000078  e00c0193          MUL      r12,r3,r1
00007c  e1a030ac          MOV      r3,r12,LSR #1
000080  e59fc830          LDR      r12,|L1.2232|
000084  e59cc000          LDR      r12,[r12,#0]  ; framebuffer
000088  e08c3103          ADD      r3,r12,r3,LSL #2
00008c  e1a0c0a0          MOV      r12,r0,LSR #1
000090  e793310c          LDR      r3,[r3,r12,LSL #2]
000094  e1a0cf80          MOV      r12,r0,LSL #31
000098  e1a0cdac          MOV      r12,r12,LSR #27
00009c  e59fe818          LDR      lr,|L1.2236|
0000a0  e1c33c3e          BIC      r3,r3,lr,LSR r12
0000a4  e002c82e          AND      r12,r2,lr,LSR #16
0000a8  e200e001          AND      lr,r0,#1
0000ac  e26ee001          RSB      lr,lr,#1
0000b0  e1a0e20e          MOV      lr,lr,LSL #4
0000b4  e1833e1c          ORR      r3,r3,r12,LSL lr
0000b8  e59fc7ec          LDR      r12,|L1.2220|
0000bc  e59cc000          LDR      r12,[r12,#0]  ; vframewidth
0000c0  e00e019c          MUL      lr,r12,r1
0000c4  e1a0c0ae          MOV      r12,lr,LSR #1
0000c8  e59fe7e8          LDR      lr,|L1.2232|
0000cc  e59ee000          LDR      lr,[lr,#0]  ; framebuffer
0000d0  e08ec10c          ADD      r12,lr,r12,LSL #2
0000d4  e1a0e0a0          MOV      lr,r0,LSR #1
0000d8  e78c310e          STR      r3,[r12,lr,LSL #2]
;;;142    		& ~(0xffff0000>>(x%2)*16))|((c&0x0000ffff)<<((2-1-(x%2))*16));
;;;143    }
                  |L1.220|
0000dc  e49df004          LDR      pc,[sp],#4
                          ENDP

                  _PutPixel8Bit PROC
;;;131    void _PutPixel8Bit(U32 x,U32 y,U32 c)
;;;132    {
0000e0  e52de004          STR      lr,[sp,#-4]!
;;;133    	if(x<vframewidth && y<vframeheight)
0000e4  e59f37c0          LDR      r3,|L1.2220|
0000e8  e5933000          LDR      r3,[r3,#0]  ; vframewidth
0000ec  e1500003          CMP      r0,r3
0000f0  2a00001e          BCS      |L1.368|
0000f4  e59f37b4          LDR      r3,|L1.2224|
0000f8  e5933000          LDR      r3,[r3,#0]  ; vframeheight
0000fc  e1510003          CMP      r1,r3
000100  2a00001a          BCS      |L1.368|
;;;134    		*(framebuffer+y*vframewidth/4+x/4)= (*(framebuffer+y*vframewidth/4+x/4) 
000104  e59f37a0          LDR      r3,|L1.2220|
000108  e5933000          LDR      r3,[r3,#0]  ; vframewidth
00010c  e00c0193          MUL      r12,r3,r1
000110  e1a0312c          MOV      r3,r12,LSR #2
000114  e59fc79c          LDR      r12,|L1.2232|
000118  e59cc000          LDR      r12,[r12,#0]  ; framebuffer
00011c  e08c3103          ADD      r3,r12,r3,LSL #2
000120  e1a0c120          MOV      r12,r0,LSR #2
000124  e793310c          LDR      r3,[r3,r12,LSL #2]
000128  e1a0cf00          MOV      r12,r0,LSL #30
00012c  e1a0cdac          MOV      r12,r12,LSR #27
000130  e3a0e4ff          MOV      lr,#0xff000000
000134  e1c33c3e          BIC      r3,r3,lr,LSR r12
000138  e202c0ff          AND      r12,r2,#0xff
00013c  e200e003          AND      lr,r0,#3
000140  e26ee003          RSB      lr,lr,#3
000144  e1a0e18e          MOV      lr,lr,LSL #3
000148  e1833e1c          ORR      r3,r3,r12,LSL lr
00014c  e59fc758          LDR      r12,|L1.2220|
000150  e59cc000          LDR      r12,[r12,#0]  ; vframewidth
000154  e00e019c          MUL      lr,r12,r1
000158  e1a0c12e          MOV      r12,lr,LSR #2
00015c  e59fe754          LDR      lr,|L1.2232|
000160  e59ee000          LDR      lr,[lr,#0]  ; framebuffer
000164  e08ec10c          ADD      r12,lr,r12,LSL #2
000168  e1a0e120          MOV      lr,r0,LSR #2
00016c  e78c310e          STR      r3,[r12,lr,LSL #2]
;;;135    		& ~(0xff000000>>(x%4)*8))| ((c&0x000000ff)<<((4-1-(x%4))*8));
;;;136    }
                  |L1.368|
000170  e49df004          LDR      pc,[sp],#4
                          ENDP

                  _PutPixel4Bit PROC
;;;124    void _PutPixel4Bit(U32 x,U32 y,U32 c)
;;;125    {
000174  e52de004          STR      lr,[sp,#-4]!
;;;126    	if(x<vframewidth && y<vframeheight)
000178  e59f372c          LDR      r3,|L1.2220|
00017c  e5933000          LDR      r3,[r3,#0]  ; vframewidth
000180  e1500003          CMP      r0,r3
000184  2a00001e          BCS      |L1.516|
000188  e59f3720          LDR      r3,|L1.2224|
00018c  e5933000          LDR      r3,[r3,#0]  ; vframeheight
000190  e1510003          CMP      r1,r3
000194  2a00001a          BCS      |L1.516|
;;;127    		*(framebuffer+y*vframewidth/8+x/8)= (*(framebuffer+y*vframewidth/8+x/8) 
000198  e59f370c          LDR      r3,|L1.2220|
00019c  e5933000          LDR      r3,[r3,#0]  ; vframewidth
0001a0  e00c0193          MUL      r12,r3,r1
0001a4  e1a031ac          MOV      r3,r12,LSR #3
0001a8  e59fc708          LDR      r12,|L1.2232|
0001ac  e59cc000          LDR      r12,[r12,#0]  ; framebuffer
0001b0  e08c3103          ADD      r3,r12,r3,LSL #2
0001b4  e1a0c1a0          MOV      r12,r0,LSR #3
0001b8  e793310c          LDR      r3,[r3,r12,LSL #2]
0001bc  e1a0ce80          MOV      r12,r0,LSL #29
0001c0  e1a0cdac          MOV      r12,r12,LSR #27
0001c4  e3a0e4f0          MOV      lr,#0xf0000000
0001c8  e1c33c3e          BIC      r3,r3,lr,LSR r12
0001cc  e202c00f          AND      r12,r2,#0xf
0001d0  e200e007          AND      lr,r0,#7
0001d4  e26ee007          RSB      lr,lr,#7
0001d8  e1a0e10e          MOV      lr,lr,LSL #2
0001dc  e1833e1c          ORR      r3,r3,r12,LSL lr
0001e0  e59fc6c4          LDR      r12,|L1.2220|
0001e4  e59cc000          LDR      r12,[r12,#0]  ; vframewidth
0001e8  e00e019c          MUL      lr,r12,r1
0001ec  e1a0c1ae          MOV      r12,lr,LSR #3
0001f0  e59fe6c0          LDR      lr,|L1.2232|
0001f4  e59ee000          LDR      lr,[lr,#0]  ; framebuffer
0001f8  e08ec10c          ADD      r12,lr,r12,LSL #2
0001fc  e1a0e1a0          MOV      lr,r0,LSR #3
000200  e78c310e          STR      r3,[r12,lr,LSL #2]
;;;128    		& ~(0xf0000000>>(x%8)*4))| ((c&0x0000000f)<<((8-1-(x%8))*4));
;;;129    }
                  |L1.516|
000204  e49df004          LDR      pc,[sp],#4
                          ENDP

                  _PutPixel2Bit PROC
;;;117    void _PutPixel2Bit(U32 x,U32 y,U32 c)
;;;118    {
000208  e52de004          STR      lr,[sp,#-4]!
;;;119    	if(x<vframewidth && y<vframeheight)
00020c  e59f3698          LDR      r3,|L1.2220|
000210  e5933000          LDR      r3,[r3,#0]  ; vframewidth
000214  e1500003          CMP      r0,r3
000218  2a00001e          BCS      |L1.664|
00021c  e59f368c          LDR      r3,|L1.2224|
000220  e5933000          LDR      r3,[r3,#0]  ; vframeheight
000224  e1510003          CMP      r1,r3
000228  2a00001a          BCS      |L1.664|
;;;120    		*(framebuffer+y*vframewidth/16+x/16)= (*(framebuffer+y*vframewidth/16+x/16) 
00022c  e59f3678          LDR      r3,|L1.2220|
000230  e5933000          LDR      r3,[r3,#0]  ; vframewidth
000234  e00c0193          MUL      r12,r3,r1
000238  e1a0322c          MOV      r3,r12,LSR #4
00023c  e59fc674          LDR      r12,|L1.2232|
000240  e59cc000          LDR      r12,[r12,#0]  ; framebuffer
000244  e08c3103          ADD      r3,r12,r3,LSL #2
000248  e1a0c220          MOV      r12,r0,LSR #4
00024c  e793310c          LDR      r3,[r3,r12,LSL #2]
000250  e1a0ce00          MOV      r12,r0,LSL #28
000254  e1a0cdac          MOV      r12,r12,LSR #27
000258  e3a0e4c0          MOV      lr,#0xc0000000
00025c  e1c33c3e          BIC      r3,r3,lr,LSR r12
000260  e202c003          AND      r12,r2,#3
000264  e200e00f          AND      lr,r0,#0xf
000268  e26ee00f          RSB      lr,lr,#0xf
00026c  e1a0e08e          MOV      lr,lr,LSL #1
000270  e1833e1c          ORR      r3,r3,r12,LSL lr
000274  e59fc630          LDR      r12,|L1.2220|
000278  e59cc000          LDR      r12,[r12,#0]  ; vframewidth
00027c  e00e019c          MUL      lr,r12,r1
000280  e1a0c22e          MOV      r12,lr,LSR #4
000284  e59fe62c          LDR      lr,|L1.2232|
000288  e59ee000          LDR      lr,[lr,#0]  ; framebuffer
00028c  e08ec10c          ADD      r12,lr,r12,LSL #2
000290  e1a0e220          MOV      lr,r0,LSR #4
000294  e78c310e          STR      r3,[r12,lr,LSL #2]
;;;121    		& ~(0xc0000000>>(x%16)*2))| ((c&0x00000003)<<((16-1-(x%16))*2));
;;;122    }
                  |L1.664|
000298  e49df004          LDR      pc,[sp],#4
                          ENDP

                  _PutPixel1Bit PROC
;;;110    void _PutPixel1Bit(U32 x,U32 y,U32 c)
;;;111    {
00029c  e52de004          STR      lr,[sp,#-4]!
;;;112    	if(x<vframewidth && y<vframeheight)
0002a0  e59f3604          LDR      r3,|L1.2220|
0002a4  e5933000          LDR      r3,[r3,#0]  ; vframewidth
0002a8  e1500003          CMP      r0,r3
0002ac  2a00001c          BCS      |L1.804|
0002b0  e59f35f8          LDR      r3,|L1.2224|
0002b4  e5933000          LDR      r3,[r3,#0]  ; vframeheight
0002b8  e1510003          CMP      r1,r3
0002bc  2a000018          BCS      |L1.804|
;;;113    		*(framebuffer+y*vframewidth/32+x/32)= (*(framebuffer+y*vframewidth/32+x/32) 
0002c0  e59f35e4          LDR      r3,|L1.2220|
0002c4  e5933000          LDR      r3,[r3,#0]  ; vframewidth
0002c8  e00c0193          MUL      r12,r3,r1
0002cc  e1a032ac          MOV      r3,r12,LSR #5
0002d0  e59fc5e0          LDR      r12,|L1.2232|
0002d4  e59cc000          LDR      r12,[r12,#0]  ; framebuffer
0002d8  e08c3103          ADD      r3,r12,r3,LSL #2
0002dc  e1a0c2a0          MOV      r12,r0,LSR #5
0002e0  e793310c          LDR      r3,[r3,r12,LSL #2]
0002e4  e200c01f          AND      r12,r0,#0x1f
0002e8  e3a0e480          MOV      lr,#0x80000000
0002ec  e1c33c3e          BIC      r3,r3,lr,LSR r12
0002f0  e202c001          AND      r12,r2,#1
0002f4  e200e01f          AND      lr,r0,#0x1f
0002f8  e26ee01f          RSB      lr,lr,#0x1f
0002fc  e1833e1c          ORR      r3,r3,r12,LSL lr
000300  e59fc5a4          LDR      r12,|L1.2220|
000304  e59cc000          LDR      r12,[r12,#0]  ; vframewidth
000308  e00e019c          MUL      lr,r12,r1
00030c  e1a0c2ae          MOV      r12,lr,LSR #5
000310  e59fe5a0          LDR      lr,|L1.2232|
000314  e59ee000          LDR      lr,[lr,#0]  ; framebuffer
000318  e08ec10c          ADD      r12,lr,r12,LSL #2
00031c  e1a0e2a0          MOV      lr,r0,LSR #5
000320  e78c310e          STR      r3,[r12,lr,LSL #2]
;;;114    		& ~(0x80000000>>(x%32)*1))| ((c&0x00000001)<<((32-1-(x%32))*1));   
;;;115    }
                  |L1.804|
000324  e49df004          LDR      pc,[sp],#4
                          ENDP

                  GlibInit PROC
;;;19     void GlibInit(U32 displaytype, U32 whichframebuffer)
;;;20     {
000328  e200200f          AND      r2,r0,#0xf
;;;21     	switch(displaytype&0xf) {
00032c  e3520007          CMP      r2,#7
000330  908ff102          ADDLS    pc,pc,r2,LSL #2
000334  ea000021          B        |L1.960|
000338  ea000006          B        |L1.856|
00033c  ea000009          B        |L1.872|
000340  ea00000c          B        |L1.888|
000344  ea00000f          B        |L1.904|
000348  ea00000f          B        |L1.908|
00034c  ea000012          B        |L1.924|
000350  ea000012          B        |L1.928|
000354  ea000015          B        |L1.944|
;;;22     		case BPP1:
;;;23     			PutPixel=_PutPixel1Bit;
                  |L1.856|
000358  e59f2560          LDR      r2,|L1.2240|
00035c  e59f3560          LDR      r3,|L1.2244|
000360  e5832000          STR      r2,[r3,#0]  ; PutPixel
;;;24     			break;
000364  ea000016          B        |L1.964|
;;;25     		case BPP2:
;;;26     			PutPixel=_PutPixel2Bit;
                  |L1.872|
000368  e59f2558          LDR      r2,|L1.2248|
00036c  e59f3550          LDR      r3,|L1.2244|
000370  e5832000          STR      r2,[r3,#0]  ; PutPixel
;;;27     			break;
000374  ea000012          B        |L1.964|
;;;28     		case BPP4:
;;;29     			PutPixel=_PutPixel4Bit;
                  |L1.888|
000378  e59f254c          LDR      r2,|L1.2252|
00037c  e59f3540          LDR      r3,|L1.2244|
000380  e5832000          STR      r2,[r3,#0]  ; PutPixel
;;;30     			break;
000384  ea00000e          B        |L1.964|
;;;31     		case BPP8:
;;;32     		case BPP8_NP:
                  |L1.904|
000388  e1a00000          NOP      
;;;33     			PutPixel=_PutPixel8Bit;
                  |L1.908|
00038c  e59f253c          LDR      r2,|L1.2256|
000390  e59f352c          LDR      r3,|L1.2244|
000394  e5832000          STR      r2,[r3,#0]  ; PutPixel
;;;34     			break;
000398  ea000009          B        |L1.964|
;;;35     		case BPP16_565:
;;;36     		case BPP16_5551:
                  |L1.924|
00039c  e1a00000          NOP      
;;;37     			PutPixel=_PutPixel16Bit;
                  |L1.928|
0003a0  e59f252c          LDR      r2,|L1.2260|
0003a4  e59f3518          LDR      r3,|L1.2244|
0003a8  e5832000          STR      r2,[r3,#0]  ; PutPixel
;;;38     			break;
0003ac  ea000004          B        |L1.964|
;;;39     		case BPP18:
;;;40     			PutPixel=_PutPixel18Bit;
                  |L1.944|
0003b0  e59f2520          LDR      r2,|L1.2264|
0003b4  e59f3508          LDR      r3,|L1.2244|
0003b8  e5832000          STR      r2,[r3,#0]  ; PutPixel
;;;41     			break;
0003bc  ea000000          B        |L1.964|
;;;42     		default:
;;;43     			break;
                  |L1.960|
0003c0  e1a00000          NOP      
;;;44     	}
;;;45     	
;;;46     	switch(displaytype&0xff00) {
                  |L1.964|
0003c4  e2002cff          AND      r2,r0,#0xff00
0003c8  e3520d90          CMP      r2,#0x2400
0003cc  0a00002d          BEQ      |L1.1160|
0003d0  ca00000e          BGT      |L1.1040|
0003d4  e3520d60          CMP      r2,#0x1800
0003d8  0a000031          BEQ      |L1.1188|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -