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

📄 sem.c

📁 这个是LINUX下的GDB调度工具的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  BI tmp_tmp;  QI tmp_cc;  SI tmp_result;  tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);  tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);if (EQBI (tmp_tmp, 0)) {  tmp_cc = ANDQI (tmp_cc, 13);} else {  tmp_cc = ORQI (tmp_cc, 2);}  tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);if (EQBI (tmp_tmp, 0)) {  tmp_cc = ANDQI (tmp_cc, 14);} else {  tmp_cc = ORQI (tmp_cc, 1);}  tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));if (EQSI (tmp_result, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);} else {if (LTSI (tmp_result, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);} else {  tmp_cc = ANDQI (tmp_cc, 3);}}  {    SI opval = tmp_result;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }  {    UQI opval = tmp_cc;    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}  abuf->written = written;  return vpc;#undef FLD}/* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_caddcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  BI tmp_tmp;  QI tmp_cc;  SI tmp_result;  tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);  tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);if (EQBI (tmp_tmp, 0)) {  tmp_cc = ANDQI (tmp_cc, 13);} else {  tmp_cc = ORQI (tmp_cc, 2);}  tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);if (EQBI (tmp_tmp, 0)) {  tmp_cc = ANDQI (tmp_cc, 14);} else {  tmp_cc = ORQI (tmp_cc, 1);}  tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));if (EQSI (tmp_result, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);} else {if (LTSI (tmp_result, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);} else {  tmp_cc = ANDQI (tmp_cc, 3);}}  {    SI opval = tmp_result;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }  {    UQI opval = tmp_cc;    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}  abuf->written = written;  return vpc;#undef FLD}/* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_csmulcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  DI tmp_tmp;  QI tmp_cc;  tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);  tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));if (EQDI (SRLDI (tmp_tmp, 63), 0)) {  tmp_cc = ANDQI (tmp_cc, 7);} else {  tmp_cc = ORQI (tmp_cc, 8);}if (EQBI (EQDI (tmp_tmp, 0), 0)) {  tmp_cc = ANDQI (tmp_cc, 11);} else {  tmp_cc = ORQI (tmp_cc, 4);}  {    DI opval = tmp_tmp;    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);  }  {    UQI opval = tmp_cc;    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}  abuf->written = written;  return vpc;#undef FLD}/* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_caddcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  SI tmp_tmp;  tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));  {    SI opval = tmp_tmp;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }if (EQSI (tmp_tmp, 0)) {  {    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }} else {if (LTSI (tmp_tmp, 0)) {  {    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }} else {  {    UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}}}  abuf->written = written;  return vpc;#undef FLD}/* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_caddcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  SI tmp_tmp;  tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));  {    SI opval = tmp_tmp;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }if (EQSI (tmp_tmp, 0)) {  {    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }} else {if (LTSI (tmp_tmp, 0)) {  {    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }} else {  {    UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}}}  abuf->written = written;  return vpc;#undef FLD}/* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_caddcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  SI tmp_tmp;  tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));  {    SI opval = tmp_tmp;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }if (EQSI (tmp_tmp, 0)) {  {    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }} else {if (LTSI (tmp_tmp, 0)) {  {    UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }} else {  {    UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}}}  abuf->written = written;  return vpc;#undef FLD}/* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_caddcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  SI tmp_shift;  SI tmp_tmp;  QI tmp_cc;  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);  tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));  tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);  {    SI opval = tmp_tmp;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }if (EQSI (tmp_tmp, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);} else {if (LTSI (tmp_tmp, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);} else {  tmp_cc = ANDQI (tmp_cc, 3);}}  {    UQI opval = tmp_cc;    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}  abuf->written = written;  return vpc;#undef FLD}/* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_caddcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  SI tmp_shift;  SI tmp_tmp;  QI tmp_cc;  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);  tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));  tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);  {    SI opval = tmp_tmp;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }if (EQSI (tmp_tmp, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);} else {if (LTSI (tmp_tmp, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);} else {  tmp_cc = ANDQI (tmp_cc, 3);}}  {    UQI opval = tmp_cc;    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}  abuf->written = written;  return vpc;#undef FLD}/* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_caddcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {{  SI tmp_shift;  SI tmp_tmp;  QI tmp_cc;  tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);  tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));  tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);  {    SI opval = tmp_tmp;    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 6);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }if (EQSI (tmp_tmp, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);} else {if (LTSI (tmp_tmp, 0)) {  tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);} else {  tmp_cc = ANDQI (tmp_cc, 3);}}  {    UQI opval = tmp_cc;    sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);    written |= (1 << 7);    TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);  }}}  abuf->written = written;  return vpc;#undef FLD}/* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */static SEM_PCSEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_addcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);  int UNUSED written = 0;  IADDR UNUSED pc = abuf->addr;  SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);  {    SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }  return vpc;#undef FLD}/* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */static SEM_PCSEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_addcc.f  ARGBUF *abuf = SEM_ARGBUF (sem_arg);

⌨️ 快捷键说明

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