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

📄 xpseudo_asm_dcc.h

📁 基于Xilinx-XUPV2P开发平台的嵌入式系统实验例程:实验4编写基本的应用程序
💻 H
字号:
/* $Id: xpseudo_asm_dcc.h,v 1.3 2005/06/28 00:49:33 vasanth Exp $ *//******************************************************************************** Copyright (c) 2004 Xilinx, Inc.  All rights reserved. * * Xilinx, Inc. * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A * COURTESY TO YOU.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS * ONE POSSIBLE   IMPLEMENTATION OF THIS FEATURE, APPLICATION OR * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.*******************************************************************************//*****************************************************************************//**** @file xpseudo_asm_dcc.h** This header file contains macros for using inline assembler code. It is* written specifically for the DIAB compiler.** <pre>* MODIFICATION HISTORY:** Ver   Who  Date     Changes* ----- ---- -------- -----------------------------------------------* 1.00a ch   06/18/02 First release* </pre>*******************************************************************************/#ifndef XPSEUDO_ASM_H  /* prevent circular inclusions */#define XPSEUDO_ASM_H  /* by using protection macros *//***************************** Include Files ********************************/#include "xreg405.h"#ifdef __cplusplusextern "C" {#endif/************************** Constant Definitions ****************************//**************************** Type Definitions ******************************//***************** Macros (Inline Functions) Definitions ********************/#define mtgpr(rn, v) MTGPR(rn, v)#define MTGPR(rn, v) mtgpr_##rn(v)#define mfgpr(rn) MFGPR(rn)#define MFGPR(rn) mfgpr_##rn()asm volatile void mtgpr_r0(v) { % reg v; ! mr r0, v } asm volatile void mtgpr_r1(v) { % reg v; ! mr r1, v } asm volatile void mtgpr_r2(v) { % reg v; ! mr r2, v } asm volatile void mtgpr_r3(v) { % reg v; ! mr r3, v } asm volatile void mtgpr_r4(v) { % reg v; ! mr r4, v } asm volatile void mtgpr_r5(v) { % reg v; ! mr r5, v } asm volatile void mtgpr_r6(v) { % reg v; ! mr r6, v } asm volatile void mtgpr_r7(v) { % reg v; ! mr r7, v } asm volatile void mtgpr_r8(v) { % reg v; ! mr r8, v } asm volatile void mtgpr_r9(v) { % reg v; ! mr r9, v } asm volatile void mtgpr_r10(v) { % reg v; ! mr r10, v } asm volatile void mtgpr_r11(v) { % reg v; ! mr r11, v } asm volatile void mtgpr_r12(v) { % reg v; ! mr r12, v } asm volatile void mtgpr_r13(v) { % reg v; ! mr r13, v } asm volatile void mtgpr_r14(v) { % reg v; ! mr r14, v } asm volatile void mtgpr_r15(v) { % reg v; ! mr r15, v } asm volatile void mtgpr_r16(v) { % reg v; ! mr r16, v } asm volatile void mtgpr_r17(v) { % reg v; ! mr r17, v } asm volatile void mtgpr_r18(v) { % reg v; ! mr r18, v } asm volatile void mtgpr_r19(v) { % reg v; ! mr r19, v } asm volatile void mtgpr_r20(v) { % reg v; ! mr r20, v } asm volatile void mtgpr_r21(v) { % reg v; ! mr r21, v } asm volatile void mtgpr_r22(v) { % reg v; ! mr r22, v } asm volatile void mtgpr_r23(v) { % reg v; ! mr r23, v } asm volatile void mtgpr_r24(v) { % reg v; ! mr r24, v } asm volatile void mtgpr_r25(v) { % reg v; ! mr r25, v } asm volatile void mtgpr_r26(v) { % reg v; ! mr r26, v } asm volatile void mtgpr_r27(v) { % reg v; ! mr r27, v } asm volatile void mtgpr_r28(v) { % reg v; ! mr r28, v } asm volatile void mtgpr_r29(v) { % reg v; ! mr r29, v } asm volatile void mtgpr_r30(v) { % reg v; ! mr r30, v } asm volatile void mtgpr_r31(v) { % reg v; ! mr r31, v } asm volatile int mfgpr_r0() {! "r3"  mr r3, r0}asm volatile int mfgpr_r1() {! "r3"  mr r3, r1}asm volatile int mfgpr_r2() {! "r3"  mr r3, r2}asm volatile int mfgpr_r3() {! "r3"  mr r3, r3}asm volatile int mfgpr_r4() {! "r3"  mr r3, r4}asm volatile int mfgpr_r5() {! "r3"  mr r3, r5}asm volatile int mfgpr_r6() {! "r3"  mr r3, r6}asm volatile int mfgpr_r7() {! "r3"  mr r3, r7}asm volatile int mfgpr_r8() {! "r3"  mr r3, r8}asm volatile int mfgpr_r9() {! "r3"  mr r3, r9}asm volatile int mfgpr_r10() {! "r3"  mr r3, r10}asm volatile int mfgpr_r11() {! "r3"  mr r3, r11}asm volatile int mfgpr_r12() {! "r3"  mr r3, r12}asm volatile int mfgpr_r13() {! "r3"  mr r3, r13}asm volatile int mfgpr_r14() {! "r3"  mr r3, r14}asm volatile int mfgpr_r15() {! "r3"  mr r3, r15}asm volatile int mfgpr_r16() {! "r3"  mr r3, r16}asm volatile int mfgpr_r17() {! "r3"  mr r3, r17}asm volatile int mfgpr_r18() {! "r3"  mr r3, r18}asm volatile int mfgpr_r19() {! "r3"  mr r3, r19}asm volatile int mfgpr_r20() {! "r3"  mr r3, r20}asm volatile int mfgpr_r21() {! "r3"  mr r3, r21}asm volatile int mfgpr_r22() {! "r3"  mr r3, r22}asm volatile int mfgpr_r23() {! "r3"  mr r3, r23}asm volatile int mfgpr_r24() {! "r3"  mr r3, r24}asm volatile int mfgpr_r25() {! "r3"  mr r3, r25}asm volatile int mfgpr_r26() {! "r3"  mr r3, r26}asm volatile int mfgpr_r27() {! "r3"  mr r3, r27}asm volatile int mfgpr_r28() {! "r3"  mr r3, r28}asm volatile int mfgpr_r29() {! "r3"  mr r3, r29}asm volatile int mfgpr_r30() {! "r3"  mr r3, r30}asm volatile int mfgpr_r31() {! "r3"  mr r3, r31}asm volatile void mtspr(rn, v) {% reg v; con rn!  mtspr rn, v}asm volatile int mfspr(rn) {% con rn! "r3"  mfspr r3, rn}asm volatile void mtdcr(rn, v) {% reg v; con rn!  mtdcr rn, v}asm volatile int mfdcr(rn) {% con rn! "r3"  mfdcr r3, rn}asm volatile void mtmsr(v) {% reg v!   mtmsr v}asm volatile int mfmsr() {! "r3"  mfmsr r3}#define mtevpr(adr)     mtspr(XREG_SPR_EVPR, (adr))#define iccci           asm volatile("iccci 0,0\n")#define isync           asm volatile("isync\n")asm volatile void icbi(adr) {% reg adr    icbi 0, adr}asm volatile void dccci(adr) {% reg adr    dccci 0, adr}asm volatile void dcbst(adr) {% reg adr    dcbst 0, adr}asm volatile void dcbf(adr) {% reg adr    dcbf 0, adr}asm volatile int dcread(adr) {% reg adr! "r3"    dcread r3, 0, adr}#define sync            asm volatile("sync\n")/* memory operations */#define eieio           asm volatile("eieio\n")asm volatile char lbz(short adr) {% reg adr! "r3"    lbz r3, 0(adr)}asm volatile short lhz(short adr) {% reg adr! "r3"    lhz r3, 0(adr)}asm volatile int lwz(short adr) {% reg adr! "r3"    lwz r3, 0(adr)}asm volatile void stb(short adr, char val) {% reg adr; reg val;!     stb val, 0(adr)}asm volatile void sth(short adr, short val) {% reg adr; reg val;!     sth val, 0(adr)}asm volatile void stw(short adr, int val) {% reg adr; reg val;!     stw val, 0(adr)}asm volatile short lhbrx(int adr) {% reg adr; ! "r3"    lhbrx r3, 0, adr}asm volatile int lwbrx(int adr) {% reg adr; ! "r3"    lwbrx r3, 0, adr}asm volatile void sthbrx(int adr, short val) {% reg adr; reg val;!    sthbrx val, 0, adr}asm volatile void stwbrx(int adr, int val) {% reg adr; reg val;!    stwbrx val, 0, adr}#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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