Advertisement
Guest User

Untitled

a guest
Apr 10th, 2022
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.30 KB | None | 0 0
  1. enum svp64_reg_category {
  2.     SVP64_REG_CATEGORY_UNKNOWN,
  3.     SVP64_REG_CATEGORY_GPR,
  4.     SVP64_REG_CATEGORY_FPR,
  5.     SVP64_REG_CATEGORY_CR_3BIT,
  6.     SVP64_REG_CATEGORY_CR_5BIT,
  7. };
  8.  
  9. enum svp64_reg_category
  10. svp64_reg_category(unsigned char type)
  11. {
  12.     size_t i;
  13.     static struct {
  14.         unsigned char type;
  15.         unsigned char category;
  16.     } const table[] = {
  17.         {BF  , SVP64_REG_CATEGORY_CR_3BIT},
  18.         {BFA , SVP64_REG_CATEGORY_CR_3BIT},
  19.         {BA  , SVP64_REG_CATEGORY_CR_5BIT},
  20.         {BB  , SVP64_REG_CATEGORY_CR_5BIT},
  21.         {BC  , SVP64_REG_CATEGORY_CR_5BIT},
  22.         {BI  , SVP64_REG_CATEGORY_CR_5BIT},
  23.         {BT  , SVP64_REG_CATEGORY_CR_5BIT},
  24.         {RA  , SVP64_REG_CATEGORY_GPR},
  25.         {RB  , SVP64_REG_CATEGORY_GPR},
  26.         {RC  , SVP64_REG_CATEGORY_GPR},
  27.         {RS  , SVP64_REG_CATEGORY_GPR},
  28.         {RT  , SVP64_REG_CATEGORY_GPR},
  29.         {FRA , SVP64_REG_CATEGORY_FPR},
  30.         {FRB , SVP64_REG_CATEGORY_FPR},
  31.         {FRC , SVP64_REG_CATEGORY_FPR},
  32.         {FRS , SVP64_REG_CATEGORY_FPR},
  33.         {FRT , SVP64_REG_CATEGORY_FPR},
  34.     };
  35.  
  36.     for (i = 0; i < sizeof (table) / sizeof (table[0]); ++i) {
  37.         if (table[i].type == type)
  38.             return (enum svp64_reg_category)table[i].category;
  39.     }
  40.  
  41.     return SVP64_REG_CATEGORY_UNKNOWN;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement