#from nmigen.back.pysim import Settle
from copy import copy
-from soc.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
+from openpower.decoder.selectable_int import (FieldSelectableInt, SelectableInt,
selectconcat)
-from soc.decoder.helpers import exts, gtu, ltu, undefined
-from soc.decoder.isa.mem import Mem
-from soc.consts import MSRb # big-endian (PowerISA versions)
+from openpower.decoder.helpers import exts, gtu, ltu, undefined
+from openpower.decoder.isa.mem import Mem
+from openpower.consts import MSRb # big-endian (PowerISA versions)
import math
import sys
return 0
# use pte to load from phys address
- return self.mem.ld(pte.value, width, swap, check_in_mem)
+ data = self.mem.ld(pte.value, width, swap, check_in_mem)
+ self.last_ld_addr = self.mem.last_ld_addr
# XXX set SPRs on error
+ return data
# TODO implement
def st(self, address, v, width=8, swap=True):
pte = self._walk_tree(addr, mode, priv)
# use pte to store at phys address
- return self.mem.st(pte.value, v, width, swap)
+ res = self.mem.st(pte.value, v, width, swap)
+ self.last_st_addr = self.mem.last_st_addr
# XXX set SPRs on error
+ return res
def memassign(self, addr, sz, val):
print("memassign", addr, sz, val)