jzmedia.h

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C头文件 代码 · 共 1,192 行 · 第 1/4 页

H
1,192
字号
 do { 														\    __asm__ __volatile ("Q8ADDE xr%0,xr%1,xr%2,xr%3,AA"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)  #define Q8ADDE_AS(xra,xrb,xrc,xrd)                          \ do { 														\    __asm__ __volatile ("Q8ADDE xr%0,xr%1,xr%2,xr%3,AS"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)  #define Q8ADDE_SA(xra,xrb,xrc,xrd)                          \ do { 														\    __asm__ __volatile ("Q8ADDE xr%0,xr%1,xr%2,xr%3,SA"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)      #define Q8ADDE_SS(xra,xrb,xrc,xrd)                          \ do { 														\    __asm__ __volatile ("Q8ADDE xr%0,xr%1,xr%2,xr%3,SS"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)/************************************Q8ACCE********************************/#define Q8ACCE_AA(xra,xrb,xrc,xrd)						    \ do { 														\    __asm__ __volatile ("Q8ACCE xr%0,xr%1,xr%2,xr%3,AA"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)  #define Q8ACCE_AS(xra,xrb,xrc,xrd)                          \ do { 														\    __asm__ __volatile ("Q8ACCE xr%0,xr%1,xr%2,xr%3,AS"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)  #define Q8ACCE_SA(xra,xrb,xrc,xrd)                          \ do { 														\    __asm__ __volatile ("Q8ACCE xr%0,xr%1,xr%2,xr%3,SA"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)      #define Q8ACCE_SS(xra,xrb,xrc,xrd)                          \ do { 														\    __asm__ __volatile ("Q8ACCE xr%0,xr%1,xr%2,xr%3,SS"     \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)/************************************Q8ABD********************************/#define Q8ABD(xra,xrb,xrc)									\ do { 														\    __asm__ __volatile ("Q8ABD xr%0,xr%1,xr%2"				\                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc));			    \  } while (0)  /************************************Q8SLT********************************/#define Q8SLT(xra,xrb,xrc)									\ do { 														\    __asm__ __volatile ("Q8SLT xr%0,xr%1,xr%2"				\                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc));			    \  } while (0)  /************************************Q8SAD********************************/#define Q8SAD(xra,xrb,xrc,xrd)								\ do { 														\    __asm__ __volatile ("Q8SAD xr%0,xr%1,xr%2,xr%3"      \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd));     \  } while (0)    /********************************Q8AVG/Q8AVGR*****************************/ #define Q8AVG(xra,xrb,xrc)                                \ do {                                                       \    __asm__ __volatile ("Q8AVG xr%0,xr%1,xr%2"              \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc));              \  } while (0) #define Q8AVGR(xra,xrb,xrc)                               \ do {                                                       \    __asm__ __volatile ("Q8AVGR xr%0,xr%1,xr%2"             \                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc));              \  } while (0)   /**********************************D32SHIFT******************************/#define D32SLL(xra,xrb,xrc,xrd,SFT4)								\	do { 															\    __asm__ __volatile ("D32SLL xr%0,xr%1,xr%2,xr%3,%4"				\                 :													\                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd),"K"(SFT4));   \  } while (0) #define D32SLR(xra,xrb,xrc,xrd,SFT4)						        \ do { 																\    __asm__ __volatile ("D32SLR xr%0,xr%1,xr%2,xr%3,%4"			    \                 :												    \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd),"K"(SFT4));   \  } while (0)#define D32SAR(xra,xrb,xrc,xrd,SFT4)					            \ do { 																\    __asm__ __volatile ("D32SAR xr%0,xr%1,xr%2,xr%3,%4"				\                 :													\                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd),"K"(SFT4));   \  } while (0)#define D32SARL(xra,xrb,xrc,SFT4)			                    \ do { 																\    __asm__ __volatile ("D32SARL xr%0,xr%1,xr%2,%3"				    \                 :												    \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(SFT4));	        \  } while (0)#define D32SLLV(xra,xrd,rb)									        \ do { 																\    __asm__ __volatile ("D32SLLV xr%0,xr%1,%z2"					    \                 :												    \                 :"K"(xra),"K"(xrd),"d"(rb));					    \  } while (0) #define D32SLRV(xra,xrd,rb)										    \ do { 																\    __asm__ __volatile ("D32SLRV xr%0,xr%1,%z2"					    \                 :												    \                 :"K"(xra),"K"(xrd),"d"(rb));					    \  } while (0)#define D32SARV(xra,xrd,rb)										    \ do { 																\    __asm__ __volatile ("D32SARV xr%0,xr%1,%z2"					    \                 :												    \                 :"K"(xra),"K"(xrd),"d"(rb));					    \  } while (0)#define D32SARW(xra,xrb,xrc,rb)					                    \ do { 																\    __asm__ __volatile ("D32SARW xr%0,xr%1,xr%2,%3"				    \                 :												    \                 :"K"(xra),"K"(xrb),"K"(xrc),"d"(rb));			    \  } while (0)/**********************************Q16SHIFT******************************/#define Q16SLL(xra,xrb,xrc,xrd,SFT4)									 \	do { 																 \    __asm__ __volatile ("Q16SLL xr%0,xr%1,xr%2,xr%3,%4"					 \                 :														 \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd),"K"(SFT4));		 \  } while (0) #define Q16SLR(xra,xrb,xrc,xrd,SFT4)									 \	do { 																 \    __asm__ __volatile ("Q16SLR xr%0,xr%1,xr%2,xr%3,%4"					 \                 :													     \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd),"K"(SFT4));        \  } while (0)#define Q16SAR(xra,xrb,xrc,xrd,SFT4)									 \	do { 																 \    __asm__ __volatile ("Q16SAR xr%0,xr%1,xr%2,xr%3,%4"				     \                 :														 \                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd),"K"(SFT4));        \  } while (0)#define Q16SLLV(xra,xrd,rb)										         \	do { 																 \    __asm__ __volatile ("Q16SLLV xr%0,xr%1,%z2"						     \                 :													     \                 :"K"(xra),"K"(xrd),"d"(rb));							 \  } while (0) #define Q16SLRV(xra,xrd,rb)										         \	do { 																 \    __asm__ __volatile ("Q16SLRV xr%0,xr%1,%z2"						     \                 :													     \                 :"K"(xra),"K"(xrd),"d"(rb));						     \  } while (0)#define Q16SARV(xra,xrd,rb)											     \	do { 																 \    __asm__ __volatile ("Q16SARV xr%0,xr%1,%z2"						     \                 :												         \                 :"K"(xra),"K"(xrd),"d"(rb));						     \  } while (0)/*********************************MAX/MIN*********************************/ #define S32MAX(xra,xrb,xrc)										\ do { 															\    __asm__ __volatile ("S32MAX xr%0,xr%1,xr%2"					\                 :                                              \                 :"K"(xra),"K"(xrb),"K"(xrc));                  \  } while (0)#define S32MIN(xra,xrb,xrc)										\ do { 															\    __asm__ __volatile ("S32MIN xr%0,xr%1,xr%2"					\                 :                                              \                 :"K"(xra),"K"(xrb),"K"(xrc));                  \  } while (0)#define D16MAX(xra,xrb,xrc)										\ do { 															\    __asm__ __volatile ("D16MAX xr%0,xr%1,xr%2"					\                 :                                              \                 :"K"(xra),"K"(xrb),"K"(xrc));                  \  } while (0)#define D16MIN(xra,xrb,xrc)										\ do { 															\    __asm__ __volatile ("D16MIN xr%0,xr%1,xr%2"					\                 :                                              \                 :"K"(xra),"K"(xrb),"K"(xrc));                  \  } while (0)#define Q8MAX(xra,xrb,xrc)										\ do { 															\    __asm__ __volatile ("Q8MAX xr%0,xr%1,xr%2"					\                 :                                              \                 :"K"(xra),"K"(xrb),"K"(xrc));                  \  } while (0)#define Q8MIN(xra,xrb,xrc)										\ do { 															\    __asm__ __volatile ("Q8MIN xr%0,xr%1,xr%2"					\                 :                                              \                 :"K"(xra),"K"(xrb),"K"(xrc));                  \  } while (0)                                       /*************************************MOVE********************************/ #define S32I2M(xra,rb)							\  do { 											\    __asm__ __volatile ("S32I2M xr%0,%z1"		\		   :								    \ 	       :"K"(xra),"d"(rb));					\  } while (0) #define S32M2I(xra)								\__extension__ ({								\  int  __d;										\  __asm__ __volatile ("S32M2I xr%1, %0" 		    \	   :"=d"(__d)								\ 	   :"K"(xra));                              \  __d; 											\})  /*********************************S32SFL**********************************/ #define S32SFL(xra,xrb,xrc,xrd,optn2)								\	do { 															\    __asm__ __volatile ("S32SFL xr%0,xr%1,xr%2,xr%3,ptn%4"			\                 :													\                 :"K"(xra),"K"(xrb),"K"(xrc),"K"(xrd),"K"(optn2));	\  } while (0)  /*********************************S32ALN**********************************/ #define S32ALN(xra,xrb,xrc,rs)								    \ do { 															\    __asm__ __volatile ("S32ALN xr%0,xr%1,xr%2,%z3"			    \                 :                                              \                 :"K"(xra),"K"(xrb),"K"(xrc),"d"(rs));			\  } while (0) /*********************************Q16SAT**********************************/ #define Q16SAT(xra,xrb,xrc)									\ do { 														\    __asm__ __volatile ("Q16SAT xr%0,xr%1,xr%2"				\                 :                                          \                 :"K"(xra),"K"(xrb),"K"(xrc));				\  } while (0)  #define i_pref(hint,base,offset)        \({ __asm__ __volatile__("pref %0,%2(%1)"::"i"(hint),"r"(base),"i"(offset):"memory");})#endif

⌨️ 快捷键说明

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