Skip to content

Commit 52d1395

Browse files
author
Sebastien Bourdeauducq
committedMar 13, 2013
bank/description: modify reg/mem in-place
1 parent c99cc93 commit 52d1395

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed
 

‎migen/bank/description.py

+8-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from copy import copy
2-
31
from migen.fhdl.structure import *
42
from migen.fhdl.specials import Memory
53
from migen.fhdl.tracer import get_obj_var_name
@@ -53,20 +51,12 @@ def __init__(self, size=1, access_bus=READ_WRITE, access_dev=READ_ONLY, reset=0,
5351
RegisterFields.__init__(self, self.field, name=name)
5452

5553
def regprefix(prefix, registers):
56-
r = []
5754
for register in registers:
58-
c = copy(register)
59-
c.name = prefix + c.name
60-
r.append(c)
61-
return r
55+
register.name = prefix + register.name
6256

6357
def memprefix(prefix, memories):
64-
r = []
6558
for memory in memories:
66-
c = copy(memory)
67-
c.name_override = prefix + c.name_override
68-
r.append(c)
69-
return memories
59+
memory.name_override = prefix + memory.name_override
7060

7161
class AutoReg:
7262
def get_memories(self):
@@ -75,7 +65,9 @@ def get_memories(self):
7565
if isinstance(v, Memory):
7666
r.append(v)
7767
elif hasattr(v, "get_memories") and callable(v.get_memories):
78-
r += memprefix(k + "_", v.get_memories())
68+
memories = v.get_memories()
69+
memprefix(k + "_", memories)
70+
r += memories
7971
return sorted(r, key=lambda x: x.huid)
8072

8173
def get_registers(self):
@@ -84,7 +76,9 @@ def get_registers(self):
8476
if isinstance(v, _Register):
8577
r.append(v)
8678
elif hasattr(v, "get_registers") and callable(v.get_registers):
87-
r += regprefix(k + "_", v.get_registers())
79+
registers = v.get_registers()
80+
regprefix(k + "_", registers)
81+
r += registers
8882
return sorted(r, key=lambda x: x.huid)
8983

9084
(ALIAS_NON_ATOMIC, ALIAS_ATOMIC_HOLD, ALIAS_ATOMIC_COMMIT) = range(3)

0 commit comments

Comments
 (0)
Please sign in to comment.