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

📄 crunchmacros.inc

📁 CIRRUS 公司EP93XX系列CPU的WINCE下的BSP
💻 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 + -