@@ -91,7 +91,8 @@ def __init__(self,
9191 shadowed : bool ,
9292 fields : List [Field ],
9393 update_err_alert : Optional [str ],
94- storage_err_alert : Optional [str ]):
94+ storage_err_alert : Optional [str ],
95+ doesnt_increment_offset : bool ):
9596 super ().__init__ (offset )
9697 self .name = name
9798 self .desc = desc
@@ -173,6 +174,7 @@ def __init__(self,
173174
174175 self .update_err_alert = update_err_alert
175176 self .storage_err_alert = storage_err_alert
177+ self .doesnt_increment_offset = doesnt_increment_offset
176178
177179 @staticmethod
178180 def from_raw (reg_width : int ,
@@ -261,9 +263,12 @@ def from_raw(reg_width: int,
261263 return Register (offset , name , desc , swaccess , hwaccess ,
262264 hwext , hwqe , hwre , regwen ,
263265 tags , resval , shadowed , fields ,
264- update_err_alert , storage_err_alert )
266+ update_err_alert , storage_err_alert , False )
265267
266268 def next_offset (self , addrsep : int ) -> int :
269+ if self .doesnt_increment_offset :
270+ return self .offset
271+
267272 return self .offset + addrsep
268273
269274 def sw_readable (self ) -> bool :
@@ -374,7 +379,7 @@ def make_multi(self,
374379 self .swaccess , self .hwaccess ,
375380 self .hwext , self .hwqe , self .hwre , new_regwen ,
376381 self .tags , new_resval , self .shadowed , new_fields ,
377- self .update_err_alert , self .storage_err_alert )
382+ self .update_err_alert , self .storage_err_alert , False )
378383
379384 def _asdict (self ) -> Dict [str , object ]:
380385 rd = {
@@ -388,6 +393,7 @@ def _asdict(self) -> Dict[str, object]:
388393 'hwre' : str (self .hwre ),
389394 'tags' : self .tags ,
390395 'shadowed' : str (self .shadowed ),
396+ 'doesnt_increment_offset' : str (self .doesnt_increment_offset ),
391397 }
392398 if self .regwen is not None :
393399 rd ['regwen' ] = self .regwen
0 commit comments