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

📄 mn10300.igen

📁 这个是LINUX下的GDB调度工具的源码
💻 IGEN
📖 第 1 页 / 共 5 页
字号:
// -*- C -*-:option:::insn-bit-size:8:option:::insn-specifying-widths:true:option:::hi-bit-nr:7:model:::mn10300:mn10300::model:::am33:am33::model:::am33_2:am33_2:// What do we do with an illegal instruction?:internal::::illegal:{  PC = cia;  program_interrupt(SD, CPU, cia, SIM_SIGILL);}// 1000 DnDn imm8....; mov imm8,Dn (imm8 is sign extended)4.0x8,2.DM1,2.DN0=DM1+8.IMM8:S0i:::mov"mov"*mn10300*am33*am33_2{  /*  OP_8000 (); */  signed32 immed = EXTEND8 (IMM8);  State.regs[REG_D0+DN0] = immed;  PC = cia;}// 1000 DmDn; mov Dm,Dn (Dm != Dn, see above when Dm == Dn)4.0x8,2.DM1,2.DN0!DM1:S0:::mov"mov"*mn10300*am33*am33_2{  PC = cia;  /* OP_80 (); */  State.regs[REG_D0+DN0] = State.regs[REG_D0+DM1];}// 1111 0001 1110 DmAn; mov Dm,An8.0xf1+1110,2.DM1,2.AN0:D0:::mov"mov"*mn10300*am33*am33_2{  /* OP_F1E0 (); */  PC = cia;  State.regs[REG_A0 + AN0] = State.regs[REG_D0 + DM1];}// 1111 0001 1101 AmDn; mov Am,Dn8.0xf1+1101,2.AM1,2.DN0:D0a:::mov"mov"*mn10300*am33*am33_2{  /* OP_F1D0 (); */  PC = cia;  State.regs[REG_D0 + DN0] = State.regs[REG_A0 + AM1];}// 1001 AnAn imm8....; mov imm8,An (imm8 is zero-extended)4.0x9,2.AM1,2.AN0=AM1+8.IMM8:S0ai:::mov"mov"*mn10300*am33*am33_2{   PC = cia;   /* OP_9000 (); */   State.regs[REG_A0+AN0] = IMM8;}// 1001 AmAn; mov Am,An (Am != An, save above when Am == An)4.0x9,2.AM1,2.AN0!AM1:S0a:::mov"mov"*mn10300*am33*am33_2{   PC = cia;   /* OP_90 (); */   State.regs[REG_A0+AN0] = State.regs[REG_A0+AM1];}// 0011 11An; mov SP,An4.0x3,11,2.AN0:S0b:::mov"mov"*mn10300*am33*am33_2{  /* OP_3C (); */  PC = cia;  State.regs[REG_A0 + AN0] = State.regs[REG_SP];}// 1111 0010 1111 Am00; mov Am,SP8.0xf2+4.0xf,2.AM1,00:D0b:::mov"mov"*mn10300*am33*am33_2{  /* OP_F2F0 (); */  PC = cia;  State.regs[REG_SP] = State.regs[REG_A0 + AM1];}// 1111 0010 1110 01Dn; mov PSW,Dn8.0xf2+4.0xe,01,2.DN0:D0c:::mov"mov"*mn10300*am33*am33_2{  /* OP_F2E4 (); */  PC = cia;  State.regs[REG_D0 + DN0] = PSW;}// 1111 0010 1111 Dm11; mov Dm,PSW8.0xf2+4.0xf,2.DM1,11:D0d:::mov"mov"*mn10300*am33*am33_2{  /* OP_F2F3 (); */  PC = cia;  PSW = State.regs[REG_D0 + DM1];}// 1111 0010 1110 00Dn; mov MDR,Dn8.0xf2+4.0xe,00,2.DN0:D0e:::mov"mov"*mn10300*am33*am33_2{  /* OP_F2E0 (); */  PC = cia;  State.regs[REG_D0 + DN0] = State.regs[REG_MDR];}// 1111 0010 1111 Dm10; mov Dm,MDR8.0xf2+4.0xf,2.DM1,10:D0f:::mov"mov"*mn10300*am33*am33_2{  /* OP_F2F2 (); */  PC = cia;  State.regs[REG_MDR] = State.regs[REG_D0 + DM1];}// 0111 DnAm; mov (Am),Dn4.0x7,2.DN1,2.AM0:S0c:::mov"mov"*mn10300*am33*am33_2{  /* OP_70 (); */  PC = cia;  State.regs[REG_D0 + DN1] = load_word (State.regs[REG_A0 + AM0]);}// 1111 1000 0000 DnAm d8......; mov (d8,Am),Dn (d8 is sign-extended)8.0xf8+4.0x0,2.DN1,2.AM0+8.D8:D1:::mov"mov"*mn10300*am33*am33_2{  /* OP_F80000 (); */  PC = cia;  State.regs[REG_D0 + DN1]    = load_word ((State.regs[REG_A0 + AM0] + EXTEND8 (D8)));}// 1111 1010 0000 DnAm d16.....; mov (d16,Am),Dn (d16 is sign-extended.)8.0xfa+4.0x0,2.DN1,2.AM0+8.D16A+8.D16B:D2:::mov"mov"*mn10300*am33*am33_2{  /* OP_FA000000 (); */  PC = cia;  State.regs[REG_D0 + DN1]    = load_word ((State.regs[REG_A0 + AM0] + EXTEND16 (FETCH16(D16A, D16B))));}// 1111 1100 0000 DnAm d32.....; mov (d32,Am),Dn8.0xfc+4.0x0,2.DN1,2.AM0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC000000 (); */  PC = cia;  State.regs[REG_D0 + DN1]    = load_word ((State.regs[REG_A0 + AM0]		  + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D)));}// 0101 10Dn d8......; mov (d8,SP),Dn (d8 is zero-extended)4.0x5,10,2.DN0+8.D8:S1:::mov"mov"*mn10300*am33*am33_2{  /* OP_5800 (); */  PC = cia;  State.regs[REG_D0 + DN0] = load_word (State.regs[REG_SP] + D8);}// 1111 1010 1011 01Dn d16.....; mov (d16,SP),Dn (d16 is zero-extended.)8.0xfa+4.0xb,01,2.DN0+8.IMM16A+8.IMM16B:D2a:::mov"mov"*mn10300*am33*am33_2{  /* OP_FAB40000 (); */  PC = cia;  State.regs[REG_D0 + DN0]    = load_word (State.regs[REG_SP] + FETCH16(IMM16A, IMM16B));}// 1111 1010 1011 01Dn d32.....; mov (d32,SP),Dn8.0xfc+4.0xb,01,2.DN0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4a:::mov"mov"*mn10300*am33*am33_2{  /* OP_FCB40000 (); */  PC = cia;  State.regs[REG_D0 + DN0]     = load_word (State.regs[REG_SP] + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D));}// 1111 0011 00Dn DiAm; mov (Di,Am),Dn8.0xf3+00,2.DN2,2.DI,2.AM0:D0g:::mov"mov"*mn10300*am33*am33_2{  /* OP_F300 (); */  PC = cia;  State.regs[REG_D0 + DN2]    = load_word ((State.regs[REG_A0 + AM0] + State.regs[REG_D0 + DI]));}// 0011 00Dn abs16...; mov (abs16),Dn (abs16 is zero-extended)4.0x3,00,2.DN0+8.IMM16A+8.IMM16B:S2:::mov"mov"*mn10300*am33*am33_2{  /* OP_300000 (); */  PC = cia;  State.regs[REG_D0 + DN0] = load_word (FETCH16(IMM16A, IMM16B));}// 1111 1100 1010 01Dn abs32...; mov (abs32),Dn8.0xfc+4.0xa,01,2.DN0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4b:::mov"mov"*mn10300*am33*am33_2{  /* OP_FCA40000 (); */  PC = cia;  State.regs[REG_D0 + DN0] = load_word (FETCH32(IMM32A, IMM32B, IMM32C, IMM32D));}// 1111 0000 0000 AnAm; mov (Am),An8.0xf0+4.0x0,2.AN1,2.AM0:D0h:::mov"mov"*mn10300*am33*am33_2{  /* OP_F000 (); */  PC = cia;  State.regs[REG_A0 + AN1] = load_word (State.regs[REG_A0 + AM0]);}// 1111 1000 0010 AnAm d8......; mov (d8,Am),An (d8 is sign-extended)8.0xf8+4.0x2,2.AN1,2.AM0+8.D8:D1a:::mov"mov"*mn10300*am33*am33_2{  /* OP_F82000 (); */  PC = cia;  State.regs[REG_A0 + AN1]    = load_word ((State.regs[REG_A0 + AM0] + EXTEND8 (D8)));}// 1111 1010 0010 AnAm d16.....; mov (d16,Am),An (d16 is sign-extended.)8.0xfa+4.0x2,2.AN1,2.AM0+8.D16A+8.D16B:D2b:::mov"mov"*mn10300*am33*am33_2{  /* OP_FA200000 (); */  PC = cia;  State.regs[REG_A0 + AN1]    = load_word ((State.regs[REG_A0 + AM0]		  + EXTEND16 (FETCH16(D16A, D16B))));}// 1111 1100 0010 AnAm d32.....; mov (d32,Am),An8.0xfc+4.0x2,2.AN1,2.AM0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4c:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC200000 (); */  PC = cia;  State.regs[REG_A0 + AN1]    = load_word ((State.regs[REG_A0 + AM0]		  + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D)));}// 0101 11An d8......; mov (d8,SP),An (d8 is zero-extended)4.0x5,11,2.AN0+8.D8:S1a:::mov"mov"*mn10300*am33*am33_2{  /* OP_5C00 (); */  PC = cia;  State.regs[REG_A0 + AN0]    = load_word (State.regs[REG_SP] + D8);}// 1111 1010 1011 00An d16.....; mov (d16,SP),An (d16 is zero-extended.)8.0xfa+4.0xb,00,2.AN0+8.IMM16A+8.IMM16B:D2c:::mov"mov"*mn10300*am33*am33_2{  /* OP_FAB00000 (); */  PC = cia;  State.regs[REG_A0 + AN0]    = load_word (State.regs[REG_SP] + FETCH16(IMM16A, IMM16B));}// 1111 1100 1011 00An d32.....; mov (d32,SP),An8.0xfc+4.0xb,00,2.AN0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4d:::mov"mov"*mn10300*am33*am33_2{  /* OP_FCB00000 (); */  PC = cia;  State.regs[REG_A0 + AN0]    = load_word (State.regs[REG_SP]		 + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D));}// 1111 0011 10An DiAm; mov (Di,Am),An8.0xf3+10,2.AN2,2.DI,2.AM0:D0i:::mov"mov"*mn10300*am33*am33_2{  /* OP_F380 (); */  PC = cia;  State.regs[REG_A0 + AN2]    = load_word ((State.regs[REG_A0 + AM0]		 + State.regs[REG_D0 + DI]));}// 1111 1010 1010 00An abs16...; mov (abs16),An (abs16 is zero-extended)8.0xfa+4.0xa,00,2.AN0+8.IMM16A+8.IMM16B:D2d:::mov"mov"*mn10300*am33*am33_2{  /* OP_FAA00000 (); */  PC = cia;  State.regs[REG_A0 + AN0] = load_word (FETCH16(IMM16A, IMM16B));}// 1111 1100 1010 00An abs32...; mov (abs32),An8.0xfc+4.0xa,00,2.AN0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4e:::mov"mov"*mn10300*am33*am33_2{  /* OP_FCA00000 (); */  PC = cia;  State.regs[REG_A0 + AN0]    = load_word (FETCH32(IMM32A, IMM32B, IMM32C, IMM32D));}// 1111 1000 1111 00Am d8......; mov (d8,Am),SP (d8 is sign-extended)8.0xf8+4.0xf,00,2.AM0+8.D8:D1b:::mov"mov"*mn10300*am33*am33_2{  /* OP_F8F000 (); */  PC = cia;  State.regs[REG_SP]    = load_word ((State.regs[REG_A0 + AM0] + EXTEND8 (D8)));}// 0110 DmAn; mov Dm,(An)4.0x6,2.DM1,2.AN0:S0d:::mov"mov"*mn10300*am33*am33_2{  /* OP_60 (); */  PC = cia;  store_word (State.regs[REG_A0 + AN0], State.regs[REG_D0 + DM1]);}// 1111 1000 0001 DmAn d8......; mov Dm,(d8,An) (d8 is sign-extended)8.0xf8+4.0x1,2.DM1,2.AN0+8.D8:D1c:::mov"mov"*mn10300*am33*am33_2{  /* OP_F81000 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0] + EXTEND8 (D8)),	      State.regs[REG_D0 + DM1]);}// 1111 1010 0001 DmAn d16.....; mov Dm,(d16,An) (d16 is sign-extended.)8.0xfa+4.0x1,2.DM1,2.AN0+8.D16A+8.D16B:D2e:::mov"mov"*mn10300*am33*am33_2{  /* OP_FA100000 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0] + EXTEND16 (FETCH16(D16A, D16B))),	      State.regs[REG_D0 + DM1]);}// 1111 1100 0001 DmAn d32.....; mov Dm,(d32,An)8.0xfc+4.0x1,2.DM1,2.AN0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4f:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC100000 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0]	       + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D)),	      State.regs[REG_D0 + DM1]);}// 0100 Dm10 d8......; mov Dm,(d8,SP) (d8 is zero-extended)4.0x4,2.DM1,10+8.D8:S1b:::mov"mov"*mn10300*am33*am33_2{  /* OP_4200 (); */  PC = cia;  store_word (State.regs[REG_SP] + D8, State.regs[REG_D0 + DM1]);}// 1111 1010 1001 Dm01 d16.....; mov Dm,(d16,SP) (d16 is zero-extended.)8.0xfa+4.0x9,2.DM1,01+8.IMM16A+8.IMM16B:D2f:::mov"mov"*mn10300*am33*am33_2{  /* OP_FA910000 (); */  PC = cia;  store_word (State.regs[REG_SP] + FETCH16(IMM16A, IMM16B),	      State.regs[REG_D0 + DM1]);}// 1111 1100 1001 Dm01 d32.....; mov Dm,(d32,SP)8.0xfc+4.0x9,2.DM1,01+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4g:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC910000 (); */  PC = cia;  store_word (State.regs[REG_SP] + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D),	      State.regs[REG_D0 + DM1]);}// 1111 0011 01Dm DiAn; mov Dm,(Di,An)8.0xf3+01,2.DM2,2.DI,2.AN0:D0j:::mov"mov"*mn10300*am33*am33_2{  /* OP_F340 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0] + State.regs[REG_D0 + DI]),	      State.regs[REG_D0 + DM2]);}// 0000 Dm01 abs16..., mov Dm,(abs16) (abs16 is zero-extended).4.0x0,2.DM1,01+8.IMM16A+8.IMM16B:S2a:::mov"mov"*mn10300*am33*am33_2{  /* OP_10000 (); */  PC = cia;  store_word (FETCH16(IMM16A, IMM16B), State.regs[REG_D0 + DM1]);}// 1111 1100 1000 Dm01 abs32...; mov Dm,(abs32)8.0xfc+4.0x8,2.DM1,01+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4h:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC810000 (); */  PC = cia;  store_word (FETCH32(IMM32A, IMM32B, IMM32C, IMM32D),	      State.regs[REG_D0 + DM1]);}// 1111 0000 0001 AmAn; mov Am,(An)8.0xf0+4.0x1,2.AM1,2.AN0:D0k:::mov"mov"*mn10300*am33*am33_2{  /* OP_F010 (); */  PC = cia;  store_word (State.regs[REG_A0 + AN0], State.regs[REG_A0 + AM1]);}// 1111 1000 0011 AmAn d8......; mov Am,(d8,An) (d8 is sign-extended)8.0xf8+4.0x3,2.AM1,2.AN0+8.D8:D1d:::mov"mov"*mn10300*am33*am33_2{  /* OP_F83000 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0] + EXTEND8 (D8)),	      State.regs[REG_A0 + AM1]);}// 1111 1010 0011 AmAn d16.....; mov Am,(d16,An) (d16 is sign-extended.)8.0xfa+4.0x3,2.AM1,2.AN0+8.D16A+8.D16B:D2g:::mov"mov"*mn10300*am33*am33_2{  /* OP_FA300000 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0] + EXTEND16 (FETCH16(D16A, D16B))),	      State.regs[REG_A0 + AM1]);}// 1111 1100 0011 AmAn d32.....; mov Am,(d32,An)8.0xfc+4.0x3,2.AM1,2.AN0+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4i:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC300000 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0]	       + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D)),	      State.regs[REG_A0 + AM1]);}// 0100 Am11 d8......; mov Am,(d8,SP) (d8 is zero-extended)4.0x4,2.AM1,11+8.D8:S1c:::mov"mov"*mn10300*am33*am33_2{  /* OP_4300 (); */  PC = cia;  store_word (State.regs[REG_SP] + (D8), State.regs[REG_A0 + (AM1)]);}// 1111 1010 1001 Am00 d16.....; mov Am,(d16,SP) (d16 is zero-extended.)8.0xfa+4.0x9,2.AM1,00+8.IMM16A+8.IMM16B:D2h:::mov"mov"*mn10300*am33*am33_2{  /* OP_FA900000 (); */  PC = cia;  store_word (State.regs[REG_SP] + FETCH16(IMM16A, IMM16B),	      State.regs[REG_A0 + AM1]);}// 1111 1100 1001 Am00 d32.....; mov Am,(d32,SP)8.0xfc+4.0x9,2.AM1,00+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4j:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC900000 (); */  PC = cia;  store_word (State.regs[REG_SP] + FETCH32(IMM32A, IMM32B, IMM32C, IMM32D),	      State.regs[REG_A0 + AM1]);}// 1111 0011 11Am DiAn; mov Am,(Di,An)8.0xf3+11,2.AM2,2.DI,2.AN0:D0l:::mov"mov"*mn10300*am33*am33_2{  /* OP_F3C0 (); */  PC = cia;  store_word ((State.regs[REG_A0 + AN0] + State.regs[REG_D0 + DI]),	      State.regs[REG_A0 + AM2]);}// 1111 1010 1000 Am00 abs16...; mov Am,(abs16) (abs16 is zero-extended)8.0xfa+4.0x8,2.AM1,00+8.IMM16A+8.IMM16B:D2i:::mov"mov"*mn10300*am33*am33_2{  /* OP_FA800000 (); */  PC = cia;  store_word (FETCH16(IMM16A, IMM16B),	      State.regs[REG_A0 + AM1]);}// 1111 1100 1000 Am00 abs32...; mov Am,(abs32)8.0xfc+4.0x8,2.AM1,00+8.IMM32A+8.IMM32B+8.IMM32C+8.IMM32D:D4k:::mov"mov"*mn10300*am33*am33_2{  /* OP_FC800000 (); */  PC = cia;  store_word (FETCH32(IMM32A, IMM32B, IMM32C, IMM32D),	      State.regs[REG_A0 + AM1]);}// 1111 1000 1111 01An d8......; mov SP,(d8,An) (d8 is sign-extended)8.0xf8+4.0xf,01,2.AN0+8.D8:D1e:::mov"mov"*mn10300*am33*am33_2{  /* OP_F8F400 (); */  PC = cia;  store_word (State.regs[REG_A0 + AN0] + EXTEND8 (D8),	      State.regs[REG_SP]);}// 0010 11Dn imm16...; mov imm16,Dn (imm16 is sign-extended)4.0x2,11,2.DN0+8.IMM16A+8.IMM16B:S2b:::mov"mov"*mn10300*am33*am33_2{  /* OP_2C0000 (); */  unsigned32 value;

⌨️ 快捷键说明

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