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

📄 chan_estimation.asm

📁 详细的OFDM设计过程
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	.line	5
           MVC     .S2     CSR,B11

           LDW     .D2T2   *+B8(4),B5        ; |87| (P) <0,0> 
||         AND     .S2     -2,B11,B4

           LDW     .D1T1   *+A0(4),A4        ; |87| (P) <0,1> 
||         LDW     .D2T2   *B8++(8),B4       ; |87| (P) <0,1> 
||         MVC     .S2     B4,CSR            ; interrupts off

           LDW     .D1T1   *A0++(8),A5       ; |87| (P) <0,2> 
           ADD     .S1X    4,B3,A3

           ADD     .S2     3,B6,B0
||         LDW     .D2T2   *+B8(4),B10       ; |87| (P) <1,0> 

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 85
;*      Loop opening brace source line   : 86
;*      Loop closing brace source line   : 89
;*      Known Minimum Trip Count         : 124
;*      Known Maximum Trip Count         : 124
;*      Known Max Trip Count Factor      : 124
;*      Loop Carried Dependency Bound(^) : 4
;*      Unpartitioned Resource Bound     : 3
;*      Partitioned Resource Bound(*)    : 3
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     3*       3*    
;*      .S units                     1        0     
;*      .D units                     3*       3*    
;*      .M units                     3*       3*    
;*      .X cross paths               2        2     
;*      .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)          0        1     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             2        2     
;*      Bound(.L .S .D .LS .LSD)     3*       3*    
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 4  Schedule found with 8 iterations in parallel
;*      Done
;*
;*      Collapsed epilog stages     : 7
;*      Prolog not entirely removed
;*      Collapsed prolog stages     : 4
;*
;*      Minimum required memory pad : 0 bytes
;*
;*      For further improvement on this loop, try option -mh56
;*
;*      Minimum safe trip count     : 3
;*----------------------------------------------------------------------------*
L4:    ; PIPED LOOP PROLOG

           SUB     .S1X    B0,6,A1
||         LDW     .D2T2   *B8++(8),B5       ; |87| (P) <1,1> 
||         LDW     .D1T1   *+A0(4),A5        ; |87| (P) <1,1> 

           MPYSP   .M1X    B4,A4,A6          ; |88| (P) <0,6> 
||         LDW     .D1T1   *A0++(8),A5       ; |87| (P) <1,2> 
||         MPYSP   .M2X    B5,A4,B6          ; |87| (P) <0,6> 

           ZERO    .D2     B7                ; |83| 
||         MPYSP   .M1X    B5,A5,A7          ; |88| (P) <0,7> 
||         B       .S1     L5                ; |89| (P) <0,23> 
||         MPYSP   .M2X    B4,A5,B4          ; |87| (P) <0,7> 

           ZERO    .D1     A4                ; |83| 
||         MVK     .S2     0x4,B2            ; init prolog collapse predicate
||         SUB     .L2     B0,3,B1
||         SUB     .S1X    B0,5,A2
||         LDW     .D2T2   *+B8(4),B10       ; |87| (P) <2,0> 

;** --------------------------------------------------------------------------*
L5:    ; PIPED LOOP KERNEL

   [!B2]   ADDSP   .L2     B4,B7,B7          ; |87| <0,25>  ^ 
|| [!B2]   ADDSP   .L1     A5,A4,A4          ; |88| <0,25>  ^ 
||         MPYSP   .M1     A6,A6,A5          ; |88| <1,21> 
|| [ A2]   LDW     .D2T2   *B8++(8),B5       ; |87| <6,1> 
|| [ A2]   LDW     .D1T1   *+A0(4),A5        ; |87| <6,1> 

   [ B0]   SUB     .D2     B0,1,B0           ; |89| <1,22> 
||         MPYSP   .M2X    B10,A5,B6         ; |87| <5,6> 
||         MPYSP   .M1X    B5,A5,A6          ; |88| <5,6> 
|| [ A2]   LDW     .D1T1   *A0++(8),A5       ; |87| <6,2> 

   [ B2]   SUB     .S2     B2,1,B2           ; <0,27> 
|| [ B0]   B       .S1     L5                ; |89| <1,23> 
|| [ B1]   LDW     .D2T2   *++B3(8),B6       ; |87| <4,11> 
|| [ B1]   LDW     .D1T1   *++A3(8),A5       ; |88| <4,11> 
||         ADDSP   .L1     A6,A7,A8          ; |88| <4,11> 
||         SUBSP   .L2     B4,B6,B9          ; |87| <4,11> 
||         MPYSP   .M2X    B5,A5,B4          ; |87| <5,7> 
||         MPYSP   .M1X    B10,A5,A7         ; |88| <5,7> 

   [ B1]   SUB     .S2     B1,1,B1           ; <0,28> 
|| [ A2]   SUB     .D1     A2,1,A2           ; <0,28> 
|| [ A1]   SUB     .S1     A1,1,A1           ; <0,28> 
||         MPYSP   .M2     B5,B5,B4          ; |87| <2,20> 
||         SUBSP   .L2     B6,B9,B5          ; |87| <3,16> 
||         SUBSP   .L1     A5,A8,A6          ; |88| <3,16> 
|| [ A1]   LDW     .D2T2   *+B8(4),B10       ; |87| <7,0> 

;** --------------------------------------------------------------------------*
L6:    ; PIPED LOOP EPILOG
           NOP             3

           MV      .S1X    B7,A5
||         MVC     .S2     B11,CSR           ; interrupts on

	.line	12
           ADDSP   .L1     A4,A5,A4          ; |90| 
	.line	13
           LDW     .D2T2   *+SP(8),B3        ; |91| 
           LDW     .D2T2   *+SP(12),B10      ; |91| 
           LDW     .D2T2   *++SP(16),B11     ; |91| 
           NOP             2
           RET     .S2     B3                ; |91| 
           NOP             5
           ; BRANCH OCCURS                   ; |91| 
	.endfunc	91,00c080000h,16



	.sect	".text"
	.global	_filter_estimation
	.sym	_filter_estimation,_filter_estimation, 32, 2, 0
	.func	32

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

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_filter_estimation:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_pilots,4, 22, 17, 32
	.sym	_received_pilots,20, 22, 17, 32
	.sym	_pilots_prod,6, 22, 17, 32
	.sym	_lambda,22, 6, 17, 32
	.sym	_alpha,8, 22, 17, 32
	.sym	_beta,24, 22, 17, 32
	.sym	_h_hat,10, 22, 17, 32
	.sym	_slask,26, 22, 17, 32
	.sym	_slask,26, 22, 4, 32
	.sym	_h_hat,10, 22, 4, 32
	.sym	_beta,12, 22, 4, 32
	.sym	_alpha,13, 22, 4, 32
	.sym	_pilots_prod,11, 22, 4, 32
	.sym	_received_pilots,0, 22, 4, 32
	.sym	_pilots,0, 22, 4, 32
	.sym	_lambda,14, 6, 4, 32
           STW     .D2T2   B3,*SP--(24)      ; |33| 
           STW     .D2T1   A13,*+SP(20)      ; |33| 
           STW     .D2T1   A12,*+SP(16)      ; |33| 
           STW     .D2T1   A14,*+SP(12)      ; |33| 
           STW     .D2T1   A11,*+SP(8)       ; |33| 
           MV      .S1X    B8,A12            ; |33| 

           MV      .D1     A6,A11            ; |33| 
||         MV      .L1     A8,A13            ; |33| 
||         MV      .S1X    B6,A14            ; |33| 

	.line	8
           MVKL    .S2     _prod_element_conj,B5 ; |39| 
           MVKH    .S2     _prod_element_conj,B5 ; |39| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 42
;*      Loop opening brace source line   : 42
;*      Loop closing brace source line   : 46
;*      Known Minimum Trip Count         : 248
;*      Known Maximum Trip Count         : 248
;*      Known Max Trip Count Factor      : 248
;*      Loop Carried Dependency Bound(^) : 28
;*      Unpartitioned Resource Bound     : 3
;*      Partitioned Resource Bound(*)    : 3
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     1        1     
;*      .S units                     1        0     
;*      .D units                     3*       3*    
;*      .M units                     2        2     
;*      .X cross paths               1        1     
;*      .T address paths             3*       3*    
;*      Long read paths              1        1     
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        0     (.L or .S unit)
;*      Addition ops (.LSD)          0        1     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             1        1     
;*      Bound(.L .S .D .LS .LSD)     2        2     
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 28 Schedule found with 1 iterations in parallel
;*      Done
;*
;*      Collapsed epilog stages     : 0
;*      Collapsed prolog stages     : 0
;*
;*      Minimum safe trip count     : 1
;*----------------------------------------------------------------------------*
L7:    ; PIPED LOOP PROLOG
           CALL    .S2     B5                ; |39| 
           NOP             2
           MVK     .S2     0xf8,B6           ; |39| 
           MVKL    .S2     RL1,B3            ; |39| 

           MV      .S1X    B10,A6            ; |39| 
||         MVKH    .S2     RL1,B3            ; |39| 

RL1:       ; CALL OCCURS                     ; |39| 
           NOP             1
           ZERO    .D1     A0

           MV      .D1     A11,A6
||         MVKH    .S1     0x3f800000,A0

           MV      .D1     A13,A5
||         MV      .S2X    A12,B5
||         MV      .S1X    B10,A3
||         SUBSP   .L1     A0,A14,A4

	.line	11

           MV      .L2X    A14,B4
||         MVC     .S2     CSR,B8

           MVK     .S2     0xf8,B0           ; |42| 
||         AND     .L2     -2,B8,B7

           MV      .L2X    A5,B6
||         MVC     .S2     B7,CSR            ; interrupts off

;** --------------------------------------------------------------------------*
L8:    ; PIPED LOOP KERNEL

           LDW     .D1T1   *A3++,A0          ; |44| <0,0>  ^ 
||         LDW     .D2T2   *B6++,B7          ; |44| <0,0>  ^ 

           NOP             4

           MPYSP   .M1     A4,A0,A0          ; |44| <0,5>  ^ 
||         MPYSP   .M2     B4,B7,B7          ; |44| <0,5>  ^ 

           NOP             3
           ADDSP   .L2X    B7,A0,B7          ; |44| <0,9>  ^ 
           NOP             3
           STW     .D1T2   B7,*A5++          ; |44| <0,13>  ^ 

           LDW     .D1T1   *A6++,A0          ; |45| <0,14>  ^ 
||         LDW     .D2T2   *B5,B7            ; |45| <0,14>  ^ 

           NOP             4

           MPYSP   .M1     A4,A0,A0          ; |45| <0,19>  ^ 
||         MPYSP   .M2     B4,B7,B7          ; |45| <0,19>  ^ 

           NOP             1
   [ B0]   SUB     .D2     B0,1,B0           ; |46| <0,21> 
   [ B0]   B       .S1     L8                ; |46| <0,22> 
           ADDSP   .L1X    B7,A0,A0          ; |45| <0,23>  ^ 
           NOP             3
           STW     .D2T1   A0,*B5++          ; |45| <0,27>  ^ 
;** --------------------------------------------------------------------------*
L9:    ; PIPED LOOP EPILOG
           MVC     .S2     B8,CSR            ; interrupts on
	.line	18

           MV      .D1     A10,A6            ; |49| 
||         MV      .L1     A13,A4            ; |49| 
||         MV      .L2X    A12,B4            ; |49| 
||         MVKL    .S2     RL2,B3            ; |49| 
||         MVKL    .S1     _div_element,A0   ; |49| 

           MVKH    .S2     RL2,B3            ; |49| 
||         MVKH    .S1     _div_element,A0   ; |49| 

           CALL    .S2X    A0                ; |49| 
           MVK     .S2     0xf8,B6           ; |49| 
           NOP             4
RL2:       ; CALL OCCURS                     ; |49| 
	.line	19
           NOP             1
           LDW     .D2T1   *+SP(12),A14      ; |50| 
           LDDW    .D2T1   *+SP(16),A13:A12  ; |50| 
           LDW     .D2T1   *+SP(8),A11       ; |50| 
           LDW     .D2T2   *++SP(24),B3      ; |50| 
           NOP             4
           RET     .S2     B3                ; |50| 
           NOP             5
           ; BRANCH OCCURS                   ; |50| 
	.endfunc	50,000087800h,24


;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_div_element
	.global	_prod_element_conj
	.global	__divd

;******************************************************************************
;* TYPE INFORMATION                                                           *
;******************************************************************************

⌨️ 快捷键说明

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