Advertisement
Guest User

Untitled

a guest
Apr 20th, 2022
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.43 KB | None | 0 0
  1. class SVP64RMFields(SelectableIntMapping, bits=24, fields={
  2.             "spr": range(24),
  3.             # SVP64 RM fields: see https://libre-soc.org/openpower/sv/svp64/
  4.             "mmode": (0,),
  5.             "mask": range(1, 4),
  6.             "elwidth": range(4, 6),
  7.             "ewsrc": range(6, 8),
  8.             "subvl": range(8, 10),
  9.             "extra": range(10, 19),
  10.             "mode": range(19, 24),
  11.             # these cover the same extra field, split into parts as EXTRA2
  12.             "extra2": dict(enumerate([
  13.                 range(10, 12),
  14.                 range(12, 14),
  15.                 range(14, 16),
  16.                 range(16, 18),
  17.             ])),
  18.             "smask": range(16, 19),
  19.             # and here as well, but EXTRA3
  20.             "extra3": dict(enumerate([
  21.                 range(10, 13),
  22.                 range(13, 16),
  23.                 range(16, 19),
  24.             ])),
  25.         }):
  26.  
  27.     def __init__(self, value=0):
  28.         super().__init__(value=value)
  29.         self.spr = self
  30.  
  31.  
  32. SVP64RM_MMODE_SIZE = len(SVP64RMFields.mmode)
  33. SVP64RM_MASK_SIZE = len(SVP64RMFields.mask)
  34. SVP64RM_ELWIDTH_SIZE = len(SVP64RMFields.elwidth)
  35. SVP64RM_EWSRC_SIZE = len(SVP64RMFields.ewsrc)
  36. SVP64RM_SUBVL_SIZE = len(SVP64RMFields.subvl)
  37. SVP64RM_EXTRA2_SPEC_SIZE = len(SVP64RMFields.extra2[0])
  38. SVP64RM_EXTRA3_SPEC_SIZE = len(SVP64RMFields.extra3[0])
  39. SVP64RM_SMASK_SIZE = len(SVP64RMFields.smask)
  40. SVP64RM_MODE_SIZE = len(SVP64RMFields.mode)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement