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

📄 cgen-ops.h

📁 这个是LINUX下的GDB调度工具的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
SEMOPS_INLINE UQISUBWORDSIUQI (SI in, int byte){  assert (byte >= 0 && byte <= 3);  return (UQI) (in >> (8 * (3 - byte))) & 0xFF;}SEMOPS_INLINE QISUBWORDDIQI (DI in, int byte){  assert (byte >= 0 && byte <= 7);  return (UQI) (in >> (8 * (7 - byte))) & 0xFF;}SEMOPS_INLINE HISUBWORDDIHI (DI in, int word){  assert (word >= 0 && word <= 3);  return (UHI) (in >> (16 * (3 - word))) & 0xFFFF;}SEMOPS_INLINE HISUBWORDSIHI (SI in, int word){  if (word == 0)    return (USI) in >> 16;  else    return in;}SEMOPS_INLINE SISUBWORDSFSI (SF in){  union { SF in; SI out; } x;  x.in = in;  return x.out;}SEMOPS_INLINE DISUBWORDDFDI (DF in){  union { DF in; DI out; } x;  x.in = in;  return x.out;}SEMOPS_INLINE UQISUBWORDDIUQI (DI in, int byte){  assert (byte >= 0 && byte <= 7);  return (UQI) (in >> (8 * (7 - byte)));}SEMOPS_INLINE SISUBWORDDISI (DI in, int word){  if (word == 0)    return (UDI) in >> 32;  else    return in;}SEMOPS_INLINE SISUBWORDDFSI (DF in, int word){  /* Note: typedef UDI DF; */  if (word == 0)    return (UDI) in >> 32;  else    return in;}SEMOPS_INLINE SISUBWORDXFSI (XF in, int word){  /* Note: typedef struct { SI parts[3]; } XF; */  union { XF in; SI out[3]; } x;  x.in = in;  return x.out[word];}SEMOPS_INLINE SISUBWORDTFSI (TF in, int word){  /* Note: typedef struct { SI parts[4]; } TF; */  union { TF in; SI out[4]; } x;  x.in = in;  return x.out[word];}SEMOPS_INLINE DIJOINSIDI (SI x0, SI x1){  if (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)    return MAKEDI (x0, x1);  else    return MAKEDI (x1, x0);}SEMOPS_INLINE DFJOINSIDF (SI x0, SI x1){  union { SI in[2]; DF out; } x;  if (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)    x.in[0] = x0, x.in[1] = x1;  else    x.in[1] = x0, x.in[0] = x1;  return x.out;}SEMOPS_INLINE XFJOINSIXF (SI x0, SI x1, SI x2){  union { SI in[3]; XF out; } x;  if (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)    x.in[0] = x0, x.in[1] = x1, x.in[2] = x2;  else    x.in[2] = x0, x.in[1] = x1, x.in[0] = x2;  return x.out;}SEMOPS_INLINE TFJOINSITF (SI x0, SI x1, SI x2, SI x3){  union { SI in[4]; TF out; } x;  if (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)    x.in[0] = x0, x.in[1] = x1, x.in[2] = x2, x.in[3] = x3;  else    x.in[3] = x0, x.in[2] = x1, x.in[1] = x2, x.in[0] = x3;  return x.out;}#elseQI SUBWORDSIQI (SI);HI SUBWORDSIHI (HI);SI SUBWORDSFSI (SF);SF SUBWORDSISF (SI);DI SUBWORDDFDI (DF);DF SUBWORDDIDF (DI);QI SUBWORDDIQI (DI, int);HI SUBWORDDIHI (DI, int);SI SUBWORDDISI (DI, int);SI SUBWORDDFSI (DF, int);SI SUBWORDXFSI (XF, int);SI SUBWORDTFSI (TF, int);UQI SUBWORDSIUQI (SI);UQI SUBWORDDIUQI (DI);DI JOINSIDI (SI, SI);DF JOINSIDF (SI, SI);XF JOINSIXF (SI, SI, SI);TF JOINSITF (SI, SI, SI, SI);#endif /* SUBWORD,JOIN *//* Semantic support utilities.  */#ifdef SEMOPS_DEFINE_INLINESEMOPS_INLINE SIADDCSI (SI a, SI b, BI c){  SI res = ADDSI (a, ADDSI (b, c));  return res;}SEMOPS_INLINE BIADDCFSI (SI a, SI b, BI c){  SI tmp = ADDSI (a, ADDSI (b, c));  BI res = ((USI) tmp < (USI) a) || (c && tmp == a);  return res;}SEMOPS_INLINE BIADDOFSI (SI a, SI b, BI c){  SI tmp = ADDSI (a, ADDSI (b, c));  BI res = (((a < 0) == (b < 0))	    && ((a < 0) != (tmp < 0)));  return res;}SEMOPS_INLINE SISUBCSI (SI a, SI b, BI c){  SI res = SUBSI (a, ADDSI (b, c));  return res;}SEMOPS_INLINE BISUBCFSI (SI a, SI b, BI c){  BI res = ((USI) a < (USI) b) || (c && a == b);  return res;}SEMOPS_INLINE BISUBOFSI (SI a, SI b, BI c){  SI tmp = SUBSI (a, ADDSI (b, c));  BI res = (((a < 0) != (b < 0))	    && ((a < 0) != (tmp < 0)));  return res;}SEMOPS_INLINE HIADDCHI (HI a, HI b, BI c){  HI res = ADDHI (a, ADDHI (b, c));  return res;}SEMOPS_INLINE BIADDCFHI (HI a, HI b, BI c){  HI tmp = ADDHI (a, ADDHI (b, c));  BI res = ((UHI) tmp < (UHI) a) || (c && tmp == a);  return res;}SEMOPS_INLINE BIADDOFHI (HI a, HI b, BI c){  HI tmp = ADDHI (a, ADDHI (b, c));  BI res = (((a < 0) == (b < 0))	    && ((a < 0) != (tmp < 0)));  return res;}SEMOPS_INLINE HISUBCHI (HI a, HI b, BI c){  HI res = SUBHI (a, ADDHI (b, c));  return res;}SEMOPS_INLINE BISUBCFHI (HI a, HI b, BI c){  BI res = ((UHI) a < (UHI) b) || (c && a == b);  return res;}SEMOPS_INLINE BISUBOFHI (HI a, HI b, BI c){  HI tmp = SUBHI (a, ADDHI (b, c));  BI res = (((a < 0) != (b < 0))	    && ((a < 0) != (tmp < 0)));  return res;}SEMOPS_INLINE QIADDCQI (QI a, QI b, BI c){  QI res = ADDQI (a, ADDQI (b, c));  return res;}SEMOPS_INLINE BIADDCFQI (QI a, QI b, BI c){  QI tmp = ADDQI (a, ADDQI (b, c));  BI res = ((UQI) tmp < (UQI) a) || (c && tmp == a);  return res;}SEMOPS_INLINE BIADDOFQI (QI a, QI b, BI c){  QI tmp = ADDQI (a, ADDQI (b, c));  BI res = (((a < 0) == (b < 0))	    && ((a < 0) != (tmp < 0)));  return res;}SEMOPS_INLINE QISUBCQI (QI a, QI b, BI c){  QI res = SUBQI (a, ADDQI (b, c));  return res;}SEMOPS_INLINE BISUBCFQI (QI a, QI b, BI c){  BI res = ((UQI) a < (UQI) b) || (c && a == b);  return res;}SEMOPS_INLINE BISUBOFQI (QI a, QI b, BI c){  QI tmp = SUBQI (a, ADDQI (b, c));  BI res = (((a < 0) != (b < 0))	    && ((a < 0) != (tmp < 0)));  return res;}#elseSI ADDCSI (SI, SI, BI);UBI ADDCFSI (SI, SI, BI);UBI ADDOFSI (SI, SI, BI);SI SUBCSI (SI, SI, BI);UBI SUBCFSI (SI, SI, BI);UBI SUBOFSI (SI, SI, BI);HI ADDCHI (HI, HI, BI);UBI ADDCFHI (HI, HI, BI);UBI ADDOFHI (HI, HI, BI);HI SUBCHI (HI, HI, BI);UBI SUBCFHI (HI, HI, BI);UBI SUBOFHI (HI, HI, BI);QI ADDCQI (QI, QI, BI);UBI ADDCFQI (QI, QI, BI);UBI ADDOFQI (QI, QI, BI);QI SUBCQI (QI, QI, BI);UBI SUBCFQI (QI, QI, BI);UBI SUBOFQI (QI, QI, BI);#endif#endif /* CGEN_SEM_OPS_H */

⌨️ 快捷键说明

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