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

📄 e500-abi.c

📁 这个是LINUX下的GDB调度工具的源码
💻 C
字号:
#include <spe.h>/* Test PowerPC SPU extensions.  */#define vector __attribute__((vector_size(8)))vector unsigned short f_vec;vector short g_vec;vector float h_vec;vector float i_vec;vector unsigned int l_vec;vector int m_vec;vector int n_vec;/* dummy variables used in the testfile */vector unsigned int a_vec_d = {1, 1};vector int b_vec_d = {0, 0};vector float c_vec_d = {1.0, 1.0};vector unsigned int d_vec_d = {0, 0};vector int e_vec_d = {1, 1};vector unsigned short f_vec_d = {1, 1, 1, 1};vector short g_vec_d = {1, 1, 1, 1};vector float h_vec_d = {1.0, 1.0};vector float i_vec_d = {2.0, 2.0};vector unsigned int l_vec_d = {0, 0};vector int m_vec_d = {0, 0};vector intvec_func (vector unsigned int a_vec_f,          vector int b_vec_f,          vector float c_vec_f,          vector unsigned int d_vec_f,          vector int e_vec_f,          vector unsigned short f_vec_f,          vector short g_vec_f,          vector float h_vec_f,          vector float i_vec_f,          vector unsigned int l_vec_f,          vector int m_vec_f) {  vector int n_vec;  int x,y,z;  x = 2;  y = 3;   z = x + y;  z++;  n_vec = __ev_and(a_vec_f, b_vec_f);  n_vec = __ev_or(c_vec_f, d_vec_f);  n_vec = __ev_or(e_vec_f, f_vec_f);  n_vec = __ev_and(g_vec_f, h_vec_f);  n_vec = __ev_and(i_vec_f, l_vec_f);  n_vec = __ev_or(m_vec_f, a_vec_f);  return n_vec;}void marker(void) {};intmain (void){  vector unsigned int a_vec;  vector int b_vec;  vector float c_vec;  vector unsigned int d_vec;  vector int e_vec;  vector int res_vec;  a_vec = (vector unsigned int)__ev_create_u64 ((uint64_t) 55);  b_vec = __ev_create_s64 ((int64_t) 66);  c_vec = (vector float) __ev_create_fs (3.14F, 2.18F);  d_vec = (vector unsigned int) __ev_create_u32 ((uint32_t) 5, (uint32_t) 4);  e_vec = (vector int) __ev_create_s32 ((int32_t) 5, (int32_t) 6);  f_vec = (vector unsigned short) __ev_create_u16 ((uint16_t) 6, (uint16_t) 6, (uint16_t) 7, (uint16_t) 1);  g_vec = (vector short) __ev_create_s16 ((int16_t) 6, (int16_t) 6, (int16_t) 7, (int16_t) 9);  h_vec = (vector float) __ev_create_sfix32_fs (3.0F, 2.0F);  i_vec = (vector float) __ev_create_ufix32_fs (3.0F, 2.0F);  l_vec = (vector unsigned int) __ev_create_ufix32_u32 (3U, 5U);  m_vec = (vector int) __ev_create_sfix32_s32 (6, 9);  marker ();#if 0/* This line is useful for cut-n-paste from a gdb session. */vec_func(a_vec,b_vec,c_vec,d_vec,e_vec,f_vec,g_vec,h_vec,i_vec,l_vec,m_vec)#endif  res_vec = vec_func (a_vec,  /* goes in r3 */                      b_vec,  /* goes in r4 */                      c_vec,  /* goes in r5 */                      d_vec,  /* goes in r6 */                      e_vec,  /* goes in r7 */                      f_vec,  /* goes in r8 */                      g_vec,  /* goes in r9 */                      h_vec,  /* goes in r10 */                      i_vec,  /* goes in stack */                      l_vec,  /* goes in stack */                      m_vec);  /* goes in stack */  return 0;}

⌨️ 快捷键说明

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