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

📄 sem.c

📁 这个是LINUX下的GDB调度工具的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
    sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);    TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);  }  return vpc;#undef FLD}/* smsss: smsss$pack $GRi,$GRj */static SEM_PCSEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_smass.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);  {    DI opval = (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (ADDDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (ADDDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));    sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);    TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);  }  return vpc;#undef FLD}/* sll: sll$pack $GRi,$GRj,$GRk */static SEM_PCSEM_FN_NAME (frvbf,sll) (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 = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));    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}/* srl: srl$pack $GRi,$GRj,$GRk */static SEM_PCSEM_FN_NAME (frvbf,srl) (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 = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));    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}/* sra: sra$pack $GRi,$GRj,$GRk */static SEM_PCSEM_FN_NAME (frvbf,sra) (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 = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));    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}/* slass: slass$pack $GRi,$GRj,$GRk */static SEM_PCSEM_FN_NAME (frvbf,slass) (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 = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));    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}/* scutss: scutss$pack $GRj,$GRk */static SEM_PCSEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_scutss.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 = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));    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}/* scan: scan$pack $GRi,$GRj,$GRk */static SEM_PCSEM_FN_NAME (frvbf,scan) (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 tmp_tmp1;  SI tmp_tmp2;  tmp_tmp1 = GET_H_GR (FLD (f_GRi));  tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);  {    SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));    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}/* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = INVSI (GET_H_GR (FLD (f_GRj)));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 3);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_clddu.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 opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));    sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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))) {{frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);; /*clobber*/}}  abuf->written = written;  return vpc;#undef FLD}/* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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))) {{frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);; /*clobber*/}}  abuf->written = written;  return vpc;#undef FLD}/* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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 opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}  abuf->written = written;  return vpc;#undef FLD}/* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */static SEM_PCSEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg){#define FLD(f) abuf->fields.sfmt_cswap.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_tmp1;  SI tmp_tmp2;  tmp_tmp1 = GET_H_GR (FLD (f_GRi));  tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);  {    SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));    sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);    written |= (1 << 4);    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);  }}}  abuf->written = written;  return vpc;

⌨️ 快捷键说明

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