📄 jdapistd.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\jdapistd.o --depend=.\Obj\jdapistd.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\jdapistd.c]
THUMB
AREA ||i.jpeg_finish_output||, CODE, READONLY, ALIGN=1
jpeg_finish_output PROC
;;;252 GLOBAL(boolean)
;;;253 jpeg_finish_output (j_decompress_ptr cinfo)
000000 b510 PUSH {r4,lr}
;;;254 {
000002 4604 MOV r4,r0
;;;255 if ((cinfo->global_state == DSTATE_SCANNING ||
000004 6940 LDR r0,[r0,#0x14]
000006 28cd CMP r0,#0xcd
000008 d001 BEQ |L1.14|
;;;256 cinfo->global_state == DSTATE_RAW_OK) && cinfo->buffered_image) {
00000a 28ce CMP r0,#0xce
00000c d109 BNE |L1.34|
|L1.14|
00000e 6c21 LDR r1,[r4,#0x40]
000010 b139 CBZ r1,|L1.34|
;;;257 /* Terminate this pass. */
;;;258 /* We do not require the whole pass to have been completed. */
;;;259 (*cinfo->master->finish_output_pass) (cinfo);
000012 f8d401a4 LDR r0,[r4,#0x1a4]
000016 6841 LDR r1,[r0,#4]
000018 4620 MOV r0,r4
00001a 4788 BLX r1
;;;260 cinfo->global_state = DSTATE_BUFPOST;
00001c 20d0 MOVS r0,#0xd0
00001e 6160 STR r0,[r4,#0x14]
000020 e011 B |L1.70|
|L1.34|
;;;261 } else if (cinfo->global_state != DSTATE_BUFPOST) {
000022 28d0 CMP r0,#0xd0
000024 d00f BEQ |L1.70|
;;;262 /* BUFPOST = repeat call after a suspension, anything else is error */
;;;263 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
000026 6821 LDR r1,[r4,#0]
000028 2014 MOVS r0,#0x14
00002a 6148 STR r0,[r1,#0x14]
00002c 6821 LDR r1,[r4,#0]
00002e 6960 LDR r0,[r4,#0x14]
000030 6188 STR r0,[r1,#0x18]
000032 6820 LDR r0,[r4,#0]
000034 6801 LDR r1,[r0,#0]
000036 4620 MOV r0,r4
000038 4788 BLX r1
00003a e004 B |L1.70|
|L1.60|
;;;264 }
;;;265 /* Read markers looking for SOS or EOI */
;;;266 while (cinfo->input_scan_number <= cinfo->output_scan_number &&
;;;267 ! cinfo->inputctl->eoi_reached) {
;;;268 if ((*cinfo->inputctl->consume_input) (cinfo) == JPEG_SUSPENDED)
00003c 6801 LDR r1,[r0,#0]
00003e 4620 MOV r0,r4
000040 4788 BLX r1
000042 2800 CMP r0,#0
000044 d00d BEQ |L1.98|
|L1.70|
000046 f8d41098 LDR r1,[r4,#0x98] ;266
00004a f8d40090 LDR r0,[r4,#0x90] ;266
00004e 4288 CMP r0,r1 ;266
000050 dc04 BGT |L1.92|
000052 f8d401b4 LDR r0,[r4,#0x1b4] ;267
000056 6941 LDR r1,[r0,#0x14] ;267
000058 2900 CMP r1,#0 ;267
00005a d0ef BEQ |L1.60|
|L1.92|
;;;269 return FALSE; /* Suspend, come back later */
;;;270 }
;;;271 cinfo->global_state = DSTATE_BUFIMAGE;
00005c 20cf MOVS r0,#0xcf
;;;272 return TRUE;
00005e 6160 STR r0,[r4,#0x14]
000060 2001 MOVS r0,#1
|L1.98|
;;;273 }
000062 bd10 POP {r4,pc}
;;;274
ENDP
AREA ||i.jpeg_read_raw_data||, CODE, READONLY, ALIGN=1
jpeg_read_raw_data PROC
;;;184 GLOBAL(JDIMENSION)
;;;185 jpeg_read_raw_data (j_decompress_ptr cinfo, JSAMPIMAGE data,
000000 e92d41f0 PUSH {r4-r8,lr}
;;;186 JDIMENSION max_lines)
;;;187 {
000004 4604 MOV r4,r0
;;;188 JDIMENSION lines_per_iMCU_row;
;;;189
;;;190 if (cinfo->global_state != DSTATE_RAW_OK)
000006 6940 LDR r0,[r0,#0x14]
000008 460f MOV r7,r1 ;187
00000a 4616 MOV r6,r2 ;187
00000c 28ce CMP r0,#0xce
00000e d009 BEQ |L2.36|
;;;191 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
000010 6821 LDR r1,[r4,#0]
000012 2014 MOVS r0,#0x14
000014 6148 STR r0,[r1,#0x14]
000016 6821 LDR r1,[r4,#0]
000018 6960 LDR r0,[r4,#0x14]
00001a 6188 STR r0,[r1,#0x18]
00001c 6820 LDR r0,[r4,#0]
00001e 6801 LDR r1,[r0,#0]
000020 4620 MOV r0,r4
000022 4788 BLX r1
|L2.36|
;;;192 if (cinfo->output_scanline >= cinfo->output_height) {
000024 6f61 LDR r1,[r4,#0x74]
000026 f8d4008c LDR r0,[r4,#0x8c]
00002a 4288 CMP r0,r1
00002c d309 BCC |L2.66|
;;;193 WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
00002e 6821 LDR r1,[r4,#0]
000030 207b MOVS r0,#0x7b
000032 6148 STR r0,[r1,#0x14]
000034 6820 LDR r0,[r4,#0]
000036 f04f31ff MOV r1,#0xffffffff
00003a 6842 LDR r2,[r0,#4]
00003c 4620 MOV r0,r4
00003e 4790 BLX r2
;;;194 return 0;
000040 e01e B |L2.128|
|L2.66|
;;;195 }
;;;196
;;;197 /* Call progress monitor hook if present */
;;;198 if (cinfo->progress != NULL) {
000042 68a1 LDR r1,[r4,#8]
000044 b139 CBZ r1,|L2.86|
;;;199 cinfo->progress->pass_counter = (long) cinfo->output_scanline;
;;;200 cinfo->progress->pass_limit = (long) cinfo->output_height;
000046 6048 STR r0,[r1,#4]
000048 68a1 LDR r1,[r4,#8]
00004a 6f60 LDR r0,[r4,#0x74]
;;;201 (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
00004c 6088 STR r0,[r1,#8]
00004e 68a0 LDR r0,[r4,#8]
000050 6801 LDR r1,[r0,#0]
000052 4620 MOV r0,r4
000054 4788 BLX r1
|L2.86|
;;;202 }
;;;203
;;;204 /* Verify that at least one iMCU row can be returned. */
;;;205 lines_per_iMCU_row = cinfo->max_v_samp_factor * cinfo->min_DCT_scaled_size;
000056 f8d45138 LDR r5,[r4,#0x138]
00005a f8d4013c LDR r0,[r4,#0x13c]
00005e 4345 MULS r5,r0,r5
;;;206 if (max_lines < lines_per_iMCU_row)
000060 42ae CMP r6,r5
000062 d206 BCS |L2.114|
;;;207 ERREXIT(cinfo, JERR_BUFFER_SIZE);
000064 6821 LDR r1,[r4,#0]
000066 2017 MOVS r0,#0x17
000068 6148 STR r0,[r1,#0x14]
00006a 6820 LDR r0,[r4,#0]
00006c 6801 LDR r1,[r0,#0]
00006e 4620 MOV r0,r4
000070 4788 BLX r1
|L2.114|
;;;208
;;;209 /* Decompress directly into user's buffer. */
;;;210 if (! (*cinfo->coef->decompress_data) (cinfo, data))
000072 f8d401ac LDR r0,[r4,#0x1ac]
000076 4639 MOV r1,r7
000078 68c2 LDR r2,[r0,#0xc]
00007a 4620 MOV r0,r4
00007c 4790 BLX r2
00007e b910 CBNZ r0,|L2.134|
|L2.128|
;;;211 return 0; /* suspension forced, can do nothing more */
000080 2000 MOVS r0,#0
|L2.130|
;;;212
;;;213 /* OK, we processed one iMCU row. */
;;;214 cinfo->output_scanline += lines_per_iMCU_row;
;;;215 return lines_per_iMCU_row;
;;;216 }
000082 e8bd81f0 POP {r4-r8,pc}
|L2.134|
000086 f8540f8c LDR r0,[r4,#0x8c]! ;214
00008a 4428 ADD r0,r0,r5 ;214
00008c 6020 STR r0,[r4,#0] ;215
00008e 4628 MOV r0,r5 ;215
000090 e7f7 B |L2.130|
;;;217
ENDP
AREA ||i.jpeg_read_scanlines||, CODE, READONLY, ALIGN=1
jpeg_read_scanlines PROC
;;;151 GLOBAL(JDIMENSION)
;;;152 jpeg_read_scanlines (j_decompress_ptr cinfo, JSAMPARRAY scanlines,
000000 b5f8 PUSH {r3-r7,lr}
;;;153 JDIMENSION max_lines)
;;;154 {
000002 4604 MOV r4,r0
;;;155 JDIMENSION row_ctr;
;;;156
;;;157 if (cinfo->global_state != DSTATE_SCANNING)
000004 6940 LDR r0,[r0,#0x14]
000006 460d MOV r5,r1 ;154
000008 4616 MOV r6,r2 ;154
00000a 28cd CMP r0,#0xcd
00000c d009 BEQ |L3.34|
;;;158 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
00000e 6821 LDR r1,[r4,#0]
000010 2014 MOVS r0,#0x14
000012 6148 STR r0,[r1,#0x14]
000014 6821 LDR r1,[r4,#0]
000016 6960 LDR r0,[r4,#0x14]
000018 6188 STR r0,[r1,#0x18]
00001a 6820 LDR r0,[r4,#0]
00001c 6801 LDR r1,[r0,#0]
00001e 4620 MOV r0,r4
000020 4788 BLX r1
|L3.34|
;;;159 if (cinfo->output_scanline >= cinfo->output_height) {
000022 6f61 LDR r1,[r4,#0x74]
000024 f8d4008c LDR r0,[r4,#0x8c]
000028 4288 CMP r0,r1
00002a d30a BCC |L3.66|
;;;160 WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
00002c 6821 LDR r1,[r4,#0]
00002e 207b MOVS r0,#0x7b
000030 6148 STR r0,[r1,#0x14]
000032 6820 LDR r0,[r4,#0]
000034 f04f31ff MOV r1,#0xffffffff
000038 6842 LDR r2,[r0,#4]
00003a 4620 MOV r0,r4
00003c 4790 BLX r2
;;;161 return 0;
00003e 2000 MOVS r0,#0
;;;162 }
;;;163
;;;164 /* Call progress monitor hook if present */
;;;165 if (cinfo->progress != NULL) {
;;;166 cinfo->progress->pass_counter = (long) cinfo->output_scanline;
;;;167 cinfo->progress->pass_limit = (long) cinfo->output_height;
;;;168 (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
;;;169 }
;;;170
;;;171 /* Process some data */
;;;172 row_ctr = 0;
;;;173 (*cinfo->main->process_data) (cinfo, scanlines, &row_ctr, max_lines);
;;;174 cinfo->output_scanline += row_ctr;
;;;175 return row_ctr;
;;;176 }
000040 bdf8 POP {r3-r7,pc}
|L3.66|
000042 68a1 LDR r1,[r4,#8] ;165
000044 b139 CBZ r1,|L3.86|
000046 6048 STR r0,[r1,#4] ;167
000048 68a1 LDR r1,[r4,#8] ;167
00004a 6f60 LDR r0,[r4,#0x74] ;167
00004c 6088 STR r0,[r1,#8] ;168
00004e 68a0 LDR r0,[r4,#8] ;168
000050 6801 LDR r1,[r0,#0] ;168
000052 4620 MOV r0,r4 ;168
000054 4788 BLX r1 ;168
|L3.86|
000056 2000 MOVS r0,#0 ;172
000058 9000 STR r0,[sp,#0] ;173
00005a f8d401a8 LDR r0,[r4,#0x1a8] ;173
00005e 4633 MOV r3,r6 ;173
000060 6847 LDR r7,[r0,#4] ;173
000062 466a MOV r2,sp ;173
000064 4629 MOV r1,r5 ;173
000066 4620 MOV r0,r4 ;173
000068 47b8 BLX r7 ;173
00006a f8541f8c LDR r1,[r4,#0x8c]! ;174
00006e 9800 LDR r0,[sp,#0] ;174
000070 4401 ADD r1,r1,r0 ;174
000072 6021 STR r1,[r4,#0] ;175
000074 bdf8 POP {r3-r7,pc}
;;;177
ENDP
AREA ||i.jpeg_start_decompress||, CODE, READONLY, ALIGN=1
jpeg_start_decompress PROC
;;;37 GLOBAL(boolean)
;;;38 jpeg_start_decompress (j_decompress_ptr cinfo)
000000 b510 PUSH {r4,lr}
;;;39 {
000002 4604 MOV r4,r0
;;;40 if (cinfo->global_state == DSTATE_READY) {
000004 6940 LDR r0,[r0,#0x14]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -