📄 jutils.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\jutils.o --depend=.\Obj\jutils.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\jutils.c]
THUMB
AREA ||i.jcopy_block_row||, CODE, READONLY, ALIGN=1
jcopy_block_row PROC
;;;144 GLOBAL(void)
;;;145 jcopy_block_row (JBLOCKROW input_row, JBLOCKROW output_row,
000000 4603 MOV r3,r0
;;;146 JDIMENSION num_blocks)
;;;147 /* Copy a row of coefficient blocks from one place to another. */
;;;148 {
000002 4608 MOV r0,r1
;;;149 #ifdef FMEMCOPY
;;;150 FMEMCOPY(output_row, input_row, num_blocks * (DCTSIZE2 * SIZEOF(JCOEF)));
000004 01d2 LSLS r2,r2,#7
000006 4619 MOV r1,r3
000008 f7ffbffe B.W __aeabi_memcpy
;;;151 #else
;;;152 register JCOEFPTR inptr, outptr;
;;;153 register long count;
;;;154
;;;155 inptr = (JCOEFPTR) input_row;
;;;156 outptr = (JCOEFPTR) output_row;
;;;157 for (count = (long) num_blocks * DCTSIZE2; count > 0; count--) {
;;;158 *outptr++ = *inptr++;
;;;159 }
;;;160 #endif
;;;161 }
;;;162
ENDP
AREA ||i.jcopy_sample_rows||, CODE, READONLY, ALIGN=1
jcopy_sample_rows PROC
;;;110 GLOBAL(void)
;;;111 jcopy_sample_rows (JSAMPARRAY input_array, int source_row,
000000 e92d41f0 PUSH {r4-r8,lr}
;;;112 JSAMPARRAY output_array, int dest_row,
;;;113 int num_rows, JDIMENSION num_cols)
;;;114 /* Copy some rows of samples from one place to another.
;;;115 * num_rows rows are copied from input_array[source_row++]
;;;116 * to output_array[dest_row++]; these areas may overlap for duplication.
;;;117 * The source and destination arrays must be at least as wide as num_cols.
;;;118 */
;;;119 {
;;;120 register JSAMPROW inptr, outptr;
;;;121 #ifdef FMEMCOPY
;;;122 register size_t count = (size_t) (num_cols * SIZEOF(JSAMPLE));
;;;123 #else
;;;124 register JDIMENSION count;
;;;125 #endif
;;;126 register int row;
;;;127
;;;128 input_array += source_row;
;;;129 output_array += dest_row;
;;;130
;;;131 for (row = num_rows; row > 0; row--) {
000004 e9dd4706 LDRD r4,r7,[sp,#0x18]
000008 eb000581 ADD r5,r0,r1,LSL #2 ;128
00000c eb020683 ADD r6,r2,r3,LSL #2 ;129
000010 e005 B |L2.30|
|L2.18|
;;;132 inptr = *input_array++;
000012 cd02 LDM r5!,{r1}
;;;133 outptr = *output_array++;
000014 ce01 LDM r6!,{r0}
;;;134 #ifdef FMEMCOPY
;;;135 FMEMCOPY(outptr, inptr, count);
000016 463a MOV r2,r7
000018 f7fffffe BL __aeabi_memcpy
00001c 1e64 SUBS r4,r4,#1 ;131
|L2.30|
00001e 2c00 CMP r4,#0 ;131
000020 dcf7 BGT |L2.18|
;;;136 #else
;;;137 for (count = num_cols; count > 0; count--)
;;;138 *outptr++ = *inptr++; /* needn't bother with GETJSAMPLE() here */
;;;139 #endif
;;;140 }
;;;141 }
000022 e8bd81f0 POP {r4-r8,pc}
;;;142
ENDP
AREA ||i.jdiv_round_up||, CODE, READONLY, ALIGN=1
jdiv_round_up PROC
;;;71 GLOBAL(long)
;;;72 jdiv_round_up (long a, long b)
000000 4408 ADD r0,r0,r1
;;;73 /* Compute a/b rounded up to next integer, ie, ceil(a/b) */
;;;74 /* Assumes a >= 0, b > 0 */
;;;75 {
;;;76 return (a + b - 1L) / b;
000002 1e40 SUBS r0,r0,#1
000004 fb90f0f1 SDIV r0,r0,r1
;;;77 }
000008 4770 BX lr
;;;78
ENDP
AREA ||i.jround_up||, CODE, READONLY, ALIGN=1
jround_up PROC
;;;80 GLOBAL(long)
;;;81 jround_up (long a, long b)
000000 4408 ADD r0,r0,r1
;;;82 /* Compute a rounded up to next multiple of b, ie, ceil(a/b)*b */
;;;83 /* Assumes a >= 0, b > 0 */
;;;84 {
;;;85 a += b - 1L;
000002 1e40 SUBS r0,r0,#1
;;;86 return a - (a % b);
000004 fb90f2f1 SDIV r2,r0,r1
000008 fb010112 MLS r1,r1,r2,r0
00000c 1a40 SUBS r0,r0,r1
;;;87 }
00000e 4770 BX lr
;;;88
ENDP
AREA ||i.jzero_far||, CODE, READONLY, ALIGN=1
jzero_far PROC
;;;164 GLOBAL(void)
;;;165 jzero_far (void FAR * target, size_t bytestozero)
000000 f7ffbffe B.W __aeabi_memclr
;;;166 /* Zero out a chunk of FAR memory. */
;;;167 /* This might be sample-array data, block-array data, or alloc_large data. */
;;;168 {
;;;169 #ifdef FMEMZERO
;;;170 FMEMZERO(target, bytestozero);
;;;171 #else
;;;172 register char FAR * ptr = (char FAR *) target;
;;;173 register size_t count;
;;;174
;;;175 for (count = bytestozero; count > 0; count--) {
;;;176 *ptr++ = 0;
;;;177 }
;;;178 #endif
;;;179 }
ENDP
AREA ||.constdata||, DATA, READONLY, ALIGN=2
jpeg_natural_order
DCD 0x00000000
DCD 0x00000001
DCD 0x00000008
DCD 0x00000010
DCD 0x00000009
DCD 0x00000002
DCD 0x00000003
DCD 0x0000000a
DCD 0x00000011
DCD 0x00000018
DCD 0x00000020
DCD 0x00000019
DCD 0x00000012
DCD 0x0000000b
DCD 0x00000004
DCD 0x00000005
DCD 0x0000000c
DCD 0x00000013
DCD 0x0000001a
DCD 0x00000021
DCD 0x00000028
DCD 0x00000030
DCD 0x00000029
DCD 0x00000022
DCD 0x0000001b
DCD 0x00000014
DCD 0x0000000d
DCD 0x00000006
DCD 0x00000007
DCD 0x0000000e
DCD 0x00000015
DCD 0x0000001c
DCD 0x00000023
DCD 0x0000002a
DCD 0x00000031
DCD 0x00000038
DCD 0x00000039
DCD 0x00000032
DCD 0x0000002b
DCD 0x00000024
DCD 0x0000001d
DCD 0x00000016
DCD 0x0000000f
DCD 0x00000017
DCD 0x0000001e
DCD 0x00000025
DCD 0x0000002c
DCD 0x00000033
DCD 0x0000003a
DCD 0x0000003b
DCD 0x00000034
DCD 0x0000002d
DCD 0x00000026
DCD 0x0000001f
DCD 0x00000027
DCD 0x0000002e
DCD 0x00000035
DCD 0x0000003c
DCD 0x0000003d
DCD 0x00000036
DCD 0x0000002f
DCD 0x00000037
DCD 0x0000003e
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
DCD 0x0000003f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -