📄 dopt3.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.32 *
;* Date/Time created: Mon Nov 06 17:11:17 2006 *
;******************************************************************************
;******************************************************************************
;* GLOBAL FILE PARAMETERS *
;* *
;* Architecture : TMS320C64xx *
;* Optimization : Enabled at level 3 *
;* Optimizing for : Speed *
;* Based on options: -o3, no -ms *
;* Endian : Little *
;* Interrupt Thrshld : Disabled *
;* Memory Model : Small *
;* Calls to RTS : Near *
;* Pipelining : Enabled *
;* Speculative Load : Disabled *
;* Memory Aliases : Presume are aliases (pessimistic) *
;* Debug Info : COFF Debug *
;* *
;******************************************************************************
.asg A15, FP
.asg B14, DP
.asg B15, SP
.global $bss
.file "dopt3.c"
; c:\ti\c6000\cgtools\bin\opt6x.exe -v6400 -O3 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1576_2 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1576_5 -w D:/DM64xApp/5stsrc/debugc/Debug
.sect ".text"
.global _dopt3
.sym _dopt3,_dopt3, 36, 2, 0
.func 2
;******************************************************************************
;* FUNCTION NAME: _dopt3 *
;* *
;* Regs Modified : A0,A3,A4,A5,A6,A7,A8,A9,B0,B4,B5,B6,A16 *
;* Regs Used : A0,A3,A4,A5,A6,A7,A8,A9,B0,B3,B4,B5,B6,DP,SP,A16 *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_dopt3:
;** --------------------------------------------------------------------------*
.line 2
.sym _a,4, 19, 17, 32
.sym _b,20, 19, 17, 32
.sym _N,6, 4, 17, 32
.sym _sum1,8, 4, 4, 32
.sym _sum0,7, 4, 4, 32
.sym _a,3, 19, 4, 32
.sym _b,3, 19, 4, 32
.sym _N,6, 4, 4, 32
MV .D1X B4,A3 ; |3|
.line 9
ADD .D1 1,A6,A5 ; |10|
NOP 1
SHR .S2X A5,1,B6 ; |10|
.line 5
MVC .S2 CSR,B4
AND .D2 -2,B4,B5
SUB .D2 B6,3,B0
|| MVC .S2 B5,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 9
;* Loop opening brace source line : 10
;* Loop closing brace source line : 12
;* Known Minimum Trip Count : 100
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 0
;* Unpartitioned Resource Bound : 1
;* Partitioned Resource Bound(*) : 2
;* Resource Partition:
;* A-side B-side
;* .L units 0 0
;* .S units 0 1
;* .D units 2* 0
;* .M units 1 0
;* .X cross paths 0 0
;* .T address paths 2* 2*
;* Long read paths 0 0
;* Long write paths 0 0
;* Logical ops (.LS) 0 0 (.L or .S unit)
;* Addition ops (.LSD) 2 0 (.L or .S or .D unit)
;* Bound(.L .S .LS) 0 1
;* Bound(.L .S .D .LS .LSD) 2* 1
;*
;* Searching for software pipeline schedule at ...
;* ii = 2 Schedule found with 6 iterations in parallel
;* Done
;*
;* Epilog not removed
;* Collapsed epilog stages : 0
;*
;* Prolog not entirely removed
;* Collapsed prolog stages : 3
;*
;* Minimum required memory pad : 0 bytes
;*
;* For further improvement on this loop, try option -mh12
;*
;* Minimum safe trip count : 5
;*----------------------------------------------------------------------------*
L1: ; PIPED LOOP PROLOG
[ B0] BDEC .S2 L2,B0 ; |12| (P) <0,5>
MV .S1 A4,A6
|| LDNW .D1T1 *A3++(4),A16 ; |10| (P) <0,0>
ZERO .S1 A8 ; |6|
|| LDNW .D1T1 *A6++(4),A9 ; |10| (P) <0,1>
|| [ B0] BDEC .S2 L2,B0 ; |12| (P) <1,5>
ZERO .L1 A7 ; |6|
|| MVK .S1 0x4000,A0 ; init prolog collapse predicate
|| LDNW .D1T1 *A3++(4),A16 ; |10| (P) <1,0>
;** --------------------------------------------------------------------------*
L2: ; PIPED LOOP KERNEL
[ A0] MPYSU .M1 2,A0,A0 ; <0,9>
|| [ B0] BDEC .S2 L2,B0 ; |12| <2,5>
|| LDNW .D1T1 *A6++(4),A9 ; |10| <4,1>
[!A0] ADD .S1 A4,A7,A7 ; |10| <0,10>
|| [!A0] ADD .L1 A5,A8,A8 ; |11| <0,10>
|| MPY2 .M1 A9,A16,A5:A4 ; |10| <2,6>
|| LDNW .D1T1 *A3++(4),A16 ; |10| <5,0>
;** --------------------------------------------------------------------------*
L3: ; PIPED LOOP EPILOG
LDNW .D1T1 *A6++(4),A9 ; |10| (E) <5,1>
ADD .D1 A4,A7,A3 ; |10| (E) <1,10>
|| ADD .S1 A5,A8,A6 ; |11| (E) <1,10>
|| MPY2 .M1 A9,A16,A5:A4 ; |10| (E) <3,6>
NOP 1
ADD .D1 A4,A3,A6 ; |10| (E) <2,10>
|| ADD .S1 A5,A6,A3 ; |11| (E) <2,10>
|| MPY2 .M1 A9,A16,A5:A4 ; |10| (E) <4,6>
NOP 1
ADD .D1 A4,A6,A3 ; |10| (E) <3,10>
|| ADD .S1 A5,A3,A6 ; |11| (E) <3,10>
|| MPY2 .M1 A9,A16,A5:A4 ; |10| (E) <5,6>
NOP 1
ADD .D1 A5,A6,A3 ; |11| (E) <4,10>
|| ADD .S1 A4,A3,A6 ; |10| (E) <4,10>
MVC .S2 B4,CSR ; interrupts on
ADD .D1 A4,A6,A4 ; |10| (E) <5,10>
|| ADD .S1 A5,A3,A3 ; |11| (E) <5,10>
.line 13
ADD .D1 A3,A4,A4 ; |14|
.line 14
RETNOP .S2 B3,5 ; |15|
; BRANCH OCCURS ; |15|
.endfunc 15,000000000h,0
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -