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

📄 arm.c

📁 用VHDL语言实现的ARM处理器的标准内核的源代码程序
💻 C
📖 第 1 页 / 共 3 页
字号:
 return 1;};








unsigned int decode(unsigned int insn, insn_union *s) {
{
switch (((insn>>27)&0x1)) { 
case 0x1:
{
 {
 switch (((insn>>25)&0x3)) { 
 case 0x3:
 {
  {
  switch (((insn>>24)&0x1)) { 
  case 0x1:
  {
   {
   switch (((insn>>28)&0xf)) { 
   case 0xf:
   {return init_insn_undef(insn,s);
   };break;
   }}
   /*default:*/ return init_insn_swi(insn,s);
  };break;
  }}
 };break;
 case 0x1:
 {
  {
  switch (((insn>>24)&0x1)) { 
  case 0x0:
  {
   {
   switch (((insn>>4)&0x1)) { 
   case 0x1:
   {return init_insn_cpr(insn,s);
   };break;
   case 0x0:
   {return init_insn_cpdp(insn,s);
   };break;
   }}
  };break;
  }}
  /*default:*/ return init_insn_cpldst(insn,s);
 };break;
 case 0x2:
 {
  {
  switch (((insn>>28)&0xf)) { 
  case 0xf:
  {return init_insn_bwlth(insn,s);
  };break;
  }}
  /*default:*/ return init_insn_bwl(insn,s);
 };break;
 case 0x0:
 {
  {
  switch (((insn>>28)&0xf)) { 
  case 0xf:
  {return init_insn_undef4(insn,s);
  };break;
  }}
 };break;
 }}
};break;
case 0x0:
{
 {
 switch (((insn>>25)&0x3)) { 
 case 0x3:
 {
  {
  switch (((insn>>4)&0x1)) { 
  case 0x1:
  {return init_insn_undef2(insn,s);
  };break;
  case 0x0:
  {return init_insn_lsro(insn,s);
  };break;
  }}
  /*default:*/ return init_insn_lsm(insn,s);
 };break;
 case 0x1:
 {return init_insn_lsio(insn,s);
 };break;
 case 0x2:
 {
  {
  switch (((insn>>24)&0x1)) { 
  case 0x1:
  {
   {
   switch (((insn>>23)&0x1)) { 
   case 0x0:
   {
    {
    switch (((insn>>21)&0x1)) { 
    case 0x1:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x0:
     {return init_insn_misr(insn,s);
     };break;
     }}
    };break;
    case 0x0:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x0:
     {return init_insn_undef1(insn,s);
     };break;
     }}
    };break;
    }}
   };break;
   }}
  };break;
  }}
  /*default:*/ return init_insn_dp_i(insn,s);
 };break;
 case 0x0:
 {
  {
  switch (((insn>>4)&0x1)) { 
  case 0x1:
  {
   {
   switch (((insn>>7)&0x1)) { 
   case 0x1:
   {
    {
    switch (((insn>>6)&0x1)) { 
    case 0x1:
    {
     {
     switch (((insn>>22)&0x1)) { 
     case 0x1:
     {
      {
      switch (((insn>>20)&0x1)) { 
      case 0x1:
      {return init_insn_ld6(insn,s);
      };break;
      case 0x0:
      {return init_insn_ld5(insn,s);
      };break;
      }}
     };break;
     case 0x0:
     {
      {
      switch (((insn>>20)&0x1)) { 
      case 0x1:
      {return init_insn_ld4(insn,s);
      };break;
      case 0x0:
      {return init_insn_ld3(insn,s);
      };break;
      }}
     };break;
     }}
    };break;
    case 0x0:
    {
     {
     switch (((insn>>5)&0x1)) { 
     case 0x1:
     {
      {
      switch (((insn>>22)&0x1)) { 
      case 0x1:
      {return init_insn_ld2(insn,s);
      };break;
      case 0x0:
      {return init_insn_ld1(insn,s);
      };break;
      }}
     };break;
     case 0x0:
     {
      {
      switch (((insn>>24)&0x1)) { 
      case 0x1:
      {
       {
       switch (((insn>>23)&0x1)) { 
       case 0x0:
       {
        {
        switch (((insn>>21)&0x1)) { 
        case 0x0:
        {
         {
         switch (((insn>>20)&0x1)) { 
         case 0x0:
         {return init_insn_swp(insn,s);
         };break;
         }}
        };break;
        }}
       };break;
       }}
      };break;
      case 0x0:
      {
       {
       switch (((insn>>23)&0x1)) { 
       case 0x1:
       {return init_insn_mull(insn,s);
       };break;
       case 0x0:
       {
        {
        switch (((insn>>22)&0x1)) { 
        case 0x0:
        {return init_insn_mula(insn,s);
        };break;
        }}
       };break;
       }}
      };break;
      }}
     };break;
     }}
    };break;
    }}
   };break;
   case 0x0:
   {
    {
    switch (((insn>>24)&0x1)) { 
    case 0x1:
    {
     {
     switch (((insn>>23)&0x1)) { 
     case 0x0:
     {
      {
      switch (((insn>>20)&0x1)) { 
      case 0x0:
      {
       {
       switch (((insn>>6)&0x1)) { 
       case 0x1:
       {
        {
        switch (((insn>>5)&0x1)) { 
        case 0x1:
        {
         {
         switch (((insn>>22)&0x1)) { 
         case 0x0:
         {
          {
          switch (((insn>>21)&0x1)) { 
          case 0x1:
          {return init_insn_brk(insn,s);
          };break;
          }}
         };break;
         }}
        };break;
        case 0x0:
        {return init_insn_dsa(insn,s);
        };break;
        }}
       };break;
       case 0x0:
       {
        {
        switch (((insn>>22)&0x1)) { 
        case 0x0:
        {
         {
         switch (((insn>>21)&0x1)) { 
         case 0x1:
         {
          {
          switch (((insn>>5)&0x1)) { 
          case 0x1:
          {return init_insn_blx(insn,s);
          };break;
          case 0x0:
          {return init_insn_bex(insn,s);
          };break;
          }}
         };break;
         }}
        };break;
        case 0x1:
        {
         {
         switch (((insn>>21)&0x1)) { 
         case 0x1:
         {
          {
          switch (((insn>>5)&0x1)) { 
          case 0x0:
          {return init_insn_clz(insn,s);
          };break;
          }}
         };break;
         }}
        };break;
        }}
       };break;
       }}
      };break;
      }}
     };break;
     }}
    };break;
    }}
    /*default:*/ return init_insn_dp_r_s(insn,s);
   };break;
   }}
  };break;
  case 0x0:
  {
   {
   switch (((insn>>24)&0x1)) { 
   case 0x1:
   {
    {
    switch (((insn>>23)&0x1)) { 
    case 0x0:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x0:
     {
      {
      switch (((insn>>7)&0x1)) { 
      case 0x1:
      {return init_insn_dsm(insn,s);
      };break;
      case 0x0:
      {
       {
       switch (((insn>>21)&0x1)) { 
       case 0x1:
       {
        {
        switch (((insn>>6)&0x1)) { 
        case 0x0:
        {
         {
         switch (((insn>>5)&0x1)) { 
         case 0x0:
         {return init_insn_mrs(insn,s);
         };break;
         }}
        };break;
        }}
       };break;
       case 0x0:
       {
        {
        switch (((insn>>6)&0x1)) { 
        case 0x0:
        {
         {
         switch (((insn>>5)&0x1)) { 
         case 0x0:
         {return init_insn_msr(insn,s);
         };break;
         }}
        };break;
        }}
       };break;
       }}
      };break;
      }}
     };break;
     }}
    };break;
    }}
   };break;
   }}
   /*default:*/ return init_insn_dp_i_s(insn,s);
  };break;
  }}
 };break;
 }}
 /*default:*/
 {
 switch (((insn>>28)&0xf)) { 
 case 0xf:
 {return init_insn_undef3(insn,s);
 };break;
 }}
};break;
}}

}; 

⌨️ 快捷键说明

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