⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func.asm

📁 DSP培训 作业【源码】
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;******************************************************************************
;* 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 + -