📄 crunchmacros.inc
字号:
;**********************************************************************
;
; Filename: crunchmacro.inc
;
; Description:
;
; THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
; ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
; PARTICULAR PURPOSE.
;
; Use of this source code is subject to the terms of the Cirrus end-user
; license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
; If you did not accept the terms of the EULA, you are not authorized to
; use this source code. For a copy of the EULA, please see the
; EULA.RTF on your install media.
;
; Copyright(c) Cirrus Logic Corporation 2002, All Rights Reserved
;
;**********************************************************************
;**********************************************************************
;
; List of coprocessor registers
;
;**********************************************************************
mvf0 CN 0
mvf1 CN 1
mvf2 CN 2
mvf3 CN 3
mvf4 CN 4
mvf5 CN 5
mvf6 CN 6
mvf7 CN 7
mvf8 CN 8
mvf9 CN 9
mvf10 CN 10
mvf11 CN 11
mvf12 CN 12
mvf13 CN 13
mvf14 CN 14
mvf15 CN 15
mvd0 CN 0
mvd1 CN 1
mvd2 CN 2
mvd3 CN 3
mvd4 CN 4
mvd5 CN 5
mvd6 CN 6
mvd7 CN 7
mvd8 CN 8
mvd9 CN 9
mvd10 CN 10
mvd11 CN 11
mvd12 CN 12
mvd13 CN 13
mvd14 CN 14
mvd15 CN 15
mvfx0 CN 0
mvfx1 CN 1
mvfx2 CN 2
mvfx3 CN 3
mvfx4 CN 4
mvfx5 CN 5
mvfx6 CN 6
mvfx7 CN 7
mvfx8 CN 8
mvfx9 CN 9
mvfx10 CN 10
mvfx11 CN 11
mvfx12 CN 12
mvfx13 CN 13
mvfx14 CN 14
mvfx15 CN 15
mvdx0 CN 0
mvdx1 CN 1
mvdx2 CN 2
mvdx3 CN 3
mvdx4 CN 4
mvdx5 CN 5
mvdx6 CN 6
mvdx7 CN 7
mvdx8 CN 8
mvdx9 CN 9
mvdx10 CN 10
mvdx11 CN 11
mvdx12 CN 12
mvdx13 CN 13
mvdx14 CN 14
mvdx15 CN 15
;**********************************************************************
;
; LDC macros
;
;**********************************************************************
MACRO
cfldrs $creg, $armreg, $add_mode
IF "$add_mode"=""
ldc p4, $creg, $armreg
ELSE
ldc p4, $creg, $armreg, $add_mode
ENDIF
MEND
MACRO
cfldrd $creg, $armreg, $add_mode
IF "$add_mode"=""
ldcl p4, $creg, $armreg
ELSE
ldcl p4, $creg, $armreg, $add_mode
ENDIF
MEND
MACRO
cfldr32 $creg, $armreg, $add_mode
IF "$add_mode"=""
ldc p5, $creg, $armreg
ELSE
ldc p5, $creg, $armreg, $add_mode
ENDIF
MEND
MACRO
cfldr64 $creg, $armreg, $add_mode
IF "$add_mode"=""
ldcl p5, $creg, $armreg
ELSE
ldcl p5, $creg, $armreg, $add_mode
ENDIF
MEND
;**********************************************************************
;
; STC macros
;
;**********************************************************************
MACRO
cfstrs $creg, $armreg, $add_mode
IF "$add_mode"=""
stc p4, $creg, $armreg
ELSE
stc p4, $creg, $armreg, $add_mode
ENDIF
MEND
MACRO
cfstrd $creg, $armreg, $add_mode
IF "$add_mode"=""
stcl p4, $creg, $armreg
ELSE
stcl p4, $creg, $armreg, $add_mode
ENDIF
MEND
MACRO
cfstr32 $creg, $armreg, $add_mode
IF "$add_mode"=""
stc p5, $creg, $armreg
ELSE
stc p5, $creg, $armreg, $add_mode
ENDIF
MEND
MACRO
cfstr64 $creg, $armreg, $add_mode
IF "$add_mode"=""
stcl p5, $creg, $armreg
ELSE
stcl p5, $creg, $armreg, $add_mode
ENDIF
MEND
;**********************************************************************
;
; MCR and MRC macros
;
;**********************************************************************
MACRO
cfmvsr $creg, $armreg
mcr p4, c0, $armreg, $creg, c0, 2
MEND
MACRO
cfmvrs $armreg, $creg
mrc p4, c0, $armreg, $creg, c0, 2
MEND
MACRO
cfmvdlr $creg, $armreg
mcr p4, c0, $armreg, $creg, c0, 0
MEND
MACRO
cfmvrdl $armreg, $creg
mrc p4, c0, $armreg, $creg, c0, 0
MEND
MACRO
cfmvdhr $creg, $armreg
mcr p4, c0, $armreg, $creg, c0, 1
MEND
MACRO
cfmvrdh $armreg, $creg
mrc p4, c0, $armreg, $creg, c0, 1
MEND
MACRO
cfmv64r $creg, $armreg
mcr p5, c0, $armreg, $creg, c0, 0
MEND
MACRO
cfmv64lr $creg, $armreg
mcr p5, c0, $armreg, $creg, c0, 0
MEND
MACRO
cfmvr64l $armreg, $creg
mrc p5, c0, $armreg, $creg, c0, 0
MEND
MACRO
cfmv64hr $creg, $armreg
mcr p5, c0, $armreg, $creg, c0, 1
MEND
MACRO
cfmvr64h $armreg, $creg
mrc p5, c0, $armreg, $creg, c0, 1
MEND
MACRO
cfrshl32 $crm, $crn, $armreg
mcr p5, c0, $armreg, $crn, $crm, 2
MEND
MACRO
cfrshl64 $crm, $crn, $armreg
mcr p5, c0, $armreg, $crn, $crm, 3
MEND
MACRO
cfcmps $armreg, $crn, $crm
mrc p4, c0, $armreg, $crn, $crm, 4
MEND
MACRO
cfcmp32 $armreg, $crn, $crm
mrc p5, c0, $armreg, $crn, $crm, 4
MEND
MACRO
cfcmpd $armreg, $crn, $crm
mrc p4, c0, $armreg, $crn, $crm, 5
MEND
MACRO
cfcmp64 $armreg, $crn, $crm
mrc p5, c0, $armreg, $crn, $crm, 5
MEND
;**********************************************************************
;
; Mov instructions variant CDP macros
;
;**********************************************************************
MACRO
cfmval32 $acc, $crn
lcls crd
crd sets "c":cc:("$acc":RIGHT:1)
cdp p4, 2, $crd, $crn, c0, 2
MEND
MACRO
cfmv32al $crd, $acc
lcls crn
crn sets "c":cc:("$acc":RIGHT:1)
cdp p4, 1, $crd, $crn, c0, 2
MEND
MACRO
cfmvam32 $acc, $crn
lcls crd
crd sets "c":cc:("$acc":RIGHT:1)
cdp p4, 2, $crd, $crn, c0, 3
MEND
MACRO
cfmv32am $crd, $acc
lcls crn
crn sets "c":cc:("$acc":RIGHT:1)
cdp p4, 1, $crd, $crn, c0, 3
MEND
MACRO
cfmvah32 $acc, $crn
lcls crd
crd sets "c":cc:("$acc":RIGHT:1)
cdp p4, 2, $crd, $crn, c0, 4
MEND
MACRO
cfmv32ah $crd, $acc
lcls crn
crn sets "c":cc:("$acc":RIGHT:1)
cdp p4, 1, $crd, $crn, c0, 4
MEND
MACRO
cfmv32a $crd, $acc
lcls crn
crn sets "c":cc:("$acc":RIGHT:1)
cdp p4, 1, $crd, $crn, c0, 5
MEND
MACRO
cfmva32 $acc, $crn
lcls crd
crd sets "c":cc:("$acc":RIGHT:1)
cdp p4, 2, $crd, $crn, c0, 5
MEND
MACRO
cfmv64a $crd, $acc
lcls crn
crn sets "c":cc:("$acc":RIGHT:1)
cdp p4, 1, $crd, $crn, c0, 6
MEND
MACRO
cfmva64 $acc, $crn
lcls crd
crd sets "c":cc:("$acc":RIGHT:1)
cdp p4, 2, $crd, $crn, c0, 6
MEND
MACRO
cfmvsc32 $crd, $crn
cdp p4, 2, $crd, $crn, c0, 7
MEND
MACRO
cfmv32sc $crd, $crn
cdp p4, 1, $crd, $crn, c0, 7
MEND
;**********************************************************************
;
; Copy instructions variant CDP macros
;
;**********************************************************************
MACRO
cfcpys $crd, $crn
cdp p4, 0, $crd, $crn, c0, 0
MEND
MACRO
cfcpyd $crd, $crn
cdp p4, 0, $crd, $crn, c0, 1
MEND
MACRO
cfcvtds $crd, $crn
cdp p4, 0, $crd, $crn, c0, 2
MEND
MACRO
cfcvtsd $crd, $crn
cdp p4, 0, $crd, $crn, c0, 3
MEND
MACRO
cfcvt32s $crd, $crn
cdp p4, 0, $crd, $crn, c0, 4
MEND
MACRO
cfcvt32d $crd, $crn
cdp p4, 0, $crd, $crn, c0, 5
MEND
MACRO
cfcvt64s $crd, $crn
cdp p4, 0, $crd, $crn, c0, 6
MEND
MACRO
cfcvt64d $crd, $crn
cdp p4, 0, $crd, $crn, c0, 7
MEND
;;;
;;; $shift must lower than #7
;; MACRO cfsh32 $crd, $crn, $shift
;; cdp p5, 0, $crd, $crn, $shift, 0
;; MEND
;;;
;;; $shift must lower than #7
;; MACRO cfsh64 $crd, $crn, $shift
;; cdp p5, 2, $crd, $crn, $shift, 0
;; MEND
MACRO
cfmadd32 $cra, $crd, $crn, $crm
cdp p6, 0, $crd, $crn, $crm, $cra
MEND
MACRO
cfmadda32 $cra, $crd, $crn, $crm
cdp p6, 2, $crd, $crn, $crm, $cra
MEND
MACRO
cfmsub32 $cra, $crd, $crn, $crm
cdp p6, 1, $crd, $crn, $crm, $cra
MEND
MACRO
cfmsuba32 $cra, $crd, $crn, $crm
cdp p6, 3, $crd, $crn, $crm, $cra
MEND
MACRO
cfmuls $crd, $crn, $crm
cdp p4, 1, $crd, $crn, $crm, 0
MEND
MACRO
cfmuld $crd, $crn, $crm
cdp p4, 1, $crd, $crn, $crm, 1
MEND
MACRO
cfmul32 $crd, $crn, $crm
cdp p5, 1, $crd, $crn, $crm, 0
MEND
MACRO
cfmul64 $crd, $crn, $crm
cdp p5, 1, $crd, $crn, $crm, 1
MEND
MACRO
cfmac32 $crd, $crn, $crm
cdp p5, 1, $crd, $crn, $crm, 2
MEND
MACRO
cfmsc32 $crd, $crn, $crm
cdp p5, 1, $crd, $crn, $crm, 3
MEND
MACRO
cfcvts32 $crd, $crn
cdp p5, 1, $crd, $crn, c0, 4
MEND
MACRO
cfcvtd32 $crd, $crn
cdp p5, 1, $crd, $crn, c0, 5
MEND
MACRO
cftruncs32 $crd, $crn
cdp p5, 1, $crd, $crn, c0, 6
MEND
MACRO
cftruncd32 $crd, $crn
cdp p5, 1, $crd, $crn, c0, 7
MEND
MACRO
cfabss $crd, $crn
cdp p4, 3, $crd, $crn, c0, 0
MEND
MACRO
cfabsd $crd, $crn
cdp p4, 3, $crd, $crn, c0, 1
MEND
MACRO
cfnegs $crd, $crn
cdp p4, 3, $crd, $crn, c0, 2
MEND
MACRO
cfnegd $crd, $crn
cdp p4, 3, $crd, $crn, c0, 3
MEND
MACRO
cfadds $crd, $crn, $crm
cdp p4, 3, $crd, $crn, $crm, 4
MEND
MACRO
cfaddd $crd, $crn, $crm
cdp p4, 3, $crd, $crn, $crm, 5
MEND
MACRO
cfsubs $crd, $crn, $crm
cdp p4, 3, $crd, $crn, $crm, 6
MEND
MACRO
cfsubd $crd, $crn, $crm
cdp p4, 3, $crd, $crn, $crm, 7
MEND
MACRO
cfabs32 $crd, $crn
cdp p5, 3, $crd, $crn, c0, 0
MEND
MACRO
cfabs64 $crd, $crn
cdp p5, 3, $crd, $crn, c0, 1
MEND
MACRO
cfneg32 $crd, $crn
cdp p5, 3, $crd, $crn, c0, 2
MEND
MACRO
cfneg64 $crd, $crn
cdp p5, 3, $crd, $crn, c0, 3
MEND
MACRO
cfadd32 $crd, $crn, $crm
cdp p5, 3, $crd, $crn, $crm, 4
MEND
MACRO
cfadd64 $crd, $crn, $crm
cdp p5, 3, $crd, $crn, $crm, 5
MEND
MACRO
cfsub32 $crd, $crn, $crm
cdp p5, 3, $crd, $crn, $crm, 6
MEND
MACRO
cfsub64 $crd, $crn, $crm
cdp p5, 3, $crd, $crn, $crm, 7
MEND
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -