📄 dstr_2d.asm
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen PC Version 4.36 *
;* Date/Time created: Tue Jun 22 14:07:15 2004 *
;******************************************************************************
;******************************************************************************
;* GLOBAL FILE PARAMETERS *
;* *
;* Architecture : TMS320C64xx *
;* Optimization : Enabled at level 2 *
;* Optimizing for : Speed *
;* Based on options: -o2, no -ms *
;* Endian : Little *
;* Interrupt Thrshld : 100 *
;* Memory Model : Large *
;* Calls to RTS : Far *
;* Pipelining : Enabled *
;* Speculative Load : Enabled *
;* Memory Aliases : Presume not aliases (optimistic) *
;* Debug Info : No Debug Info *
;* *
;******************************************************************************
.asg A15, FP
.asg B14, DP
.asg B15, SP
.global $bss
; c:\ti_6000\c6000\cgtools\bin\opt6x.exe -t -DI100 -v6400 -q -O2 C:\DOCUME~1\A03238~1.USA\LOCALS~1\Temp\TI1644_2 C:\DOCUME~1\A03238~1.USA\LOCALS~1\Temp\TI1644_5 -w .
.sect ".text"
.global _dstr_open
;******************************************************************************
;* FUNCTION NAME: _dstr_open *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A11,A13,B0,B1,B2,B3,B4,*
;* B5,B6,B7,B8,B9,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,A11,A12,A13,B0,B1, *
;* B2,B3,B4,B5,B6,B7,B8,B9,B10,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 *
;* Local Frame Size : 0 Args + 0 Auto + 12 Save = 12 byte *
;******************************************************************************
_dstr_open:
;** --------------------------------------------------------------------------*
STW .D2T1 A13,*SP--(16) ; |41|
STW .D2T2 B13,*+SP(12) ; |41|
|| ZERO .D1 A3 ; |49|
|| MV .S1 A4,A2 ; |41|
ZERO .D1 A4 ; |49|
|| MV .S1 A4,A11 ; |41|
|| STW .D2T1 A11,*+SP(8) ; |41|
|| MV .L1X B4,A1 ; |41|
[!A2] MVK .D1 0x1,A4 ; |49|
|| [!A1] MVK .S1 0x1,A3 ; |49|
OR .D1 A3,A4,A3 ; |49|
|| ZERO .D2 B4 ; |49|
|| MV .S1X B6,A0 ; |41|
|| MV .S2 B4,B5 ; |41|
[!A0] MVK .D2 0x1,B4 ; |49|
CMPEQ .L1 A8,0,A4 ; |49|
|| OR .D2X B4,A3,B4 ; |49|
|| CMPEQ .L2 B8,0,B6 ; |49|
CMPEQ .L2X A10,0,B6 ; |49|
|| OR .D2 B6,B4,B4 ; |49|
OR .D2X A4,B4,B7 ; |49|
OR .D2 B6,B7,B0 ; |49|
[ B0] B .S1 L2 ; |50|
CMPEQ .L2 B12,1,B4 ; |51|
|| CMPEQ .L1 A12,1,A3 ; |51|
MV .D1X B8,A3 ; |41|
|| XOR .S1 1,A3,A4 ; |51|
AND .D1X A4,B4,A1 ; |51|
|| MV .D2 B10,B8 ; |41|
|| MV .S2 B3,B13 ; |41|
|| MVK .S1 0xffffffff,A13 ; |50|
|| MV .L1 A6,A9 ; |41|
|| [!B0] MPYU .M1 A12,A3,A4 ; |52|
[ B0] LDW .D2T1 *+SP(8),A11 ; |111|
|| [ B0] MV .S2 B13,B3 ; |111|
[!B0] MPYLHU .M1 A10,A4,A5 ; |52|
; BRANCH OCCURS ; |50|
;** --------------------------------------------------------------------------*
MPYU .M1 A10,A4,A4 ; |52|
[ A1] B .S2 L2 ; |51|
|| SHL .S1 A5,16,A5 ; |52|
ADD .D1 A4,A5,A4 ; |52|
ADD .D1 A4,A4,A5 ; |52|
CMPGT .L1 A5,A8,A5 ; |52|
CMPEQ .L1 A12,0,A4 ; |52|
OR .D1 A4,A5,A2 ; |52|
|| MVK .S1 0xfffffffe,A13 ; |51|
|| [ A1] LDW .D2T1 *+SP(8),A11 ; |111|
|| [ A1] MV .S2 B13,B3 ; |111|
; BRANCH OCCURS ; |51|
;** --------------------------------------------------------------------------*
[ A2] B .S1 L2 ; |56|
MPYU .M1 A3,A10,A5 ; |68|
MPYU .M1 A12,A10,A7 ; |74|
MPYUS .M1 A12,A5,A3 ; |68|
|| MV .D2X A3,B6 ; |71|
MV .D1 A9,A4 ; |65|
|| MVK .S1 0xfffffffd,A13 ; |56|
|| MVKL .S2 __remi,B7 ; |65|
ZERO .D1 A3 ; |70|
|| ADD .S1 A3,A3,A18 ; |68|
|| MPYUS .M1X B6,A7,A16 ; |74|
|| MVKH .S2 __remi,B7 ; |65|
|| ZERO .L1 A17 ; |70|
|| MPYU .M2X A10,B8,B4 ; |65|
|| [ A2] LDW .D2T1 *+SP(8),A11 ; |111|
|| [ A2] MV .L2 B13,B3 ; |111|
; BRANCH OCCURS ; |56|
;** --------------------------------------------------------------------------*
CALL .S2 B7 ; |65|
ADDKPC .S2 RL0,B3,3 ; |65|
STW .D1T2 B5,*A11 ; |64|
RL0: ; CALL OCCURS ; |65|
STW .D1T1 A0,*+A11(12) ; |67|
STW .D1T1 A3,*+A11(4) ; |76|
STH .D1T1 A17,*+A11(16) ; |70|
STH .D1T2 B6,*+A11(22) ; |71|
|| MV .S1X B12,A0 ; |65|
|| MV .L1 A0,A6 ; |90|
[ A0] B .S1 L1 ; |107|
|| STH .D1T1 A18,*+A11(18) ; |68|
STH .D1T1 A16,*+A11(20) ; |74|
STH .D1T2 B8,*+A11(26) ; |75|
|| EXTU .S1 A7,16,16,A8 ; |90|
MVKL .S1 0x5200001,A4 ; |90|
|| SUB .L1 A9,A4,A3 ; |65|
|| STH .D1T1 A10,*+A11(24) ; |72|
MVK .S1 -1,A3 ; |107|
|| [ A0] MV .L1 A11,A5 ; |65|
|| STW .D1T1 A3,*+A11(8) ; |65|
|| MVKL .S2 _DAT_copy2d,B5 ; |90|
|| MV .D2 B5,B4 ; |67|
[ A0] STW .D1T1 A3,*+A5(4) ; |107|
|| MVKH .S1 0x5200001,A4 ; |90|
|| MVKH .S2 _DAT_copy2d,B5 ; |90|
|| ZERO .L1 A13 ; |107|
; BRANCH OCCURS ; |107|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |90|
ADDKPC .S2 RL1,B3,4 ; |90|
RL1: ; CALL OCCURS ; |90|
LDHU .D1T1 *+A11(26),A3 ; |97|
LDHU .D1T2 *+A11(22),B4 ; |98|
NOP 2
LDHU .D1T1 *+A11(16),A5 ; |98|
STW .D1T1 A4,*+A11(28) ; |99|
MPYU .M1 A3,A10,A3 ; |97|
|| MPYU .M2X B4,A10,B4 ; |98|
LDW .D1T1 *+A11(4),A6 ; |97|
MPYLHU .M1 A12,A3,A7 ; |97|
|| MPYUS .M2X A12,B4,B4 ; |98|
MPYU .M1 A12,A3,A3 ; |97|
SHL .S1 A7,16,A7 ; |97|
ADD .S1X B4,A5,A3 ; |98|
|| ADD .L1 A3,A7,A4 ; |97|
ADD .S1 A4,A6,A3 ; |97|
|| STH .D1T1 A3,*+A11(16) ; |98|
STW .D1T1 A3,*+A11(4) ; |97|
;** --------------------------------------------------------------------------*
L1:
LDW .D2T1 *+SP(8),A11 ; |111|
|| MV .S2 B13,B3 ; |111|
;** --------------------------------------------------------------------------*
L2:
RET .S2 B3 ; |111|
|| LDW .D2T2 *+SP(12),B13 ; |111|
LDW .D2T1 *++SP(16),A13 ; |111|
|| MV .D1 A13,A4 ; |100|
NOP 4
; BRANCH OCCURS ; |111|
.sect ".text"
.global _dstr_get
;******************************************************************************
;* FUNCTION NAME: _dstr_get *
;* *
;* Regs Modified : 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,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,A11,A12,A13,A14,B0,*
;* B1,B2,B3,B4,B5,B6,B7,B8,B9,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 *
;* Local Frame Size : 0 Args + 0 Auto + 24 Save = 24 byte *
;******************************************************************************
_dstr_get:
;** --------------------------------------------------------------------------*
STW .D2T1 A14,*SP--(24) ; |117|
STDW .D2T1 A13:A12,*+SP(16) ; |117|
MV .D1 A4,A11 ; |117|
|| STDW .D2T1 A11:A10,*+SP(8) ; |117|
LDHU .D1T1 *+A11(22),A6 ; |135|
LDHU .D1T1 *+A11(16),A9 ; |138|
LDHU .D1T1 *+A11(16),A3 ; |134|
LDW .D1T1 *+A11(4),A5 ; |156|
LDW .D1T1 *+A11(8),A8 ; |156|
LDW .D1T1 *+A11(12),A7 ; |134|
LDHU .D1T1 *+A11(18),A16 ; |147|
LDHU .D1T1 *+A11(20),A4 ; |135|
|| ADD .S1 A6,A9,A9 ; |138|
STH .D1T1 A9,*+A11(16) ; |138|
LDHU .D1T1 *+A11(16),A9 ; |147|
|| CMPLTU .L1 A5,A8,A1 ; |156|
[!A1] BNOP .S1 L3,1 ; |156|
ADD .D1 A6,A4,A8 ; |135|
|| CMPLT .L1 A3,A4,A0 ; |137|
SUB .D1 A3,A4,A3 ; |137|
|| CMPLT .L1 A3,A8,A8 ; |135|
|| ADD .S1 A3,A7,A12 ; |134|
|| MVKL .S2 _DAT_copy,B5 ; |159|
SUB .D1 A4,A6,A9 ; |148|
|| ADD .S1 A7,A3,A10 ; |137|
|| CMPLT .L1 A9,A16,A2 ; |147|
|| MVKH .S2 _DAT_copy,B5 ; |159|
[!A2] STH .D1T1 A9,*+A11(16) ; |148|
|| [ A0] ADD .S1 A4,A7,A10 ; |137|
|| XOR .L1 1,A8,A13 ; |135|
|| MV .S2X A12,B4 ; |159|
|| MV .L2 B3,B13 ; |117|
|| STW .D2T2 B13,*+SP(4) ; |117|
; BRANCH OCCURS ; |156|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |159|
|| LDW .D1T1 *A11,A3 ; |159|
ADDKPC .S2 RL2,B3,3 ; |159|
ADD .D1 A5,A3,A4 ; |159|
RL2: ; CALL OCCURS ; |159|
MV .D1 A4,A14 ; |159|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -