📄 jdapimin.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\jdapimin.o --depend=.\Obj\jdapimin.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\JPEG\jdapimin.c]
THUMB
AREA ||i.default_decompress_parms||, CODE, READONLY, ALIGN=2
default_decompress_parms PROC
;;;113 LOCAL(void)
;;;114 default_decompress_parms (j_decompress_ptr cinfo)
000000 e92d47f0 PUSH {r4-r10,lr}
;;;115 {
000004 4604 MOV r4,r0
;;;116 /* Guess the input colorspace, and set output colorspace accordingly. */
;;;117 /* (Wish JPEG committee had provided a real way to specify this...) */
;;;118 /* Note application may override our guesses. */
;;;119 switch (cinfo->num_components) {
000006 6a40 LDR r0,[r0,#0x24]
;;;120 case 1:
;;;121 cinfo->jpeg_color_space = JCS_GRAYSCALE;
;;;122 cinfo->out_color_space = JCS_GRAYSCALE;
;;;123 break;
;;;124
;;;125 case 3:
;;;126 if (cinfo->saw_JFIF_marker) {
;;;127 cinfo->jpeg_color_space = JCS_YCbCr; /* JFIF implies YCbCr */
;;;128 } else if (cinfo->saw_Adobe_marker) {
;;;129 switch (cinfo->Adobe_transform) {
;;;130 case 0:
;;;131 cinfo->jpeg_color_space = JCS_RGB;
000008 2502 MOVS r5,#2
00000a f04f0801 MOV r8,#1 ;119
00000e f04f0900 MOV r9,#0 ;126
000012 2801 CMP r0,#1 ;119
000014 d011 BEQ |L1.58|
;;;132 break;
;;;133 case 1:
;;;134 cinfo->jpeg_color_space = JCS_YCbCr;
;;;135 break;
;;;136 default:
;;;137 WARNMS1(cinfo, JWRN_ADOBE_XFORM, cinfo->Adobe_transform);
000016 2272 MOVS r2,#0x72
000018 1ee9 SUBS r1,r5,#3
00001a 2803 CMP r0,#3 ;119
00001c d013 BEQ |L1.70|
00001e 2804 CMP r0,#4 ;119
000020 d175 BNE |L1.270|
;;;138 cinfo->jpeg_color_space = JCS_YCbCr; /* assume it's YCbCr */
;;;139 break;
;;;140 }
;;;141 } else {
;;;142 /* Saw no special markers, try to guess from the component IDs */
;;;143 int cid0 = cinfo->comp_info[0].component_id;
;;;144 int cid1 = cinfo->comp_info[1].component_id;
;;;145 int cid2 = cinfo->comp_info[2].component_id;
;;;146
;;;147 if (cid0 == 1 && cid1 == 2 && cid2 == 3)
;;;148 cinfo->jpeg_color_space = JCS_YCbCr; /* assume JFIF w/out marker */
;;;149 else if (cid0 == 82 && cid1 == 71 && cid2 == 66)
;;;150 cinfo->jpeg_color_space = JCS_RGB; /* ASCII 'R', 'G', 'B' */
;;;151 else {
;;;152 TRACEMS3(cinfo, 1, JTRC_UNKNOWN_IDS, cid0, cid1, cid2);
;;;153 cinfo->jpeg_color_space = JCS_YCbCr; /* assume it's YCbCr */
;;;154 }
;;;155 }
;;;156 /* Always guess RGB is proper output colorspace. */
;;;157 cinfo->out_color_space = JCS_RGB;
;;;158 break;
;;;159
;;;160 case 4:
;;;161 if (cinfo->saw_Adobe_marker) {
000022 f8d40124 LDR r0,[r4,#0x124]
000026 2604 MOVS r6,#4 ;119
000028 2800 CMP r0,#0
00002a d048 BEQ |L1.190|
;;;162 switch (cinfo->Adobe_transform) {
00002c f8940128 LDRB r0,[r4,#0x128]
000030 b3c0 CBZ r0,|L1.164|
;;;163 case 0:
;;;164 cinfo->jpeg_color_space = JCS_CMYK;
;;;165 break;
;;;166 case 2:
;;;167 cinfo->jpeg_color_space = JCS_YCCK;
000032 2705 MOVS r7,#5
000034 2802 CMP r0,#2 ;162
000036 d16c BNE |L1.274|
000038 e044 B |L1.196|
|L1.58|
00003a 4640 MOV r0,r8 ;121
|L1.60|
00003c f8840028 STRB r0,[r4,#0x28] ;121
000040 f8840029 STRB r0,[r4,#0x29] ;122
000044 e042 B |L1.204|
|L1.70|
000046 f8d40118 LDR r0,[r4,#0x118] ;126
00004a 2603 MOVS r6,#3 ;119
00004c b9e0 CBNZ r0,|L1.136|
00004e f8d40124 LDR r0,[r4,#0x124] ;128
000052 b168 CBZ r0,|L1.112|
000054 f8940128 LDRB r0,[r4,#0x128] ;129
000058 b1f8 CBZ r0,|L1.154|
00005a 2801 CMP r0,#1 ;129
00005c d014 BEQ |L1.136|
00005e 6820 LDR r0,[r4,#0] ;137
000060 6142 STR r2,[r0,#0x14] ;137
000062 6822 LDR r2,[r4,#0] ;137
000064 f8940128 LDRB r0,[r4,#0x128] ;137
000068 6190 STR r0,[r2,#0x18] ;137
00006a 6820 LDR r0,[r4,#0] ;137
00006c 6842 LDR r2,[r0,#4] ;139
00006e e023 B |L1.184|
|L1.112|
000070 f8d400d8 LDR r0,[r4,#0xd8] ;144
000074 f8d020a8 LDR r2,[r0,#0xa8] ;143
000078 6d41 LDR r1,[r0,#0x54] ;143
00007a 6800 LDR r0,[r0,#0] ;143
00007c 2801 CMP r0,#1 ;147
00007e d106 BNE |L1.142|
000080 2902 CMP r1,#2 ;147
000082 d110 BNE |L1.166|
000084 2a03 CMP r2,#3 ;147
000086 d10e BNE |L1.166|
|L1.136|
000088 f8846028 STRB r6,[r4,#0x28] ;148
00008c e007 B |L1.158|
|L1.142|
00008e 2852 CMP r0,#0x52 ;149
000090 d109 BNE |L1.166|
000092 2947 CMP r1,#0x47 ;149
000094 d107 BNE |L1.166|
000096 2a42 CMP r2,#0x42 ;149
000098 d105 BNE |L1.166|
|L1.154|
00009a f8845028 STRB r5,[r4,#0x28] ;150
|L1.158|
00009e f8845029 STRB r5,[r4,#0x29] ;157
0000a2 e013 B |L1.204|
|L1.164|
0000a4 e00b B |L1.190|
|L1.166|
0000a6 6823 LDR r3,[r4,#0] ;152
0000a8 3318 ADDS r3,r3,#0x18 ;152
0000aa c307 STM r3!,{r0-r2} ;152
0000ac 6821 LDR r1,[r4,#0] ;152
0000ae 206f MOVS r0,#0x6f ;152
0000b0 6148 STR r0,[r1,#0x14] ;152
0000b2 6820 LDR r0,[r4,#0] ;152
0000b4 2101 MOVS r1,#1 ;152
0000b6 6842 LDR r2,[r0,#4] ;152
|L1.184|
0000b8 4620 MOV r0,r4 ;137
0000ba 4790 BLX r2 ;137
0000bc e7e4 B |L1.136|
|L1.190|
0000be f8846028 STRB r6,[r4,#0x28] ;164
0000c2 e001 B |L1.200|
|L1.196|
0000c4 f8847028 STRB r7,[r4,#0x28]
|L1.200|
;;;168 break;
;;;169 default:
;;;170 WARNMS1(cinfo, JWRN_ADOBE_XFORM, cinfo->Adobe_transform);
;;;171 cinfo->jpeg_color_space = JCS_YCCK; /* assume it's YCCK */
;;;172 break;
;;;173 }
;;;174 } else {
;;;175 /* No special markers, assume straight CMYK. */
;;;176 cinfo->jpeg_color_space = JCS_CMYK;
;;;177 }
;;;178 cinfo->out_color_space = JCS_CMYK;
0000c8 f8846029 STRB r6,[r4,#0x29]
|L1.204|
;;;179 break;
;;;180
;;;181 default:
;;;182 cinfo->jpeg_color_space = JCS_UNKNOWN;
;;;183 cinfo->out_color_space = JCS_UNKNOWN;
;;;184 break;
;;;185 }
;;;186
;;;187 /* Set defaults for other decompression parameters. */
;;;188 cinfo->scale_num = 1; /* 1:1 scaling */
0000cc f8448f2c STR r8,[r4,#0x2c]!
;;;189 cinfo->scale_denom = 1;
;;;190 cinfo->output_gamma = 1.0;
0000d0 a016 ADR r0,|L1.300|
0000d2 f8c48004 STR r8,[r4,#4]
0000d6 c80c LDM r0!,{r2,r3}
;;;191 cinfo->buffered_image = FALSE;
;;;192 cinfo->raw_data_out = FALSE;
0000d8 e9c43904 STRD r3,r9,[r4,#0x10]
;;;193 cinfo->dct_method = JDCT_DEFAULT;
0000dc f8c49018 STR r9,[r4,#0x18]
0000e0 60e2 STR r2,[r4,#0xc]
0000e2 f884901c STRB r9,[r4,#0x1c]
;;;194 cinfo->do_fancy_upsampling = TRUE;
;;;195 cinfo->do_block_smoothing = TRUE;
0000e6 f8c48020 STR r8,[r4,#0x20]
;;;196 cinfo->quantize_colors = FALSE;
;;;197 /* We set these in case application only sets quantize_colors. */
;;;198 cinfo->dither_mode = JDITHER_FS;
0000ea e9c48909 STRD r8,r9,[r4,#0x24]
0000ee f884502c STRB r5,[r4,#0x2c]
;;;199 #ifdef QUANT_2PASS_SUPPORTED
;;;200 cinfo->two_pass_quantize = TRUE;
;;;201 #else
;;;202 cinfo->two_pass_quantize = FALSE;
;;;203 #endif
;;;204 cinfo->desired_number_of_colors = 256;
0000f2 f44f7180 MOV r1,#0x100
;;;205 cinfo->colormap = NULL;
;;;206 /* Initialize for no mode change in buffered-image mode. */
;;;207 cinfo->enable_1pass_quant = FALSE;
0000f6 f8c4905c STR r9,[r4,#0x5c]
;;;208 cinfo->enable_external_quant = FALSE;
0000fa e9c4190d STRD r1,r9,[r4,#0x34]
;;;209 cinfo->enable_2pass_quant = FALSE;
0000fe f8c4903c STR r9,[r4,#0x3c]
;;;210 }
000102 f8c49040 STR r9,[r4,#0x40]
000106 f8c48030 STR r8,[r4,#0x30]
00010a e8bd87f0 POP {r4-r10,pc}
|L1.270|
00010e e00b B |L1.296|
000110 e7ff B |L1.274|
|L1.274|
000112 6820 LDR r0,[r4,#0] ;170
000114 6142 STR r2,[r0,#0x14] ;170
000116 6822 LDR r2,[r4,#0] ;170
000118 f8940128 LDRB r0,[r4,#0x128] ;170
00011c 6190 STR r0,[r2,#0x18] ;170
00011e 6820 LDR r0,[r4,#0] ;170
000120 6842 LDR r2,[r0,#4] ;170
000122 4620 MOV r0,r4 ;170
000124 4790 BLX r2 ;170
000126 e7cd B |L1.196|
|L1.296|
000128 4648 MOV r0,r9 ;182
00012a e787 B |L1.60|
;;;211
ENDP
|L1.300|
00012c 00000000
000130 3ff00000 DCFD 0x3ff0000000000000 ; 1
AREA ||i.jpeg_CreateDecompress||, CODE, READONLY, ALIGN=1
jpeg_CreateDecompress PROC
;;;29 GLOBAL(void)
;;;30 jpeg_CreateDecompress (j_decompress_ptr cinfo, int version, size_t structsize)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;31 {
;;;32 int i;
;;;33
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -