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

📄 img_median_3x3_c.asm

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