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

📄 idct1.asm

📁 TI DSP TMS320DM642 用定时器测试函数执行时间
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                    PC Version 4.32 *
;* Date/Time created: Sun Oct 08 17:48:20 2006                                *
;******************************************************************************

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C64xx                                          *
;*   Optimization      : Disabled                                             *
;*   Optimizing for    : Compile time, Ease of Development                    *
;*                       Based on options: no -o, no -ms                      *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : Disabled                                             *
;*   Memory Model      : Small                                                *
;*   Calls to RTS      : Near                                                 *
;*   Pipelining        : Disabled                                             *
;*   Memory Aliases    : Presume are aliases (pessimistic)                    *
;*   Debug Info        : COFF Debug                                           *
;*                                                                            *
;******************************************************************************

	.asg	A15, FP
	.asg	B14, DP
	.asg	B15, SP
	.global	$bss

	.file	"serial_asm"

; B8_SIZE 	.equ 	8	
; Y_SHIFT		.equ 	4		;每行有8*2 byte(short类型)(2^4)
; X_SHIFT		.equ 	1       ;short类型xx左移1位就可以

;CLIP3 .macro data,offset
;	addk		64,data
;	shr			data,7,data
;	cmplt 		data,lt,flag1
;[flag1]	mv		lt,data
;	cmpgt	data,gt,flag2
;[flag2] mv 		gt,data
;	sth			data,*+addr[offset]  
;   .endm   

CLIP3 .macro data,offset
	cmplt 		data,lt,flag1
[flag1]	mv		lt,data
	cmpgt	data,gt,flag2
[flag2] mv 		gt,data
	addk		64,data
	shr			data,7,data
	sth			data,*+addr[offset]  
   .endm
   
    .global     _inv_transform_B8

	.sect	".text"
	.file	"idct1.sa"
	.sym	_inv_transform_B8,_inv_transform_B8, 32, 3, 0
	.func	29

;******************************************************************************
;* FUNCTION NAME: _inv_transform_B8                                           *
;*                                                                            *
;*   Regs Modified     : A0,A3,A5,A6,A7,A8,A9,B4,B5,B6,B7,B8,B9,A16,A17,A18,  *
;*                           A19,A20,A21,A22,B16,B17,B18,B19,B20,B21,B22,B23, *
;*                           B24,B25                                          *
;*   Regs Used         : A0,A3,A4,A5,A6,A7,A8,A9,B3,B4,B5,B6,B7,B8,B9,SP,A16, *
;*                           A17,A18,A19,A20,A21,A22,B16,B17,B18,B19,B20,B21, *
;*                           B22,B23,B24,B25                                  *
;******************************************************************************
_inv_transform_B8:
;** --------------------------------------------------------------------------*
	.line	1
	.sym	curr_blk,4, 4, 4, 32
;
;
; _inv_transform_B8:    .cproc    	curr_blk
	.sym	xx,40, 4, 4, 32
	.sym	yy,3, 4, 4, 32
;     .reg      	xx,yy
	.sym	tmp0,3, 4, 4, 32
	.sym	tmp1,3, 4, 4, 32
	.sym	tmp2,3, 4, 4, 32
	.sym	tmp3,3, 4, 4, 32
	.sym	tmp4,5, 4, 4, 32
	.sym	tmp5,6, 4, 4, 32
	.sym	tmp6,7, 4, 4, 32
	.sym	tmp7,8, 4, 4, 32
; 	.reg      	tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7
	.sym	bb0,3, 4, 4, 32
	.sym	bb1,3, 4, 4, 32
	.sym	bb2,3, 4, 4, 32
	.sym	bb3,3, 4, 4, 32
	.sym	bb4,3, 4, 4, 32
	.sym	bb5,3, 4, 4, 32
	.sym	bb6,3, 4, 4, 32
	.sym	bb7,3, 4, 4, 32
; 	.reg 		bb0,bb1,bb2,bb3,bb4,bb5,bb6,bb7
	.sym	t0,20, 4, 4, 32
	.sym	t1,20, 4, 4, 32
	.sym	t2,20, 4, 4, 32
	.sym	t3,20, 4, 4, 32
	.sym	t4,20, 4, 4, 32
	.sym	t5,3, 4, 4, 32
	.sym	t6,20, 4, 4, 32
	.sym	t7,3, 4, 4, 32
; 	.reg		t0,t1,t2,t3,t4,t5,t6,t7   ;存储中间结果 临时变量
	.sym	addr,3, 4, 4, 32
; 	.reg 		addr
	.sym	loop_flag,0, 4, 4, 32
	.sym	flag1,3, 4, 4, 32
	.sym	flag2,3, 4, 4, 32
; 	.reg 		loop_flag,flag1,flag2
	.sym	lt,3, 4, 4, 32
	.sym	gt,3, 4, 4, 32
; 	.reg		lt,gt
	.sym	k0,3, 4, 4, 32
	.sym	k1,3, 4, 4, 32
	.sym	k2,3, 4, 4, 32
	.sym	k3,3, 4, 4, 32
; 	.reg 		k0,k1,k2,k3;	
	.line	12
           ZERO    .D1     A19               ; |40| 
	.line	13
           ZERO    .D1     A3                ; |41| 
	.line	15
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
yy_loop:    
; yy_loop: .trip 8,8,2
	.line	16
           SHL     .S1     A3,0x4,A5         ; |44| 
	.line	17
           ADD     .D1     A5,A4,A9          ; |45| 
	.line	18
           LDH     .D1T1   *A9,A18           ; |46|      tmp[0]=curr_blk1[yy][0];	              
           NOP             4
	.line	19
           LDH     .D1T1   *+A9(8),A16       ; |47|      tmp[1]=curr_blk1[yy][4];	           
           NOP             4
	.line	20
           LDH     .D1T1   *+A9(4),A20       ; |48|      tmp[2]=curr_blk1[yy][2];	           
           NOP             4
	.line	21
           LDH     .D1T1   *+A9(12),A17      ; |49|      tmp[3]=curr_blk1[yy][6];	           
           NOP             4
	.line	22
           LDH     .D1T1   *+A9(2),A5        ; |50|      tmp[4]=curr_blk1[yy][1];	           
           NOP             4
	.line	23
           LDH     .D1T1   *+A9(6),A6        ; |51|      tmp[5]=curr_blk1[yy][3];	           
           NOP             4
	.line	24
           LDH     .D1T1   *+A9(10),A7       ; |52|      tmp[6]=curr_blk1[yy][5];	           
           NOP             4
	.line	25
           LDH     .D1T1   *+A9(14),A8       ; |53|      tmp[7]=curr_blk1[yy][7];	           
           NOP             4
	.line	27
           SUB     .D1     A5,A8,A21         ; |55| 	b[0] = ((tmp[4] - tmp[7])<<1) + tmp[4];
	.line	28
           SHL     .S1     A21,0x1,A21       ; |56| 
	.line	29
           ADD     .D1     A5,A21,A21        ; |57| 
	.line	41
           ADD     .D1     A6,A7,A22         ; |69| 	b[1] = ((tmp[5] + tmp[6])<<1) + tmp[5];
	.line	42
           SHL     .S1     A22,0x1,A22       ; |70| 
	.line	43
           ADD     .D1     A6,A22,A22        ; |71| 
	.line	49
           SUB     .D1     A6,A7,A6          ; |77| 	b[2] = ((tmp[5] - tmp[6])<<1) - tmp[6];
           NOP             1
	.line	50
           SHL     .S2X    A6,0x1,B4         ; |78| 
	.line	51
           SUB     .S2X    B4,A7,B4          ; |79| 
	.line	57
           ADD     .D1     A5,A8,A5          ; |85| 	b[3] = ((tmp[4] + tmp[7])<<1) + tmp[7];
           NOP             1
	.line	58
           SHL     .S2X    A5,0x1,B5         ; |86| 
           NOP             1
	.line	59
           ADD     .D1X    A8,B5,A5          ; |87| 
	.line	65
           ADD     .D1     A21,A22,A6        ; |93| 	b[4] = ((b[0] + b[1] + b[3])<<1) + b[1];
	.line	66
           ADD     .D1     A5,A6,A6          ; |94| 
	.line	67
           SHL     .S1     A6,0x1,A6         ; |95| 
	.line	68
           ADD     .D1     A6,A22,A8         ; |96| 
	.line	72
           SUB     .D1     A21,A22,A6        ; |100| 	b[5] = ((b[0] - b[1] + b[2])<<1) + b[0];
           NOP             1
	.line	73
           ADD     .D2X    B4,A6,B5          ; |101| 
	.line	74
           SHL     .S2     B5,0x1,B5         ; |102| 
	.line	75
           ADD     .D2X    B5,A21,B8         ; |103| 
	.line	77
           ADD     .D2X    A22,B4,B5         ; |105| 	b[6] = ((-b[1] - b[2] + b[3])<<1)+ b[3];
	.line	78
           SUB     .S2X    A5,B5,B5          ; |106| 
	.line	79
           SHL     .S2     B5,0x1,B5         ; |107| 
	.line	80
           ADD     .D2X    B5,A5,B7          ; |108| 
	.line	82
           SUB     .S2X    A21,B4,B5         ; |110| 	b[7] = ((b[0] - b[2] - b[3])<<1) - b[2];
	.line	83
           SUB     .S2X    B5,A5,B5          ; |111| 
	.line	84
           SHL     .S2     B5,0x1,B5         ; |112| 
	.line	85
           SUB     .D2     B5,B4,B9          ; |113| 
	.line	87
           MPY     .M1     0xa,A20,A5        ; |115| 	 t=((tmp[2]*10)+(tmp[3]<<2));
           NOP             1
	.line	88
           SHL     .S1     A17,0x2,A6        ; |116| 
	.line	89
           ADD     .D1     A5,A6,A5          ; |117| 
	.line	91
           SHL     .S2X    A20,0x2,B4        ; |119| 	 tmp[3]=((tmp[2]<<2)-(tmp[3]*10));
	.line	92
           MPY     .M2X    0xa,A17,B5        ; |120| 
           NOP             1
	.line	93
           SUB     .D2     B4,B5,B5          ; |121| 
	.line	95
	.line	97
           ADD     .D1     A18,A16,A6        ; |125|      t=(tmp[0]+tmp[1])<<3;
           NOP             1
	.line	98
           SHL     .S2X    A6,0x3,B4         ; |126| 
	.line	100
           SUB     .D1     A18,A16,A6        ; |128|      tmp[1]=(tmp[0]-tmp[1])<<3;
	.line	101
           SHL     .S1     A6,0x3,A7         ; |129| 
	.line	103
	.line	105
           ADD     .D1X    B4,A5,A6          ; |133|      b[0]=tmp[0]+tmp[2];
	.line	106
           ADD     .D2X    A7,B5,B6          ; |134|      b[1]=tmp[1]+tmp[3];
	.line	107
           SUB     .S1X    A7,B5,A7          ; |135|      b[2]=tmp[1]-tmp[3];	
	.line	108
           SUB     .S1X    B4,A5,A16         ; |136|      b[3]=tmp[0]-tmp[2];
	.line	110
           ADD     .D1     A6,A8,A5          ; |138| 	 curr_blk1[yy][0]=((b[0]+b[4])+4)>>3;
	.line	111
           ADD     .D1     0x4,A5,A5         ; |139| 
	.line	112
           SHR     .S1     A5,0x3,A5         ; |140| 
	.line	113
           STH     .D1T1   A5,*A9            ; |141| 
           NOP             2
	.line	115
           ADD     .D2     B6,B8,B4          ; |143| 	 curr_blk1[yy][1]=((b[1]+b[5])+4)>>3;
           NOP             1
	.line	116
           ADD     .D1X    0x4,B4,A5         ; |144| 
	.line	117
           SHR     .S1     A5,0x3,A5         ; |145| 
	.line	118
           STH     .D1T1   A5,*+A9(2)        ; |146| 
           NOP             2
	.line	120
           ADD     .D1X    A7,B7,A5          ; |148| 	 curr_blk1[yy][2]=((b[2]+b[6])+4)>>3;
	.line	121
           ADD     .D1     0x4,A5,A5         ; |149| 
	.line	122
           SHR     .S1     A5,0x3,A5         ; |150| 
	.line	123
           STH     .D1T1   A5,*+A9(4)        ; |151| 
           NOP             2
	.line	125
           ADD     .D1X    A16,B9,A5         ; |153| 	 curr_blk1[yy][3]=((b[3]+b[7])+4)>>3;
	.line	126
           ADD     .D1     0x4,A5,A5         ; |154| 
	.line	127
           SHR     .S1     A5,0x3,A5         ; |155| 
	.line	128
           STH     .D1T1   A5,*+A9(6)        ; |156| 
           NOP             2
	.line	130
           SUB     .S2X    A16,B9,B4         ; |158| 	 curr_blk1[yy][4]=((b[3]-b[7])+4)>>3;
	.line	131
           ADD     .D2     0x4,B4,B4         ; |159| 
	.line	132
           SHR     .S2     B4,0x3,B4         ; |160| 
	.line	133
           STH     .D1T2   B4,*+A9(8)        ; |161| 
           NOP             2
	.line	135
           SUB     .S2X    A7,B7,B4          ; |163| 	 curr_blk1[yy][5]=((b[2]-b[6])+4)>>3;
	.line	136
           ADD     .D2     0x4,B4,B4         ; |164| 
	.line	137
           SHR     .S2     B4,0x3,B4         ; |165| 
	.line	138
           STH     .D1T2   B4,*+A9(10)       ; |166| 
           NOP             2
	.line	140
           SUB     .D2     B6,B8,B4          ; |168| 	 curr_blk1[yy][6]=((b[1]-b[5])+4)>>3;
	.line	141
           ADD     .D2     0x4,B4,B4         ; |169| 
	.line	142
           SHR     .S2     B4,0x3,B4         ; |170| 
	.line	143
           STH     .D1T2   B4,*+A9(12)       ; |171| 
           NOP             2
	.line	145
           SUB     .D1     A6,A8,A5          ; |173| 	 curr_blk1[yy][7]=((b[0]-b[4])+4)>>3;
	.line	146
           ADD     .D1     0x4,A5,A5         ; |174| 
	.line	147
           SHR     .S1     A5,0x3,A5         ; |175| 
	.line	148
           STH     .D1T1   A5,*+A9(14)       ; |176| 
           NOP             2
	.line	150
           ADD     .D1     0x1,A3,A3         ; |178|    for(yy=0; yy<8; yy++)
	.line	151
           CMPGT   .L1     0x8,A3,A0         ; |179| 
	.line	152
   [ A0]   BNOP    .S1     yy_loop,5         ; |180| 
           ; BRANCH OCCURS                   ; |180| 
;** --------------------------------------------------------------------------*
	.line	157
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
xx_loop:    
	.line	156
           SHL     .S1     A19,0x1,A3        ; |184| 
	.line	157
           ADD     .D1     A4,A3,A3          ; |185| 
	.line	158
           MVK     .S1     0x20,A9           ; |186| 
	.line	159
           MVK     .S1     0x10,A16          ; |187| 
	.line	160
           MVK     .S1     0x30,A17          ; |188| 
	.line	161
           MVK     .D1     0x8,A7            ; |189| 
	.line	162
           MVK     .S1     0x18,A8           ; |190| 
	.line	163
           MVK     .S1     0x28,A5           ; |191| 
	.line	164
           MVK     .S1     0x38,A6           ; |192| 
	.line	165
           LDH     .D1T1   *A3,A20           ; |193|      tmp[0]=curr_blk1[0][xx];
           NOP             4
	.line	166
           LDH     .D1T1   *+A3[A9],A18      ; |194|      tmp[1]=curr_blk1[4][xx];
           NOP             4
	.line	167
           LDH     .D1T1   *+A3[A16],A21     ; |195|      tmp[2]=curr_blk1[2][xx];
           NOP             4
	.line	168
           LDH     .D1T1   *+A3[A17],A17     ; |196|      tmp[3]=curr_blk1[6][xx];
           NOP             4
	.line	169
           LDH     .D1T1   *+A3[A7],A9       ; |197|      tmp[4]=curr_blk1[1][xx];
           NOP             4

⌨️ 快捷键说明

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