📄 lesson1_c.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.32 *
;* Date/Time created: Mon Nov 06 15:25:15 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 "lesson1_c.c"
; c:\ti\c6000\cgtools\bin\opt6x.exe -v6400 -q -O3 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1048_2 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1048_5 -w ./Debug
.sect ".text"
.global _lesson1_c
.sym _lesson1_c,_lesson1_c, 32, 2, 0
.func 22
;******************************************************************************
;* FUNCTION NAME: _lesson1_c *
;* *
;* Regs Modified : A0,A3,A4,A5,A6,A7,A8,B0,B1,B4,B5,B6,B7,B8 *
;* Regs Used : A0,A3,A4,A5,A6,A7,A8,B0,B1,B3,B4,B5,B6,B7,B8,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_lesson1_c:
;** --------------------------------------------------------------------------*
.line 3
.sym _xptr,4, 19, 17, 32
.sym _yptr,20, 19, 17, 32
.sym _zptr,6, 19, 17, 32
.sym _w_sum,22, 19, 17, 32
.sym _N,8, 4, 17, 32
.sym _w2,21, 3, 4, 16
.sym _w1,6, 3, 4, 16
.sym _xptr,3, 19, 4, 32
.sym _yptr,20, 19, 4, 32
.sym _zptr,4, 19, 4, 32
.sym _w_sum,7, 19, 4, 32
.sym _N,16, 4, 4, 32
MV .D2X A8,B0 ; |24|
|| MV .D1X B6,A7 ; |24|
|| MV .S1 A6,A4 ; |24|
|| MV .L1 A4,A3 ; |24|
.line 7
LDH .D1T1 *A4,A6 ; |28|
.line 8
LDH .D1T2 *+A4(2),B5 ; |29|
.line 9
CMPGT .L2 B0,0,B1 ; |30|
[!B1] BNOP .S1 L6,5 ; |30|
; BRANCH OCCURS ; |30|
;** --------------------------------------------------------------------------*
.line 11
CMPGT .L2 B0,4,B1
[ B1] BNOP .S1 L2,5
; BRANCH OCCURS
;** --------------------------------------------------------------------------*
;** BEGIN LOOP L1
;** --------------------------------------------------------------------------*
L1:
.line 13
LDH .D2T2 *B4++,B6 ; |34|
LDH .D1T1 *A3++,A4 ; |34|
NOP 3
MPY .M2 B6,B5,B6 ; |34|
MPY .M1 A4,A6,A4 ; |34|
NOP 1
ADD .D1X B6,A4,A4 ; |34|
SHR .S1 A4,15,A4 ; |34|
STH .D1T1 A4,*A7++ ; |34|
.line 14
SUB .D2 B0,1,B0 ; |35|
[ B0] BNOP .S1 L1,5 ; |35|
; BRANCH OCCURS ; |35|
;** --------------------------------------------------------------------------*
BNOP .S1 L6,5
; BRANCH OCCURS
;** --------------------------------------------------------------------------*
L2:
MVC .S2 CSR,B8
AND .D2 -2,B8,B6
SUB .D2 B0,3,B0
|| MVC .S2 B6,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 30
;* Loop opening brace source line : 31
;* Loop closing brace source line : 35
;* Known Minimum Trip Count : 1
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 0
;* Unpartitioned Resource Bound : 2
;* Partitioned Resource Bound(*) : 2
;* Resource Partition:
;* A-side B-side
;* .L units 0 0
;* .S units 1 1
;* .D units 2* 1
;* .M units 1 1
;* .X cross paths 1 0
;* .T address paths 2* 1
;* Long read paths 0 0
;* Long write paths 0 0
;* Logical ops (.LS) 0 0 (.L or .S unit)
;* Addition ops (.LSD) 1 0 (.L or .S or .D unit)
;* Bound(.L .S .LS) 1 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 -mh10
;*
;* Minimum safe trip count : 5
;*----------------------------------------------------------------------------*
L3: ; PIPED LOOP PROLOG
[ B0] BDEC .S2 L4,B0 ; |35| (P) <0,5>
LDH .D2T2 *B4++,B6 ; |34| (P) <0,0>
LDH .D1T1 *A3++,A5 ; |34| (P) <0,1>
|| [ B0] BDEC .S2 L4,B0 ; |35| (P) <1,5>
MVK .D1 0x3,A0 ; init prolog collapse predicate
|| LDH .D2T2 *B4++,B6 ; |34| (P) <1,0>
;** --------------------------------------------------------------------------*
L4: ; PIPED LOOP KERNEL
SHR .S1 A4,15,A8 ; |34| <0,9>
|| [ B0] BDEC .S2 L4,B0 ; |35| <2,5>
|| MPY .M2 B6,B5,B7 ; |34| <2,5>
|| LDH .D1T1 *A3++,A5 ; |34| <4,1>
[ A0] SUB .S1 A0,1,A0 ; <0,10>
|| [!A0] STH .D1T1 A8,*A7++ ; |34| <0,10>
|| ADD .L1X B7,A4,A4 ; |34| <1,8>
|| MPY .M1 A5,A6,A4 ; |34| <2,6>
|| LDH .D2T2 *B4++,B6 ; |34| <5,0>
;** --------------------------------------------------------------------------*
L5: ; PIPED LOOP EPILOG
MPY .M2 B6,B5,B4 ; |34| (E) <3,5>
|| LDH .D1T1 *A3++,A5 ; |34| (E) <5,1>
|| SHR .S1 A4,15,A8 ; |34| (E) <1,9>
STH .D1T1 A8,*A7++ ; |34| (E) <1,10>
|| ADD .S1X B7,A4,A3 ; |34| (E) <2,8>
|| MPY .M1 A5,A6,A3 ; |34| (E) <3,6>
MPY .M2 B6,B5,B4 ; |34| (E) <4,5>
|| SHR .S1 A3,15,A4 ; |34| (E) <2,9>
STH .D1T1 A4,*A7++ ; |34| (E) <2,10>
|| ADD .S1X B4,A3,A3 ; |34| (E) <3,8>
|| MPY .M1 A5,A6,A3 ; |34| (E) <4,6>
MPY .M2 B6,B5,B4 ; |34| (E) <5,5>
|| SHR .S1 A3,15,A4 ; |34| (E) <3,9>
STH .D1T1 A4,*A7++ ; |34| (E) <3,10>
|| ADD .S1X B4,A3,A3 ; |34| (E) <4,8>
|| MPY .M1 A5,A6,A4 ; |34| (E) <5,6>
;** --------------------------------------------------------------------------*
MVC .S2 B8,CSR ; interrupts on
|| SHR .S1 A3,15,A3 ; |34| (E) <4,9>
STH .D1T1 A3,*A7++ ; |34| (E) <4,10>
|| ADD .S1X B4,A4,A3 ; |34| (E) <5,8>
SHR .S1 A3,15,A3 ; |34| (E) <5,9>
STH .D1T1 A3,*A7++ ; |34| (E) <5,10>
;** --------------------------------------------------------------------------*
L6:
.line 16
RETNOP .S2 B3,5 ; |37|
; BRANCH OCCURS ; |37|
.endfunc 37,000000000h,0
;******************************************************************************
;* TYPE INFORMATION *
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -