📄 img_median_3x3_c.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.32 *
;* Date/Time created: Mon Nov 06 11:43:29 2006 *
;******************************************************************************
;******************************************************************************
;* GLOBAL FILE PARAMETERS *
;* *
;* Architecture : TMS320C620x *
;* Optimization : Enabled at level 2 *
;* Optimizing for : Speed *
;* Based on options: -o2, no -ms *
;* Endian : Little *
;* Interrupt Thrshld : Disabled *
;* Memory Model : Small *
;* Calls to RTS : Near *
;* Pipelining : Enabled *
;* Speculative Load : Disabled *
;* Memory Aliases : Presume not aliases (optimistic) *
;* Debug Info : COFF Debug *
;* *
;******************************************************************************
.asg A15, FP
.asg B14, DP
.asg B15, SP
.global $bss
.file "img_median_3x3_c.c"
; c:\ti\c6000\cgtools\bin\opt6x.exe -t -O2 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1632_2 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1632_5 -w D:/DM64xApp/5stsrc/median_33_d/Debug
.sect ".text"
.global _IMG_median_3x3_c
.sym _IMG_median_3x3_c,_IMG_median_3x3_c, 32, 2, 0
.func 7
;******************************************************************************
;* FUNCTION NAME: _IMG_median_3x3_c *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14, *
;* A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14, *
;* A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 36 Save = 36 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o2) may disable key optimizations! *
;* *
;******************************************************************************
_IMG_median_3x3_c:
;** --------------------------------------------------------------------------*
.line 2
.sym _in_data,4, 28, 17, 32
.sym _cols,20, 4, 17, 32
.sym _out_data,6, 28, 17, 32
.sym _medmed_3,3, 4, 4, 32
.sym _medmed_2,3, 4, 4, 32
.sym _medmed_1,3, 4, 4, 32
.sym _minmax_1,6, 4, 4, 32
.sym _medmed_0,0, 4, 4, 32
.sym _maxmin_0,24, 4, 4, 32
.sym _minmax_0,6, 4, 4, 32
.sym _t1_2,0, 4, 4, 32
.sym _t1_1,0, 4, 4, 32
.sym _t0_1,3, 4, 4, 32
.sym _l20_2,22, 4, 4, 32
.sym _l20_1,22, 4, 4, 32
.sym _l10_3,5, 4, 4, 32
.sym _l10_2,0, 4, 4, 32
.sym _l10_1,3, 4, 4, 32
.sym _l00_1,2, 4, 4, 32
.sym _l21_0,20, 4, 4, 32
.sym _l12_0,7, 4, 4, 32
.sym _l11_0,8, 4, 4, 32
.sym _l01_0,9, 4, 4, 32
.sym _l00_0,5, 12, 4, 32
.sym _line2,21, 28, 4, 32
.sym _line1,10, 28, 4, 32
.sym _line0,4, 28, 4, 32
.sym _out_data,12, 28, 4, 32
.sym _in_data,4, 28, 4, 32
.sym _cols,20, 4, 4, 32
.sym _out_data,0, 28, 4, 32
STW .D2T1 A15,*SP--(40) ; |8|
|| MV .S1X SP,A9 ; |8|
STW .D2T2 B11,*+SP(36)
STW .D2T2 B10,*+SP(32)
STW .D1T1 A12,*-A9(24)
|| STW .D2T2 B3,*+SP(28)
STW .D2T1 A11,*+SP(12)
STW .D1T1 A13,*-A9(20)
STW .D2T1 A10,*+SP(8)
STW .D1T1 A14,*-A9(16)
MV .D1 A6,A12 ; |8|
.line 10
MV .S2X A4,B5 ; |16| Define a twin register
.line 11
ADD .S1X B4,A4,A10 ; |17|
.line 12
ADDAH .D2 B5,B4,B5 ; |18|
.line 24
CMPGT .L2 B4,0,B1 ; |30|
[!B1] B .S1 L6 ; |30|
NOP 5
; BRANCH OCCURS ; |30|
;** --------------------------------------------------------------------------*
.line 26
MV .D2 B4,B0 ; |32|
.line 18
MVK .S1 0x7f,A9 ; |24|
MVK .S1 0x7f,A8 ; |24|
|| MVK .S2 0x7f,B4 ; |24|
.line 19
MVK .S1 0x7f,A7 ; |25|
.line 21
MVK .S1 0x7f,A6 ; |27|
.line 22
CMPGT .L2 B0,2,B1
[ B1] B .S1 L2
MVK .S2 0x7f,B8 ; |28|
SUB .D2 B5,1,B5
SUB .D1 A10,1,A10
SUB .S1 A4,1,A4
NOP 1
; BRANCH OCCURS
;** --------------------------------------------------------------------------*
;** BEGIN LOOP L1
;** --------------------------------------------------------------------------*
L1:
.line 26
LDBU .D1T1 *++A4,A5 ; |32|
.line 32
LDBU .D1T1 *++A10,A0 ; |38|
|| LDBU .D2T2 *++B5,B6 ; |38|
NOP 4
CMPGT .L2X B6,A0,B1
|| MV .D1 A0,A3 ; |38|
.line 33
[ B1] MV .S2X A0,B6 ; |39|
|| [ B1] MV .S1X B6,A3 ; |39|
.line 35
MV .D1 A5,A2 ; |41|
|| CMPGT .L1 A3,A5,A1
|| MV .S1 A3,A0 ; |41|
.line 36
[ A1] MV .D1 A5,A0 ; |42|
|| [ A1] MV .S1 A0,A2 ; |42|
.line 38
CMPGT .L2X B6,A0,B1
|| MV .D1 A0,A5 ; |44|
.line 39
[ B1] MV .S2X A0,B6 ; |45|
|| CMPLT .L1 A9,A6,A1
|| [ B1] MV .S1X B6,A5 ; |45|
.line 41
[ A1] MV .D1 A9,A6 ; |47|
CMPLT .L1 A2,A6,A1
.line 42
[ A1] MV .D1 A2,A6 ; |48|
|| CMPGT .L2 B4,B8,B1
.line 44
[ B1] MV .D2 B4,B8 ; |50|
CMPGT .L2 B6,B8,B1
.line 45
[ B1] MV .D2 B6,B8 ; |51|
.line 49
MV .D1 A5,A3 ; |55|
.line 50
MV .D1 A8,A0 ; |56|
|| CMPGT .L1 A3,A8,A1
.line 53
[ A1] MV .D1 A0,A3 ; |59|
.line 54
[ A1] MV .D1 A5,A0 ; |60|
.line 56
CMPGT .L1 A0,A7,A1
.line 59
[ A1] MV .D1 A7,A0 ; |65|
.line 62
CMPGT .L1 A3,A0,A1
.line 63
[ A1] MV .D1 A3,A0 ; |69|
.line 67
MV .D1 A0,A3 ; |73|
|| CMPGT .L1 A6,A0,A1
.line 68
[ A1] MV .D1 A0,A6 ; |74|
|| [ A1] MV .S1 A6,A3 ; |74|
.line 70
CMPGT .L2X A3,B8,B1
.line 71
[ B1] MV .S1X B8,A3 ; |77|
.line 73
CMPGT .L1 A6,A3,A1
.line 74
[ A1] MV .D1 A6,A3 ; |80|
.line 78
MV .D1 A9,A6 ; |84|
.line 79
MV .D1 A8,A7 ; |85|
.line 80
MV .D2 B4,B8 ; |86|
.line 81
MV .D1 A2,A9 ; |87|
.line 82
MV .D1 A5,A8 ; |88|
.line 83
MV .D2 B6,B4 ; |89|
.line 85
STB .D1T1 A3,*A12++ ; |91|
.line 86
SUB .D2 B0,1,B0 ; |92|
[ B0] B .S1 L1 ; |92|
NOP 5
; BRANCH OCCURS ; |92|
;** --------------------------------------------------------------------------*
B .S1 L6
NOP 5
; BRANCH OCCURS
;** --------------------------------------------------------------------------*
L2:
MV .S1 A4,A11
|| LDBU .D1T1 *++A10,A4 ; |38| (P) <0,0>
LDBU .D2T2 *++B5,B10 ; |38| (P) <0,3>
|| MVC .S2 CSR,B11
AND .S2 -2,B11,B6
MVC .S2 B6,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 30
;* Loop opening brace source line : 31
;* Loop closing brace source line : 92
;* Known Minimum Trip Count : 1
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 12
;* Unpartitioned Resource Bound : 10
;* Partitioned Resource Bound(*) : 13
;* Resource Partition:
;* A-side B-side
;* .L units 4 9
;* .S units 0 1
;* .D units 3 1
;* .M units 0 0
;* .X cross paths 3 11
;* .T address paths 3 1
;* Long read paths 1 0
;* Long write paths 0 0
;* Logical ops (.LS) 3 5 (.L or .S unit)
;* Addition ops (.LSD) 27 8 (.L or .S or .D unit)
;* Bound(.L .S .LS) 4 8
;* Bound(.L .S .D .LS .LSD) 13* 8
;*
;* Searching for software pipeline schedule at ...
;* ii = 13 Schedule found with 3 iterations in parallel
;*
;* Register Usage Table:
;* +---------------------------------+
;* |AAAAAAAAAAAAAAAA|BBBBBBBBBBBBBBBB|
;* |0000000000111111|0000000000111111|
;* |0123456789012345|0123456789012345|
;* |----------------+----------------|
;* 0: | *********** *|* *** **** |
;* 1: |* *********** *|* *** *** |
;* 2: |* ************ *|* *** **** |
;* 3: |****************|* ****** * |
;* 4: |* * ************|* ******** |
;* 5: | ***************| ********* |
;* 6: |* ************* |* ********* |
;* 7: |********* ***** |* ********* |
;* 8: |*************** |* ********* |
;* 9: |**** ********** |* ********* |
;* 10: |* ************* | *** ****** |
;* 11: |*************** |****** *** |
;* 12: | ************ |****** *** |
;* +---------------------------------+
;*
;* Done
;*
;* Epilog not removed
;* Collapsed epilog stages : 0
;*
;* Prolog not removed
;* Collapsed prolog stages : 0
;*
;* Minimum required memory pad : 0 bytes
;*
;* For further improvement on this loop, try option -mh2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -