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

📄 notch2.asm

📁 DSP6000+AD535语音采集的单频噪声消除的C语音代码
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                    *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
	.line	2
           STW     .D2T2   B3,*SP--(8)       ; |38| 
	.line	3
           CALL    .S1     _comm_intr        ; |39| 
           MVKL    .S2     RL0,B3            ; |39| 
           MVKH    .S2     RL0,B3            ; |39| 
           NOP             3
RL0:       ; CALL OCCURS                     ; |39| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Bad loop structure
;*----------------------------------------------------------------------------*
L1:    
	.line	4
           B       .S1     L1                ; |40| 
           NOP             5
           ; BRANCH OCCURS                   ; |40| 
;** --------------------------------------------------------------------------*
	.endfunc	41,000080000h,8



	.sect	".text"
	.global	_c_int11
	.sym	_c_int11,_c_int11, 32, 2, 0
	.func	10

;******************************************************************************
;* FUNCTION NAME: _c_int11                                                    *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,B10,SP                                  *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,B10,DP,SP                               *
;*   Local Frame Size  : 0 Args + 0 Auto + 88 Save = 88 byte                  *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_c_int11:
;** --------------------------------------------------------------------------*
	.line	2
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 17
;*      Loop opening brace source line   : 18
;*      Loop closing brace source line   : 18
;*      Loop Unroll Multiple             : 4x
;*      Known Minimum Trip Count         : 22
;*      Known Maximum Trip Count         : 22
;*      Known Max Trip Count Factor      : 22
;*      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        0     
;*      .D units                     2*       2*    
;*      .M units                     2*       2*    
;*      .X cross paths               2*       2*    
;*      .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        3     (.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 = 2  Schedule found with 5 iterations in parallel
;*      Done
;*
;*      Epilog not removed
;*      Collapsed epilog stages     : 0
;*
;*      Prolog not entirely removed
;*      Collapsed prolog stages     : 2
;*
;*      Minimum required memory pad : 0 bytes
;*
;*      Minimum safe trip count     : 4 (after unrolling)
;*----------------------------------------------------------------------------*
L2:    ; PIPED LOOP PROLOG
           STW     .D2T2   B10,*SP--(88)     ; |11| 
           STW     .D2T2   B9,*+SP(84)       ; |11| 
           STW     .D2T2   B8,*+SP(80)       ; |11| 
           STW     .D2T2   B7,*+SP(76)       ; |11| 
           STW     .D2T2   B6,*+SP(72)       ; |11| 
           STW     .D2T2   B5,*+SP(68)       ; |11| 
           STW     .D2T2   B4,*+SP(64)       ; |11| 
           STW     .D2T2   B3,*+SP(60)       ; |11| 
           STW     .D2T2   B2,*+SP(56)       ; |11| 
           STW     .D2T2   B1,*+SP(52)       ; |11| 
           STW     .D2T2   B0,*+SP(48)       ; |11| 
           STW     .D2T1   A9,*+SP(44)       ; |11| 
           STW     .D2T1   A8,*+SP(40)       ; |11| 
           STW     .D2T1   A7,*+SP(36)       ; |11| 
           STW     .D2T1   A6,*+SP(32)       ; |11| 
           STW     .D2T1   A5,*+SP(28)       ; |11| 
           STW     .D2T1   A4,*+SP(24)       ; |11| 
           STW     .D2T1   A3,*+SP(20)       ; |11| 
           STW     .D2T1   A2,*+SP(16)       ; |11| 
           STW     .D2T1   A1,*+SP(12)       ; |11| 
           STW     .D2T1   A0,*+SP(8)        ; |11| 
	.line	5
           CALL    .S2     _input_sample     ; |14| 
           NOP             2
           MVK     .S2     (_dly1-$bss),B4   ; |14| 
           MVKL    .S2     RL1,B3            ; |14| 

           ADD     .D2     DP,B4,B10         ; |14| 
||         MVKH    .S2     RL1,B3            ; |14| 

RL1:       ; CALL OCCURS                     ; |14| 
           NOP             1
           STH     .D2T1   A4,*B10           ; |14| 
	.line	7
           ZERO    .D2     B4                ; |16| 
           STW     .D2T2   B4,*+DP(_y2out)   ; |16| 
	.line	8
           MVK     .S2     0x16,B9           ; |17| 

           SUB     .D2     B9,5,B0
||         MVC     .S2     CSR,B9

           AND     .S2     -2,B9,B7

           MVK     .S1     (_h900-8-$bss),A0
||         MVC     .S2     B7,CSR            ; interrupts off

           SUB     .L1X    B10,8,A5
||         ADD     .S2X    DP,A0,B5
||         B       .S1     L3                ; |18| (P) <0,3> 

           LDW     .D2T2   *++B5(8),B8       ; |18| (P) <0,0> 
||         LDW     .D1T1   *++A5(8),A4       ; |18| (P) <0,0> 

           ZERO    .L1     A3                ; |17| 
||         LDW     .D1T1   *+A5(4),A4        ; |18| (P) <0,1> 
||         B       .S1     L3                ; |18| (P) <1,3> 
||         LDW     .D2T2   *+B5(4),B8        ; |18| (P) <0,1> 

           ZERO    .S2     B6                ; |17| 
||         MVK     .S1     0x2,A1            ; init prolog collapse predicate
||         ZERO    .L1     A0                ; |17| 
||         LDW     .D1T1   *++A5(8),A4       ; |18| (P) <1,0> 
||         LDW     .D2T2   *++B5(8),B8       ; |18| (P) <1,0> 

;** --------------------------------------------------------------------------*
L3:    ; PIPED LOOP KERNEL

   [!A1]   ADD     .S2     B7,B6,B6          ; |18| <0,7> 
|| [!A1]   ADD     .L1     A6,A3,A3          ; |18| <0,7> 
||         MPYH    .M2X    B8,A4,B7          ; |18| <1,5> 
||         MPY     .M1X    B8,A4,A6          ; |18| <1,5> 
|| [ B0]   B       .S1     L3                ; |18| <2,3> 
||         LDW     .D1T1   *+A5(4),A4        ; |18| <3,1> 
||         LDW     .D2T2   *+B5(4),B8        ; |18| <3,1> 

   [ A1]   SUB     .S1     A1,1,A1           ; <0,8> 
|| [!A1]   ADD     .L2     B7,B4,B4          ; |18| <0,8> 
|| [!A1]   ADD     .L1     A6,A0,A0          ; |18| <0,8> 
||         MPYH    .M2X    B8,A4,B7          ; |18| <1,6> 
||         MPY     .M1X    B8,A4,A6          ; |18| <1,6> 
|| [ B0]   SUB     .S2     B0,1,B0           ; |18| <3,2> 
||         LDW     .D1T1   *++A5(8),A4       ; |18| <4,0> 
||         LDW     .D2T2   *++B5(8),B8       ; |18| <4,0> 

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 21
;*      Loop opening brace source line   : 22
;*      Loop closing brace source line   : 22
;*      Loop Unroll Multiple             : 4x
;*      Known Minimum Trip Count         : 22
;*      Known Maximum Trip Count         : 22
;*      Known Max Trip Count Factor      : 22
;*      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        0     
;*      .D units                     2*       2*    
;*      .M units                     2*       2*    
;*      .X cross paths               2*       2*    
;*      .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        3     (.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 = 2  Schedule found with 5 iterations in parallel
;*      Done
;*
;*      Epilog not removed
;*      Collapsed epilog stages     : 0
;*
;*      Prolog not entirely removed
;*      Collapsed prolog stages     : 2
;*
;*      Minimum required memory pad : 0 bytes
;*
;*      Minimum safe trip count     : 4 (after unrolling)
;*----------------------------------------------------------------------------*
L4:    ; PIPED LOOP EPILOG AND PROLOG

           ADD     .S2     B7,B6,B5          ; |18| (E) <1,7> 
||         ADD     .S1     A6,A3,A3          ; |18| (E) <1,7> 
||         MPY     .M1X    B8,A4,A0          ; |18| (E) <2,5> 
||         LDW     .D1T1   *+A5(4),A4        ; |18| (E) <4,1> 
||         LDW     .D2T2   *+B5(4),B8        ; |18| (E) <4,1> 
||         MPYH    .M2X    B8,A4,B7          ; |18| (E) <2,5> 

           ADD     .S2     B7,B4,B4          ; |18| (E) <1,8> 
||         ADD     .D1     A6,A0,A5          ; |18| (E) <1,8> 
||         MPYH    .M2X    B8,A4,B7          ; |18| (E) <2,6> 
||         MPY     .M1X    B8,A4,A0          ; |18| (E) <2,6> 
||         LDH     .D2T2   *+DP(_h900+176),B6

           ADD     .S2     B7,B5,B0          ; |18| (E) <2,7> 
||         ADD     .D1     A0,A3,A3          ; |18| (E) <2,7> 
||         MPY     .M1X    B8,A4,A0          ; |18| (E) <3,5> 
||         MPYH    .M2X    B8,A4,B7          ; |18| (E) <3,5> 
||         LDH     .D2T2   *+DP(_dly1+176),B5

           ADD     .D2     B7,B4,B4          ; |18| (E) <2,8> 
||         ADD     .D1     A0,A5,A5          ; |18| (E) <2,8> 
||         MPY     .M1X    B8,A4,A0          ; |18| (E) <3,6> 
||         MPYH    .M2X    B8,A4,B7          ; |18| (E) <3,6> 

           ADD     .D2     B7,B0,B0          ; |18| (E) <3,7> 
||         ADD     .D1     A0,A3,A3          ; |18| (E) <3,7> 
||         MPYH    .M2X    B8,A4,B7          ; |18| (E) <4,5> 
||         MPY     .M1X    B8,A4,A4          ; |18| (E) <4,5> 

           ADD     .D2     B7,B4,B4          ; |18| (E) <3,8> 
||         ADD     .D1     A0,A5,A0          ; |18| (E) <3,8> 
||         MPYH    .M2X    B8,A4,B7          ; |18| (E) <4,6> 
||         MPY     .M1X    B8,A4,A6          ; |18| (E) <4,6> 

           MVC     .S2     B9,CSR            ; interrupts on
||         ADD     .D1     A4,A3,A3          ; |18| (E) <4,7> 
||         ADD     .D2     B7,B0,B8          ; |18| (E) <4,7> 

           ADD     .D2     B7,B4,B5          ; |18| (E) <4,8> 
||         ADD     .D1     A6,A0,A0          ; |18| (E) <4,8> 
||         MPY     .M2     B6,B5,B4

           NOP             1
           ADD     .S2X    A3,B4,B4
           ADD     .D2     B8,B4,B4
           ADD     .S2X    A0,B4,B4
           ADD     .D2     B5,B4,B5
           STW     .D2T2   B5,*+DP(_y1out)
	.line	11
           MVK     .S2     (_dly2-$bss),B4   ; |20| 

           SHR     .S2     B5,15,B5          ; |20| 
||         ADD     .D2     DP,B4,B4          ; |20| 

           STH     .D2T2   B5,*B4            ; |20| 
	.line	12

           ZERO    .D2     B4                ; |21| 
||         ZERO    .D1     A3                ; |21| 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -