📄 glib.txt
字号:
; 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 + -