📄 jdmarker.txt
字号:
0000f0 68e1 LDR r1,[r4,#0xc]
0000f2 4638 MOV r0,r7
0000f4 4788 BLX r1
0000f6 b910 CBNZ r0,|L5.254|
|L5.248|
0000f8 2000 MOVS r0,#0
|L5.250|
;;;521 /* We convert the zigzag-order table to natural array order. */
;;;522 quant_ptr->quantval[jpeg_natural_order[i]] = (UINT16) tmp;
;;;523 }
;;;524
;;;525 if (cinfo->err->trace_level >= 2) {
;;;526 for (i = 0; i < DCTSIZE2; i += 8) {
;;;527 TRACEMS8(cinfo, 2, JTRC_QUANTVALS,
;;;528 quant_ptr->quantval[i], quant_ptr->quantval[i+1],
;;;529 quant_ptr->quantval[i+2], quant_ptr->quantval[i+3],
;;;530 quant_ptr->quantval[i+4], quant_ptr->quantval[i+5],
;;;531 quant_ptr->quantval[i+6], quant_ptr->quantval[i+7]);
;;;532 }
;;;533 }
;;;534
;;;535 length -= DCTSIZE2+1;
;;;536 if (prec) length -= DCTSIZE2;
;;;537 }
;;;538
;;;539 if (length != 0)
;;;540 ERREXIT(cinfo, JERR_BAD_LENGTH);
;;;541
;;;542 INPUT_SYNC(cinfo);
;;;543 return TRUE;
;;;544 }
0000fa e8bd8ff8 POP {r3-r11,pc}
|L5.254|
0000fe e9d45600 LDRD r5,r6,[r4,#0] ;520
|L5.258|
000102 f8150b01 LDRB r0,[r5],#1 ;520
000106 1e76 SUBS r6,r6,#1 ;520
|L5.264|
000108 4924 LDR r1,|L5.412|
00010a f8511028 LDR r1,[r1,r8,LSL #2] ;522
00010e f1080801 ADD r8,r8,#1 ;516
000112 f82a0011 STRH r0,[r10,r1,LSL #1] ;522
000116 f1b80f40 CMP r8,#0x40 ;516
00011a dbcb BLT |L5.180|
00011c 6838 LDR r0,[r7,#0] ;525
00011e 6e80 LDR r0,[r0,#0x68] ;525
000120 2802 CMP r0,#2 ;525
000122 db22 BLT |L5.362|
000124 f04f0800 MOV r8,#0 ;526
|L5.296|
000128 6838 LDR r0,[r7,#0] ;527
00012a f83a1018 LDRH r1,[r10,r8,LSL #1] ;527
00012e 6181 STR r1,[r0,#0x18] ;527
000130 eb0a0148 ADD r1,r10,r8,LSL #1 ;527
000134 884a LDRH r2,[r1,#2] ;527
000136 61c2 STR r2,[r0,#0x1c] ;527
000138 888a LDRH r2,[r1,#4] ;527
00013a 6202 STR r2,[r0,#0x20] ;527
00013c 88ca LDRH r2,[r1,#6] ;527
00013e 6242 STR r2,[r0,#0x24] ;527
000140 890a LDRH r2,[r1,#8] ;527
000142 6282 STR r2,[r0,#0x28] ;527
000144 894a LDRH r2,[r1,#0xa] ;527
000146 62c2 STR r2,[r0,#0x2c] ;527
000148 898a LDRH r2,[r1,#0xc] ;527
00014a 6302 STR r2,[r0,#0x30] ;527
00014c 89c9 LDRH r1,[r1,#0xe] ;527
00014e 6341 STR r1,[r0,#0x34] ;527
000150 6839 LDR r1,[r7,#0] ;527
000152 205d MOVS r0,#0x5d ;527
000154 6148 STR r0,[r1,#0x14] ;527
000156 6838 LDR r0,[r7,#0] ;527
000158 2102 MOVS r1,#2 ;527
00015a 6842 LDR r2,[r0,#4] ;527
00015c 4638 MOV r0,r7 ;527
00015e 4790 BLX r2 ;527
000160 f1080808 ADD r8,r8,#8 ;526
000164 f1b80f40 CMP r8,#0x40 ;526
000168 dbde BLT |L5.296|
|L5.362|
00016a f1a90941 SUB r9,r9,#0x41 ;535
00016e f1bb0f00 CMP r11,#0 ;536
000172 d002 BEQ |L5.378|
000174 f1a90040 SUB r0,r9,#0x40 ;536
|L5.376|
000178 4681 MOV r9,r0 ;500
|L5.378|
00017a f1b90f00 CMP r9,#0 ;502
00017e f73faf60 BGT |L5.66|
000182 f1b90f00 CMP r9,#0 ;539
000186 d006 BEQ |L5.406|
000188 6839 LDR r1,[r7,#0] ;540
00018a 200b MOVS r0,#0xb ;540
00018c 6148 STR r0,[r1,#0x14] ;540
00018e 6838 LDR r0,[r7,#0] ;540
000190 6801 LDR r1,[r0,#0] ;540
000192 4638 MOV r0,r7 ;540
000194 4788 BLX r1 ;540
|L5.406|
000196 c460 STM r4!,{r5,r6} ;543
000198 2001 MOVS r0,#1 ;543
00019a e7ae B |L5.250|
;;;545
ENDP
|L5.412|
DCD jpeg_natural_order
AREA ||i.get_dri||, CODE, READONLY, ALIGN=1
get_dri PROC
;;;547 LOCAL(boolean)
;;;548 get_dri (j_decompress_ptr cinfo)
000000 e92d47f0 PUSH {r4-r10,lr}
;;;549 /* Process a DRI marker */
;;;550 {
;;;551 INT32 length;
;;;552 unsigned int tmp;
;;;553 INPUT_VARS(cinfo);
000004 6984 LDR r4,[r0,#0x18]
000006 4605 MOV r5,r0 ;550
;;;554
;;;555 INPUT_2BYTES(cinfo, length, return FALSE);
000008 e9d46700 LDRD r6,r7,[r4,#0]
00000c b92f CBNZ r7,|L6.26|
00000e 68e1 LDR r1,[r4,#0xc]
000010 4628 MOV r0,r5
000012 4788 BLX r1
000014 b358 CBZ r0,|L6.110|
000016 e9d46700 LDRD r6,r7,[r4,#0]
|L6.26|
00001a f8160b01 LDRB r0,[r6],#1
00001e 1e7f SUBS r7,r7,#1
000020 ea4f2800 LSL r8,r0,#8
000024 d105 BNE |L6.50|
000026 68e1 LDR r1,[r4,#0xc]
000028 4628 MOV r0,r5
00002a 4788 BLX r1
00002c b1f8 CBZ r0,|L6.110|
00002e e9d46700 LDRD r6,r7,[r4,#0]
|L6.50|
000032 f8160b01 LDRB r0,[r6],#1
000036 1e7f SUBS r7,r7,#1
000038 4440 ADD r0,r0,r8
;;;556
;;;557 if (length != 4)
00003a 2804 CMP r0,#4
00003c d006 BEQ |L6.76|
;;;558 ERREXIT(cinfo, JERR_BAD_LENGTH);
00003e 6829 LDR r1,[r5,#0]
000040 200b MOVS r0,#0xb
000042 6148 STR r0,[r1,#0x14]
000044 6828 LDR r0,[r5,#0]
000046 6801 LDR r1,[r0,#0]
000048 4628 MOV r0,r5
00004a 4788 BLX r1
|L6.76|
;;;559
;;;560 INPUT_2BYTES(cinfo, tmp, return FALSE);
00004c b92f CBNZ r7,|L6.90|
00004e 68e1 LDR r1,[r4,#0xc]
000050 4628 MOV r0,r5
000052 4788 BLX r1
000054 b158 CBZ r0,|L6.110|
000056 e9d46700 LDRD r6,r7,[r4,#0]
|L6.90|
00005a f8160b01 LDRB r0,[r6],#1
00005e 1e7f SUBS r7,r7,#1
000060 ea4f2800 LSL r8,r0,#8
000064 d108 BNE |L6.120|
000066 68e1 LDR r1,[r4,#0xc]
000068 4628 MOV r0,r5
00006a 4788 BLX r1
00006c b910 CBNZ r0,|L6.116|
|L6.110|
00006e 2000 MOVS r0,#0
|L6.112|
;;;561
;;;562 TRACEMS1(cinfo, 1, JTRC_DRI, tmp);
;;;563
;;;564 cinfo->restart_interval = tmp;
;;;565
;;;566 INPUT_SYNC(cinfo);
;;;567 return TRUE;
;;;568 }
000070 e8bd87f0 POP {r4-r10,pc}
|L6.116|
000074 e9d46700 LDRD r6,r7,[r4,#0] ;560
|L6.120|
000078 f8160b01 LDRB r0,[r6],#1 ;560
00007c f1a70901 SUB r9,r7,#1 ;560
000080 eb000708 ADD r7,r0,r8 ;560
000084 6829 LDR r1,[r5,#0] ;562
000086 2052 MOVS r0,#0x52 ;562
000088 6148 STR r0,[r1,#0x14] ;562
00008a 6828 LDR r0,[r5,#0] ;562
00008c 2101 MOVS r1,#1 ;562
00008e 6187 STR r7,[r0,#0x18] ;562
000090 6828 LDR r0,[r5,#0] ;562
000092 6842 LDR r2,[r0,#4] ;562
000094 4628 MOV r0,r5 ;562
000096 4790 BLX r2 ;562
000098 f8c57114 STR r7,[r5,#0x114] ;566
00009c e9c46900 STRD r6,r9,[r4,#0] ;567
0000a0 2001 MOVS r0,#1 ;567
0000a2 e7e5 B |L6.112|
;;;569
ENDP
AREA ||i.get_interesting_appn||, CODE, READONLY, ALIGN=1
get_interesting_appn PROC
;;;690 METHODDEF(boolean)
;;;691 get_interesting_appn (j_decompress_ptr cinfo)
000000 e92d5fff PUSH {r0-r12,lr}
;;;692 /* Process an APP0 or APP14 marker without saving it */
;;;693 {
;;;694 INT32 length;
;;;695 JOCTET b[APPN_DATA_LEN];
;;;696 unsigned int i, numtoread;
;;;697 INPUT_VARS(cinfo);
000004 6984 LDR r4,[r0,#0x18]
000006 4680 MOV r8,r0 ;693
;;;698
;;;699 INPUT_2BYTES(cinfo, length, return FALSE);
000008 e9d45600 LDRD r5,r6,[r4,#0]
00000c b92e CBNZ r6,|L7.26|
00000e 68e1 LDR r1,[r4,#0xc]
000010 4640 MOV r0,r8
000012 4788 BLX r1
000014 b338 CBZ r0,|L7.102|
000016 e9d45600 LDRD r5,r6,[r4,#0]
|L7.26|
00001a f8150b01 LDRB r0,[r5],#1
00001e 1e76 SUBS r6,r6,#1
000020 ea4f2700 LSL r7,r0,#8
000024 d105 BNE |L7.50|
000026 68e1 LDR r1,[r4,#0xc]
000028 4640 MOV r0,r8
00002a 4788 BLX r1
00002c b1d8 CBZ r0,|L7.102|
00002e e9d45600 LDRD r5,r6,[r4,#0]
|L7.50|
000032 f8150b01 LDRB r0,[r5],#1
000036 1e76 SUBS r6,r6,#1
000038 4438 ADD r0,r0,r7
;;;700 length -= 2;
00003a f1a00a02 SUB r10,r0,#2
;;;701
;;;702 /* get the interesting part of the marker data */
;;;703 if (length >= APPN_DATA_LEN)
00003e f1ba0f0e CMP r10,#0xe
000042 db01 BLT |L7.72|
;;;704 numtoread = APPN_DATA_LEN;
000044 200e MOVS r0,#0xe
000046 e005 B |L7.84|
|L7.72|
;;;705 else if (length > 0)
000048 f1ba0f00 CMP r10,#0
00004c dd01 BLE |L7.82|
;;;706 numtoread = (unsigned int) length;
00004e 4650 MOV r0,r10
000050 e000 B |L7.84|
|L7.82|
;;;707 else
;;;708 numtoread = 0;
000052 2000 MOVS r0,#0
|L7.84|
000054 4681 MOV r9,r0 ;706
;;;709 for (i = 0; i < numtoread; i++)
000056 2700 MOVS r7,#0
000058 46eb MOV r11,sp ;695
00005a e010 B |L7.126|
|L7.92|
;;;710 INPUT_BYTE(cinfo, b[i], return FALSE);
00005c b94e CBNZ r6,|L7.114|
00005e 68e1 LDR r1,[r4,#0xc]
000060 4640 MOV r0,r8
000062 4788 BLX r1
000064 b918 CBNZ r0,|L7.110|
|L7.102|
000066 2000 MOVS r0,#0
|L7.104|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -