📄 distancetranformf_l.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.32 *
;* Date/Time created: Wed Mar 28 09:33:05 2007 *
;******************************************************************************
;******************************************************************************
;* 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
.file "serial_asm"
* ------------------------------------------------------------------------- *
* Copyright (c) 2002 Texas Instruments, Incorporated. *
* All Rights Reserved. *
* ========================================================================= *
.text
.global _DistanceTransformf_L
.sect ".text"
.file "DistanceTranformf_L.sa"
.sym _DistanceTransformf_L,_DistanceTransformf_L, 32, 3, 0
.func 8
;******************************************************************************
;* FUNCTION NAME: _DistanceTransformf_L *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,B10,B11,B12,B13,SP,A16,A17,A18,A19,A20, *
;* A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,B16, *
;* B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28, *
;* B29,B30,B31 *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,B10,B11,B12,B13,DP,SP,A16,A17,A18, *
;* A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30, *
;* A31,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26, *
;* B27,B28,B29,B30,B31 *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o3) may disable key optimizations! *
;* *
;******************************************************************************
_DistanceTransformf_L:
;** --------------------------------------------------------------------------*
.line 1
.sym A_in1,4, 4, 4, 32
.sym A_in2,20, 4, 4, 32
.sym A_in3,6, 4, 4, 32
.sym A_out,22, 4, 4, 32
.sym A_w,8, 4, 4, 32
.sym weight1,24, 4, 4, 32
.sym weight2,23, 4, 4, 32
.sym weight3,26, 4, 4, 32
; _DistanceTransformf_L: .cproc A_in1, A_in2, A_in3, A_out, A_w,weight1,weight2,weight3
; .no_mdep
.sym A_add1,3, 4, 4, 32
.sym B_add2,58, 4, 4, 32
.sym A_add3,47, 4, 4, 32
; .reg A_add1, B_add2, A_add3
.sym mask1,57, 4, 4, 32
.sym mask2,46, 4, 4, 32
.sym mask3,56, 4, 4, 32
.sym mask4,55, 4, 4, 32
; .reg mask1,mask2,mask3,mask4
.sym "A_in1_h:A_in1_l",3, 4, 4, 32
.sym A_in1_l,3, 4, 4, 32
.sym A_in1_h,3, 4, 4, 32
; .reg A_in1_h:A_in1_l ; |x|x|x|x|x|x|x|x| | |
.sym "B_in2_h:B_in2_l",3, 4, 4, 32
.sym B_in2_l,3, 4, 4, 32
.sym B_in2_h,3, 4, 4, 32
; .reg B_in2_h:B_in2_l ; |x|x|x|x|x|x|x|x| | |
.sym "A_in3_h:A_in3_l",3, 4, 4, 32
.sym A_in3_l,3, 4, 4, 32
.sym A_in3_h,3, 4, 4, 32
; .reg A_in3_h:A_in3_l ; |x|x|x|x|x|x|x|x| | |
.sym "A_contr1:A_contr1l",3, 4, 4, 32
.sym A_contr1l,3, 4, 4, 32
.sym A_contr1,3, 4, 4, 32
.sym "A_contr2:A_contr2l",3, 4, 4, 32
.sym A_contr2l,3, 4, 4, 32
.sym A_contr2,3, 4, 4, 32
; .reg A_contr1:A_contr1l,A_contr2:A_contr2l
.sym "B_contr3:B_contr3l",3, 4, 4, 32
.sym B_contr3l,3, 4, 4, 32
.sym B_contr3,3, 4, 4, 32
.sym "B_contr4:B_contr4l",3, 4, 4, 32
.sym B_contr4l,3, 4, 4, 32
.sym B_contr4,3, 4, 4, 32
; .reg B_contr3:B_contr3l,B_contr4:B_contr4l
.sym "B_contr5:B_contr5l",3, 4, 4, 32
.sym B_contr5l,3, 4, 4, 32
.sym B_contr5,3, 4, 4, 32
.sym "B_contr6:B_contr6l",3, 4, 4, 32
.sym B_contr6l,3, 4, 4, 32
.sym B_contr6,3, 4, 4, 32
; .reg B_contr5:B_contr5l,B_contr6:B_contr6l
.sym "B_contr7:B_contr7l",3, 4, 4, 32
.sym B_contr7l,3, 4, 4, 32
.sym B_contr7,3, 4, 4, 32
.sym "A_contr8:A_contr8l",3, 4, 4, 32
.sym A_contr8l,3, 4, 4, 32
.sym A_contr8,3, 4, 4, 32
; .reg B_contr7:B_contr7l,A_contr8:A_contr8l
.sym "A_contr9:A_contr9l",3, 4, 4, 32
.sym A_contr9l,3, 4, 4, 32
.sym A_contr9,3, 4, 4, 32
.sym "A_contr12:A_contr12l",3, 4, 4, 32
.sym A_contr12l,3, 4, 4, 32
.sym A_contr12,3, 4, 4, 32
; .reg A_contr9:A_contr9l,A_contr12:A_contr12l
.sym "B_contr34:B_contr34l",3, 4, 4, 32
.sym B_contr34l,3, 4, 4, 32
.sym B_contr34,3, 4, 4, 32
.sym "B_contr56:B_contr56l",3, 4, 4, 32
.sym B_contr56l,3, 4, 4, 32
.sym B_contr56,3, 4, 4, 32
; .reg B_contr34:B_contr34l,B_contr56:B_contr56l
.sym "A_contr79:A_contr79l",3, 4, 4, 32
.sym A_contr79l,3, 4, 4, 32
.sym A_contr79,3, 4, 4, 32
.sym "A_contr1279:A_contr1279l",3, 4, 4, 32
.sym A_contr1279l,3, 4, 4, 32
.sym A_contr1279,3, 4, 4, 32
; .reg A_contr79:A_contr79l,A_contr1279:A_contr1279l
.sym "B_contr3456:B_contr3456l",3, 4, 4, 32
.sym B_contr3456l,3, 4, 4, 32
.sym B_contr3456,3, 4, 4, 32
; .reg B_contr3456:B_contr3456l
.sym A_result,3, 4, 4, 32
.sym "A_result1:A_result1l",3, 4, 4, 32
.sym A_result1l,3, 4, 4, 32
.sym A_result1,3, 4, 4, 32
; .reg A_result,A_result1:A_result1l
.sym A_temp1,3, 4, 4, 32
.sym A_temp2,3, 4, 4, 32
.sym A_temp3,3, 4, 4, 32
.sym A_temp4,3, 4, 4, 32
.sym B_temp1,3, 4, 4, 32
.sym B_temp2,21, 4, 4, 32
; .reg A_temp1,A_temp2,A_temp3,A_temp4,B_temp1,B_temp2
.sym A_temp0,3, 4, 4, 32
.sym B_temp3,3, 4, 4, 32
.sym B_temp4,3, 4, 4, 32
.sym A_seed,59, 4, 4, 32
; .reg A_temp0,B_temp3,B_temp4,A_seed
.sym A_cnt,21, 4, 4, 32
; .reg A_cnt ; Loop counter
.sym B_final,16, 4, 4, 32
; .reg B_final
; loop: .trip 4
STW .D2T2 B13,*SP--(24) ; |8|
STDW .D2T2 B11:B10,*+SP(16) ; |8|
STW .D2T2 B12,*+SP(12) ; |8|
STW .D2T2 B3,*+SP(8) ; |8|
MV .D2X A10,B7 ; |8|
.line 49
MVK .S2 0xff,B20 ; |56|
.line 50
MVKH .S2 0xff,B20 ; |57|
.line 51
MVK .S1 0xff00,A25 ; |58|
.line 52
MVKH .S1 0xff00,A25 ; |59|
.line 53
MVK .S2 0xff0000,B19 ; |60|
.line 54
MVKH .S2 0xff0000,B19 ; |61|
.line 55
MVK .S2 0xff000000,B18 ; |62|
.line 56
MVKH .S2 0xff000000,B18 ; |63|
.line 58
SHL .S1X B10,0x10,A3 ; |65|
.line 59
OR .D1X B10,A3,A26 ; |66| add coefficient weight3
.line 61
SHL .S2 B7,0x10,B5 ; |68|
.line 62
OR .D2 B7,B5,B21 ; |69| add coefficient weight2
.line 64
SHL .S1X B8,0x10,A3 ; |71|
.line 65
OR .D1X B8,A3,A3 ; |72| add coefficient weight1
.line 67
LDW .D1T1 *A6,A5 ; |74|
NOP 3
.line 68
NOP 1
AND .D1 A5,A25,A5 ; |75|
.line 69
NOP 1
SHRU .S2X A5,0x8,B22 ; |76| element 18
.line 71
.line 72
SHRU .S1 A8,0x2,A5 ; |79|
.line 73
NOP 1
MV .D2X A5,B0 ; |80|
.line 74
ADD .D2X 0xfffffffe,A5,B5 ; |81| loop control
.line 79
NOP 1
MVC .S2 CSR,B13
|| LDNDW .D1T1 *A4,A23:A22 ; |90| (P) <0,0> A load, line 1
MV .D2 B4,B24
|| AND .S2 -2,B13,B4
SUB .L2 B5,1,B23
|| MVC .S2 B4,CSR ; interrupts off
|| LDNDW .D2T2 *B24,B5:B4 ; |89| (P) <0,1> A load, line 2
MV .D1 A6,A28
ZERO .L1 A19:A18 ; |97| (P) <0,12>
AND .S1X A23,B20,A5 ; |115| (P) <0,5>
AND .L1 A25,A22,A5 ; |103| (P) <0,6>
|| SHL .S1 A5,0x10,A24 ; |116| (P) <0,6>
|| AND .D1X A22,B18,A6 ; |110| (P) <0,7>
AND .D2 B5,B20,B29 ; |157| (P) <0,7>
|| AND .D1X B4,A25,A8 ; |137| (P) <0,6>
|| SHRU .S1 A5,0x8,A7 ; |104| (P) <0,7>
LDNDW .D1T1 *A28,A21:A20 ; |88| (P) <0,5> A load, line 3
|| AND .L1X A22,B19,A2 ; |107| (P) <0,8>
|| AND .D2 B4,B19,B11 ; |143| (P) <0,10>
|| SHRU .S1 A8,0x8,A5 ; |138| (P) <0,8>
AND .D2X B5,A25,B7 ; |164| (P) <0,6>
|| OR .D1X B29,A19,A19 ; |159| (P) <0,22>
|| SHL .S1 A5,0x10,A30 ; |140| (P) <0,13>
ZERO .L1 A17:A16 ; |94| (P) <0,8>
|| MV .D2 B6,B25
|| AND .L2 B4,B18,B8 ; |149| (P) <0,6>
|| SHRU .S2 B7,0x8,B26 ; |165| (P) <0,7>
|| SHRU .S1X B11,0x10,A0 ; |145| (P) <0,12>
ZERO .L2 B17:B16 ; |96| (P) <0,5>
|| SHRU .S2 B8,0x8,B28 ; |150| (P) <0,8>
|| ZERO .L1 A9:A8 ; |95| (P) <0,9>
|| AND .D2 B4,B20,B8 ; |134| (P) <0,9>
|| SHL .S1X B29,0x10,A22 ; |160| (P) <0,10>
ADD .D1 4,A4,A27 ; |90| (P) <0,20>
|| ZERO .L2 B7:B6 ; |98| (P) <0,4>
|| ZERO .L1 A5:A4 ; |93| (P) <0,7>
|| SHRU .S2 B28,0x10,B30 ; |153| (P) <0,10>
|| SHL .S1X B26,0x10,A29 ; |167| (P) <0,9>
|| OR .D2X A5,B16,B16 ; |139| (P) <0,12>
AND .D2X A20,B18,B4 ; |202| (P) <0,10>
|| OR .D1 A7,A4,A4 ; |105| (P) <0,9>
|| OR .S2 B30,B6,B6 ; |155| (P) <0,12>
|| OR .S1 A0,A18,A18 ; |147| (P) <0,13>
|| OR .L1X B8,A8,A8 ; |135| (P) <0,11>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -