# ========== Copyright Header Begin ==========================================
# OpenSPARC T2 Processor File: SS_Memory.py
# Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
# The above named program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License version 2 as published by the Free Software Foundation.
# The above named program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public
# License along with this work; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
# ========== Copyright Header End ============================================
class Memory(Pfe_Memory
.Memory
):
def __init__(self
,memory
):
Pfe_Memory
.Memory
.__init
__(self
)
def load(self
,filename
,addr
=None):
os
.stat(filename
) # Test for excisting filename
self
.__memory
__.load(filename
)
self
.__memory
__.load(filename
,addr
)
def save(self
,filename
,addr
,size
):
self
.__memory
__.save(filename
,addr
,size
)
def __ldb__(self
,addr
): return self
.__memory
__.peek8u (addr
)
def __ldh__(self
,addr
): return self
.__memory
__.peek16u(addr
&~
1)
def __ldw__(self
,addr
): return self
.__memory
__.peek32u(addr
&~
3)
def __ldx__(self
,addr
): return self
.__memory
__.peek64 (addr
&~
7)
def __stb__(self
,addr
,data
): self
.__memory
__.poke8 (addr
,data
)
def __sth__(self
,addr
,data
): self
.__memory
__.poke16(addr
&~
1,data
)
def __stw__(self
,addr
,data
): self
.__memory
__.poke32(addr
&~
3,long(data
))
def __stx__(self
,addr
,data
): self
.__memory
__.poke64(addr
&~
7,data
)