📄 intrinsic.h
字号:
/**************************************************
*
* This file declares the ARM intrinsic inline functions.
*
* Copyright 1999-2004 IAR Systems. All rights reserved.
*
* $Revision: 1.2 $
*
**************************************************/
#ifndef __INTRINSIC_INCLUDED
#define __INTRINSIC_INCLUDED
/*
* Check that the correct C compiler is used.
*/
#if ((__TID__ >> 8) & 0x007F) != 79
#error "File intrinsic.h can only be used together with iccarm."
#endif
#ifdef __cplusplus
extern "C" {
#endif
#pragma language=extended
__intrinsic void __disable_interrupt(void);
__intrinsic void __enable_interrupt(void);
__intrinsic void __no_operation(void);
__intrinsic void __require(void *);
#define __segment_size( SEG ) ((char *)__sfe( SEG ) - (char*)__sfb( SEG ))
#define __sfs( SEG ) ((char *)__sfe( SEG ) - (char*)__sfb( SEG ))
// ARM-mode intrinsics
typedef unsigned long __ul;
__intrinsic void __MCR( __ul coproc, __ul opcode_1, __ul src, __ul CRn, __ul CRm, __ul opcode_2 );
__intrinsic unsigned long __MRC( __ul coproc, __ul opcode_1, __ul CRn, __ul CRm, __ul opcode_2 );
// Architecture v4T
#if defined(__ARM4TM__)
__intrinsic unsigned long __get_CPSR( void );
__intrinsic void __set_CPSR( unsigned long );
// Architecture v5T
#if defined(__ARM5__)
__intrinsic unsigned char __CLZ( unsigned long );
// Architecture v5TE
#if defined(__ARM5E__)
__intrinsic signed long __QADD( signed long, signed long );
__intrinsic signed long __QDADD( signed long, signed long );
__intrinsic signed long __QSUB( signed long, signed long );
__intrinsic signed long __QDSUB( signed long, signed long );
__intrinsic signed long __QDOUBLE( signed long );
__intrinsic int __QFlag( void );
__intrinsic signed long __SMUL( signed short, signed short );
#endif // __ARM5E__
#endif // __ARM5__
#endif // __ARM4TM__
#pragma language=default
#ifdef __cplusplus
}
#endif
#endif /* __INTRINSIC_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -