📄 func.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.32 *
;* Date/Time created: Mon Nov 06 13:30:26 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
.sect ".cinit"
.align 8
.field IR_1,32
.field _a+0,32
.field 285,16 ; _a[0] @ 0
.field 65535,16 ; _a[1] @ 16
.field 122,16 ; _a[2] @ 32
.field 396,16 ; _a[3] @ 48
.field 65453,16 ; _a[4] @ 64
.field 62741,16 ; _a[5] @ 80
.field 873,16 ; _a[6] @ 96
.field 23,16 ; _a[7] @ 112
.field 986,16 ; _a[8] @ 128
.field 64192,16 ; _a[9] @ 144
.field 12,16 ; _a[10] @ 160
.field 60125,16 ; _a[11] @ 176
.field 65454,16 ; _a[12] @ 192
.field 2672,16 ; _a[13] @ 208
.field 65279,16 ; _a[14] @ 224
.field 65534,16 ; _a[15] @ 240
.field 5118,16 ; _a[16] @ 256
.field 65529,16 ; _a[17] @ 272
.field 65515,16 ; _a[18] @ 288
.field 0,16 ; _a[19] @ 304
.field 64130,16 ; _a[20] @ 320
.field 65535,16 ; _a[21] @ 336
.field 5,16 ; _a[22] @ 352
.field 112,16 ; _a[23] @ 368
.field 269,16 ; _a[24] @ 384
.field 65251,16 ; _a[25] @ 400
.field 63975,16 ; _a[26] @ 416
.field 167,16 ; _a[27] @ 432
.field 5073,16 ; _a[28] @ 448
.field 56208,16 ; _a[29] @ 464
.field 65535,16 ; _a[30] @ 480
.field 65534,16 ; _a[31] @ 496
.field 65280,16 ; _a[32] @ 512
.field 783,16 ; _a[33] @ 528
.field 254,16 ; _a[34] @ 544
.field 65528,16 ; _a[35] @ 560
.field 65533,16 ; _a[36] @ 576
.field 65535,16 ; _a[37] @ 592
.field 65527,16 ; _a[38] @ 608
.field 16,16 ; _a[39] @ 624
IR_1: .set 80
.sect ".text"
.global _a
.bss _a,80,8
.sym _a,_a, 51, 2, 640,, 40
.sect ".cinit"
.align 8
.field IR_2,32
.field _b+0,32
.field 0,16 ; _b[0] @ 0
.field 0,16 ; _b[1] @ 16
.field 3727,16 ; _b[2] @ 32
.field 47,16 ; _b[3] @ 48
.field 40052,16 ; _b[4] @ 64
.field 65535,16 ; _b[5] @ 80
.field 65291,16 ; _b[6] @ 96
.field 65400,16 ; _b[7] @ 112
.field 53404,16 ; _b[8] @ 128
.field 392,16 ; _b[9] @ 144
.field 1,16 ; _b[10] @ 160
.field 1983,16 ; _b[11] @ 176
.field 64868,16 ; _b[12] @ 192
.field 199,16 ; _b[13] @ 208
.field 0,16 ; _b[14] @ 224
.field 1106,16 ; _b[15] @ 240
.field 65422,16 ; _b[16] @ 256
.field 1,16 ; _b[17] @ 272
.field 65534,16 ; _b[18] @ 288
.field 65340,16 ; _b[19] @ 304
.field 7,16 ; _b[20] @ 320
.field 65528,16 ; _b[21] @ 336
.field 563,16 ; _b[22] @ 352
.field 63275,16 ; _b[23] @ 368
.field 4,16 ; _b[24] @ 384
.field 0,16 ; _b[25] @ 400
.field 65387,16 ; _b[26] @ 416
.field 880,16 ; _b[27] @ 432
.field 381,16 ; _b[28] @ 448
.field 64775,16 ; _b[29] @ 464
.field 0,16 ; _b[30] @ 480
.field 65486,16 ; _b[31] @ 496
.field 0,16 ; _b[32] @ 512
.field 25860,16 ; _b[33] @ 528
.field 65533,16 ; _b[34] @ 544
.field 65535,16 ; _b[35] @ 560
.field 65531,16 ; _b[36] @ 576
.field 426,16 ; _b[37] @ 592
.field 65342,16 ; _b[38] @ 608
.field 1194,16 ; _b[39] @ 624
.field 212,16 ; _b[40] @ 640
.field 65429,16 ; _b[41] @ 656
IR_2: .set 84
.sect ".text"
.global _b
.bss _b,84,8
.sym _b,_b, 51, 2, 672,, 42
.sect ".cinit"
.align 8
.field IR_3,32
.field _c+0,32
.field 285,16 ; _c[0] @ 0
.field 65535,16 ; _c[1] @ 16
.field 122,16 ; _c[2] @ 32
.field 396,16 ; _c[3] @ 48
.field 65453,16 ; _c[4] @ 64
.field 62741,16 ; _c[5] @ 80
.field 873,16 ; _c[6] @ 96
.field 23,16 ; _c[7] @ 112
.field 986,16 ; _c[8] @ 128
.field 64192,16 ; _c[9] @ 144
.field 12,16 ; _c[10] @ 160
.field 60125,16 ; _c[11] @ 176
.field 65454,16 ; _c[12] @ 192
.field 2672,16 ; _c[13] @ 208
.field 65279,16 ; _c[14] @ 224
.field 65534,16 ; _c[15] @ 240
.field 5118,16 ; _c[16] @ 256
.field 65529,16 ; _c[17] @ 272
.field 65515,16 ; _c[18] @ 288
.field 0,16 ; _c[19] @ 304
.field 64130,16 ; _c[20] @ 320
.field 65535,16 ; _c[21] @ 336
.field 5,16 ; _c[22] @ 352
.field 112,16 ; _c[23] @ 368
.field 269,16 ; _c[24] @ 384
.field 65251,16 ; _c[25] @ 400
.field 63975,16 ; _c[26] @ 416
.field 167,16 ; _c[27] @ 432
.field 5073,16 ; _c[28] @ 448
.field 56208,16 ; _c[29] @ 464
.field 65535,16 ; _c[30] @ 480
.field 65534,16 ; _c[31] @ 496
.field 65280,16 ; _c[32] @ 512
.field 783,16 ; _c[33] @ 528
.field 254,16 ; _c[34] @ 544
.field 65528,16 ; _c[35] @ 560
.field 65533,16 ; _c[36] @ 576
.field 65535,16 ; _c[37] @ 592
.field 65527,16 ; _c[38] @ 608
.field 16,16 ; _c[39] @ 624
IR_3: .set 80
.sect ".text"
.global _c
.bss _c,80,8
.sym _c,_c, 51, 2, 640,, 40
.global _d
.bss _d,80,8
.sym _d,_d, 51, 2, 640,, 40
.global _d1
.bss _d1,80,8
.sym _d1,_d1, 51, 2, 640,, 40
.global _d2
.bss _d2,80,8
.sym _d2,_d2, 51, 2, 640,, 40
.global _d3
.bss _d3,80,8
.sym _d3,_d3, 51, 2, 640,, 40
; c:\ti\c6000\cgtools\bin\opt6x.exe -p3 -v6400 -p3 -v6400 -q -s -O3 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1532_8 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TI1532_9 -w D:/DM64xApp/5stsrc/dataPack/Debug
.sect ".text"
.global _func1
.file "D:\DM64xApp\5stsrc\dataPack\func.c"
.sym _func1,_func1, 32, 2, 0
.func 1
;******************************************************************************
;* FUNCTION NAME: _func1 *
;* *
;* Regs Modified : A0,A1,A3,A4,A5,A6,B4,B5,B6,B7,B8 *
;* Regs Used : A0,A1,A3,A4,A5,A6,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! *
;* *
;******************************************************************************
_func1:
;** --------------------------------------------------------------------------*
.line 2
.sym _a,4, 19, 17, 32
.sym _b,20, 19, 17, 32
.sym _c,6, 19, 17, 32
.sym _N,22, 4, 17, 32
.sym _a,3, 19, 4, 32
.sym _b,3, 19, 4, 32
.sym _c,3, 19, 4, 32
.sym _N,22, 4, 4, 32
.sym L$1,4, 4, 4, 32
.sym U$14,21, 19, 4, 32
.sym U$9,5, 19, 4, 32
.sym U$11,23, 19, 4, 32
;** 8 ----------------------- // LOOP BELOW UNROLLED BY FACTOR(2)
;** ----------------------- U$9 = &b[-2];
;** ----------------------- U$11 = &a[-2];
;** ----------------------- U$14 = &c[-2];
;** 8 ----------------------- L$1 = N>>1;
;** ----------------------- #pragma MUST_ITERATE(10, 1073741823, 1)
;** ----------------------- #pragma LOOP_FLAGS(4098u)
;** -----------------------g2:
;** 8 ----------------------- *(U$14 += 2) = *(U$9 += 2)+*(U$11 += 2);
;** 8 ----------------------- U$14[1] = U$9[1]+U$11[1];
;** 9 ----------------------- if ( --L$1 ) goto g2;
;** ----------------------- return;
SUB .D2X A4,4,B7
SUB .D1X B4,4,A5
|| SUB .D2X A6,4,B5
.line 8
MVC .S2 CSR,B8
SHR .S1X B6,1,A4 ; |8|
|| AND .D2 -2,B8,B6
MV .D2 B7,B4
|| SUB .D1 A4,2,A0
|| MVC .S2 B6,CSR ; interrupts off
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;*
;* Loop source line : 6
;* Loop opening brace source line : 7
;* Loop closing brace source line : 9
;* Loop Unroll Multiple : 2x
;* Known Minimum Trip Count : 10
;* Known Max Trip Count Factor : 1
;* Loop Carried Dependency Bound(^) : 0
;* Unpartitioned Resource Bound : 3
;* Partitioned Resource Bound(*) : 3
;* Resource Partition:
;* A-side B-side
;* .L units 0 0
;* .S units 1 0
;* .D units 3* 3*
;* .M units 0 0
;* .X cross paths 1 1
;* .T address paths 3* 3*
;* Long read paths 0 0
;* Long write paths 0 0
;* Logical ops (.LS) 0 0 (.L or .S unit)
;* Addition ops (.LSD) 1 1 (.L or .S or .D unit)
;* Bound(.L .S .LS) 1 0
;* Bound(.L .S .D .LS .LSD) 2 2
;*
;* Searching for software pipeline schedule at ...
;* ii = 3 Schedule found with 3 iterations in parallel
;*
;* Register Usage Table:
;* +-----------------------------------------------------------------+
;* |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB|
;* |00000000001111111111222222222233|00000000001111111111222222222233|
;* |01234567890123456789012345678901|01234567890123456789012345678901|
;* |--------------------------------+--------------------------------|
;* 0: |** *** | **** |
;* 1: |** **** | ** * |
;* 2: |** *** | **** |
;* +-----------------------------------------------------------------+
;*
;* Done
;*
;* Epilog not removed
;* Collapsed epilog stages : 0
;*
;* Prolog not entirely removed
;* Collapsed prolog stages : 1
;*
;* Minimum required memory pad : 0 bytes
;*
;* Minimum safe trip count : 2 (after unrolling)
;*----------------------------------------------------------------------------*
;* SETUP CODE
;*
;* MV A3,B5
;* ADD 2,B5,B5
;*
;* SINGLE SCHEDULED ITERATION
;*
;* C24:
;* 0 LDH .D1T1 *++A5(4),A4 ; |8|
;* || LDH .D2T2 *++B4(4),B6 ; |8|
;* 1 LDH .D2T2 *+B4(2),B7 ; |8|
;* 2 LDH .D1T1 *+A5(2),A4 ; |8|
;* 3 [ A0] BDEC .S1 C24,A0 ; |9|
;* 4 NOP 2
;* 6 ADD .L1X B6,A4,A6 ; |8|
;* 7 STH .D1T1 A6,*++A3(4) ; |8|
;* || ADD .S2X B7,A4,B7 ; |8|
;* 8 STH .D2T2 B7,*++B5(4) ; |8|
;* ; BRANCH OCCURS ; |9|
;*----------------------------------------------------------------------------*
L1: ; PIPED LOOP PROLOG
LDH .D1T1 *++A5(4),A4 ; |8| (P) <0,0>
|| [ A0] BDEC .S1 L2,A0 ; |9| (P) <0,3>
|| LDH .D2T2 *++B4(4),B6 ; |8| (P) <0,0>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -