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

📄 dasm.c

📁 gdb for adsp develop
💻 C
📖 第 1 页 / 共 3 页
字号:
      case MUL1:        dasm_rc_ra_const8(instr, addr);                        break;      case MULL0:       dasm_rc_ra_rb(instr, addr);                        break;      case MULL1:       dasm_rc_ra_const8(instr, addr);                        break;      case DIV0_OP0:    dasm_rc_rb(instr, addr);                        break;      case DIV0_OP1:    dasm_rc_const8(instr, addr);                        break;      case DIV_OP0:    dasm_rc_ra_rb(instr, addr);                        break;      case DIV_OP1:     dasm_rc_ra_const8(instr, addr);                        break;      case DIVL0:       dasm_rc_ra_rb(instr, addr);                        break;      case DIVL1:       dasm_rc_ra_const8(instr, addr);                        break;      case DIVREM0:     dasm_rc_ra_rb(instr, addr);                        break;      case DIVREM1:     dasm_rc_ra_const8(instr, addr);                        break;      /* Opcodes 0x70 to 0x7F */      case ASEQ0:       dasm_vn_ra_rb(instr, addr);                        break;      case ASEQ1:       dasm_vn_ra_const8(instr, addr);                        break;      case ASNEQ0:      dasm_vn_ra_rb(instr, addr);                        break;      case ASNEQ1:      dasm_vn_ra_const8(instr, addr);                        break;      case MULU0:       dasm_rc_ra_rb(instr, addr);                        break;      case MULU1:       dasm_rc_ra_const8(instr, addr);                        break;      case ILLEGAL_76:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_77:  dasm_undefined(instr, addr);                        break;      case INHW0:       dasm_rc_ra_rb(instr, addr);                        break;      case INHW1:       dasm_rc_ra_const8(instr, addr);                        break;      case EXTRACT0:    dasm_rc_ra_rb(instr, addr);                        break;      case EXTRACT1:    dasm_rc_ra_const8(instr, addr);                        break;      case EXHW0:       dasm_rc_ra_rb(instr, addr);                        break;      case EXHW1:       dasm_rc_ra_const8(instr, addr);                        break;      case EXHWS:       dasm_rc_ra(instr, addr);                        break;      case ILLEGAL_7F:  dasm_undefined(instr, addr);                        break;      /* Opcodes 0x80 to 0x8F */      case SLL0:        dasm_rc_ra_rb(instr, addr);                        break;      case SLL1:        dasm_rc_ra_const8(instr, addr);                        break;      case SRL0:        dasm_rc_ra_rb(instr, addr);                        break;      case SRL1:        dasm_rc_ra_const8(instr, addr);                        break;      case ILLEGAL_84:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_85:  dasm_undefined(instr, addr);                        break;      case SRA0:        dasm_rc_ra_rb(instr, addr);                        break;      case SRA1:        dasm_rc_ra_const8(instr, addr);                        break;      case IRET:        dasm_none(instr, addr);                        break;      case HALT_OP:     dasm_none(instr, addr);                        break;      case ILLEGAL_8A:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_8B:  dasm_undefined(instr, addr);                        break;      case IRETINV:     			if ((target_config.processor_id & 0x60) == 0x60)			   dasm_one(instr, addr);			else			   dasm_none(instr, addr);                        break;      case ILLEGAL_8D:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_8E:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_8F:  dasm_undefined(instr, addr);                        break;      /* Opcodes 0x90 to 0x9F */      case AND_OP0:     dasm_rc_ra_rb(instr, addr);                        break;      case AND_OP1:     dasm_rc_ra_const8(instr, addr);                        break;      case OR_OP0:      dasm_rc_ra_rb(instr, addr);                        break;      case OR_OP1:      dasm_rc_ra_const8(instr, addr);                        break;      case XOR_OP0:     dasm_rc_ra_rb(instr, addr);                        break;      case XOR_OP1:     dasm_rc_ra_const8(instr, addr);                        break;      case XNOR0:       dasm_rc_ra_rb(instr, addr);                        break;      case XNOR1:       dasm_rc_ra_const8(instr, addr);                        break;      case NOR0:        dasm_rc_ra_rb(instr, addr);                        break;      case NOR1:        dasm_rc_ra_const8(instr, addr);                        break;      case NAND0:       dasm_rc_ra_rb(instr, addr);                        break;      case NAND1:       dasm_rc_ra_const8(instr, addr);                        break;      case ANDN0:       dasm_rc_ra_rb(instr, addr);                        break;      case ANDN1:       dasm_rc_ra_const8(instr, addr);                        break;      case SETIP:       dasm_rc_ra_rb(instr, addr);                        break;      case INV:         			if ((target_config.processor_id & 0x60) == 0x60)			   dasm_one(instr, addr);			else			   dasm_none(instr, addr);                        break;      /* Opcodes 0xA0 to 0xAF */      case JMP0:        dasm_rtarget(instr, addr);                        break;      case JMP1:        dasm_atarget(instr, addr);                        break;      case ILLEGAL_A2:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_A3:  dasm_undefined(instr, addr);                        break;      case JMPF0:       dasm_ra_rtarget(instr, addr);                        break;      case JMPF1:       dasm_ra_atarget(instr, addr);                        break;      case ILLEGAL_A6:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_A7:  dasm_undefined(instr, addr);                        break;      case CALL0:       dasm_ra_rtarget(instr, addr);                        break;      case CALL1:       dasm_ra_atarget(instr, addr);                        break;      case ORN_OP0:  	dasm_undefined(instr, addr);                        break;      case ORN_OP1:  	dasm_undefined(instr, addr);                        break;      case JMPT0:       dasm_ra_rtarget(instr, addr);                        break;      case JMPT1:       dasm_ra_atarget(instr, addr);                        break;      case ILLEGAL_AE:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_AF:  dasm_undefined(instr, addr);                        break;      /* Opcodes 0xB0 to 0xBF */      case ILLEGAL_B0:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_B1:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_B2:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_B3:  dasm_undefined(instr, addr);                        break;      case JMPFDEC0:    dasm_ra_rtarget(instr, addr);                        break;      case JMPFDEC1:    dasm_ra_atarget(instr, addr);                        break;      case MFTLB:       dasm_rc_ra(instr, addr);                        break;      case ILLEGAL_B7:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_B8:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_B9:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_BA:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_BB:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_BC:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_BD:  dasm_undefined(instr, addr);                        break;      case MTTLB:       dasm_ra_rb(instr, addr);                        break;      case ILLEGAL_BF:  dasm_undefined(instr, addr);                        break;      /* Opcodes 0xC0 to 0xCF */      case JMPI:        dasm_rb(instr, addr);                        break;      case ILLEGAL_C1:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_C2:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_C3:  dasm_undefined(instr, addr);                        break;      case JMPFI:       dasm_ra_rb(instr, addr);                        break;      case ILLEGAL_C5:  dasm_undefined(instr, addr);                        break;      case MFSR:        dasm_rc_spid(instr, addr);                        break;      case ILLEGAL_C7:  dasm_undefined(instr, addr);                        break;      case CALLI:       dasm_ra_rb(instr, addr);                        break;      case ILLEGAL_C9:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_CA:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_CB:  dasm_undefined(instr, addr);                        break;      case JMPTI:       dasm_ra_rb(instr, addr);                        break;      case ILLEGAL_CD:  dasm_undefined(instr, addr);                        break;      case MTSR:        dasm_spid_rb(instr, addr);                        break;      case ILLEGAL_CF:  dasm_undefined(instr, addr);                        break;      /* Opcodes 0xD0 to 0xDF */      case ILLEGAL_D0:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_D1:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_D2:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_D3:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_D4:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_D5:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_D6:  dasm_undefined(instr, addr);                        break;      case EMULATE:     dasm_vn_ra_rb(instr, addr);                        break;      case ILLEGAL_D8:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_D9:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_DA:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_DB:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_DC:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_DD:  dasm_undefined(instr, addr);                        break;      case MULTM:       dasm_rc_ra_rb(instr, addr);                        break;      case MULTMU:      dasm_rc_ra_rb(instr, addr);                        break;      /* Opcodes 0xE0 to 0xEF */      case MULTIPLY:    dasm_rc_ra_rb(instr, addr);                        break;      case DIVIDE:      dasm_rc_ra_rb(instr, addr);                        break;      case MULTIPLU:    dasm_rc_ra_rb(instr, addr);                        break;      case DIVIDU:      dasm_rc_ra_rb(instr, addr);                        break;      case CONVERT:     dasm_convert(instr, addr);                        break;      case SQRT:        dasm_rc_ra_const8(instr, addr);                        break;      case CLASS:       dasm_dc_ra_rb(instr, addr);                        break;      case ILLEGAL_E7:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_E8:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_E9:  dasm_undefined(instr, addr);                        break;      case FEQ:         dasm_rc_ra_rb(instr, addr);                        break;      case DEQ:         dasm_rc_ra_rb(instr, addr);                        break;      case FGT:         dasm_rc_ra_rb(instr, addr);                        break;      case DGT:         dasm_rc_ra_rb(instr, addr);                        break;      case FGE:         dasm_rc_ra_rb(instr, addr);                        break;      case DGE:         dasm_rc_ra_rb(instr, addr);                        break;      /* Opcodes 0xF0 to 0xFF */      case FADD:        dasm_rc_ra_rb(instr, addr);                        break;      case DADD:        dasm_rc_ra_rb(instr, addr);                        break;      case FSUB:        dasm_rc_ra_rb(instr, addr);                        break;      case DSUB:        dasm_rc_ra_rb(instr, addr);                        break;      case FMUL:        dasm_rc_ra_rb(instr, addr);                        break;      case DMUL:        dasm_rc_ra_rb(instr, addr);                        break;      case FDIV:        dasm_rc_ra_rb(instr, addr);                        break;      case DDIV:        dasm_rc_ra_rb(instr, addr);                        break;      case ILLEGAL_F8:  dasm_undefined(instr, addr);                        break;      case FDMUL:       dasm_rc_ra_rb(instr, addr);                        break;      case ILLEGAL_FA:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_FB:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_FC:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_FD:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_FE:  dasm_undefined(instr, addr);                        break;      case ILLEGAL_FF:  dasm_undefined(instr, addr);                        break;      }  /* end switch */   }  /* End dasm_instr() *//*** The following functions are used to format an instruction** into human-readable form.  All of the Am29000 instruction** formats are supported below.*//*** Format:  0xnnnnnnnn*//*ARGSUSED*/voiddasm_undefined(instr, pc)   struct   instr_t *instr;   ADDR32   pc;   {   if (io_config.echo_mode == (INT32) TRUE)     fprintf(io_config.echo_file, ".word    0x%02x%02x%02x%02x", instr->op,                 instr->c, instr->a, instr->b);   (void) fprintf(stderr, ".word    0x%02x%02x%02x%02x", instr->op,                 instr->c, instr->a, instr->b);   }/*** Format:  <Mnemonic>  ra, const16**** (See CONSTN)*//*ARGSUSED*/voiddasm_ra_const16n(instr, pc)   struct   instr_t *instr;   ADDR32   pc;   {   INT32  const16;   const16 = (INT32) ((instr->b | (instr->c << 8)) | 0xffff0000);   if (io_config.echo_mode == (INT32) TRUE)    (void) fprintf(io_config.echo_file, "%s %s,0x%lx", opcode_name[instr->op],                 reg[instr->a], const16);   (void) fprintf(stderr, "%s %s,0x%lx", opcode_name[instr->op],                 reg[instr->a], const16);   }/*** Format:  <Mnemonic>  ra, const16**** (See CONSTH)*//*ARGSUSED*/voiddasm_ra_const16h(instr, pc)   struct   instr_t *instr;   ADDR32   pc;   {   INT32  const32;   INT32  i_15_8;   INT32  i_7_0;   i_15_8 = (INT32) instr->c;   i_7_0  = (INT32) instr->b;   const32 = ((i_15_8 << 24) | (i_7_0 << 16));   if (io_config.echo_mode == (INT32) TRUE)    (void) fprintf(io_config.echo_file, "%s %s,0x%lx", opcode_name[instr->op],                 reg[instr->a], const32);   (void) fprintf(stderr, "%s %s,0x%lx", opcode_name[instr->op],                 reg[instr->a], const32);   }/*** Format:  <Mnemonic>  ra, const16**** (See CONST)*//*ARGSUSED*/voiddasm_ra_const16(instr, pc)   struct   instr_t *instr;   ADDR32   pc;   {   INT32  const16;   const16 = (INT32) (instr->b | (instr->c << 8));   if (io_config.echo_mode == (INT32) TRUE)    (void) fprintf(io_config.echo_file, "%s %s,0x%x", opcode_name[instr->op],                 reg[instr->a], const16);   (void) fprintf(stderr, "%s %s,0x%x", opcode_name[instr->op],                 reg[instr->a], const16);   }/*** Format:  <Mnemonic>  spid, const16**** (See MTSRIM)*//*ARGSUSED*/voiddasm_spid_const16(instr, pc)   struct   instr_t *instr;   ADDR32   pc;   {   INT32  const16;   INT32  i_15_8;   INT32  i_7_0;   i_15_8 = (INT32) instr->c;   i_7_0  = (INT32) instr->b;   const16 = ((i_15_8 << 8) | i_7_0);   if (io_config.echo_mode == (INT32) TRUE)    (void) fprintf(io_config.echo_file, "%s %s,0x%x", opcode_name[instr->op],                 spreg[instr->a], const16);   (void) fprintf(stderr, "%s %s,0x%x", opcode_name[instr->op],                 spreg[instr->a], const16);   }/*** Format:  <Mnemonic>  ce, cntl, ra, rb**** (See LOADM, LOADSET, STORE, STOREL, etc...)*//*ARGSUSED*/voiddasm_ce_cntl_ra_rb(instr, pc)   struct   instr_t *instr;   ADDR32   pc;   {

⌨️ 快捷键说明

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