cache_and_memory_management.py revision 5920
110860Sandreas.sandberg@arm.com# Copyright (c) 2007 The Hewlett-Packard Development Company 210860Sandreas.sandberg@arm.com# All rights reserved. 310860Sandreas.sandberg@arm.com# 410860Sandreas.sandberg@arm.com# Redistribution and use of this software in source and binary forms, 510860Sandreas.sandberg@arm.com# with or without modification, are permitted provided that the 610860Sandreas.sandberg@arm.com# following conditions are met: 710860Sandreas.sandberg@arm.com# 810860Sandreas.sandberg@arm.com# The software must be used only for Non-Commercial Use which means any 910860Sandreas.sandberg@arm.com# use which is NOT directed to receiving any direct monetary 1010860Sandreas.sandberg@arm.com# compensation for, or commercial advantage from such use. Illustrative 1110860Sandreas.sandberg@arm.com# examples of non-commercial use are academic research, personal study, 1210860Sandreas.sandberg@arm.com# teaching, education and corporate research & development. 1310860Sandreas.sandberg@arm.com# Illustrative examples of commercial use are distributing products for 1410860Sandreas.sandberg@arm.com# commercial advantage and providing services using the software for 1510860Sandreas.sandberg@arm.com# commercial advantage. 1610860Sandreas.sandberg@arm.com# 1710860Sandreas.sandberg@arm.com# If you wish to use this software or functionality therein that may be 1810860Sandreas.sandberg@arm.com# covered by patents for commercial use, please contact: 1910860Sandreas.sandberg@arm.com# Director of Intellectual Property Licensing 2010860Sandreas.sandberg@arm.com# Office of Strategy and Technology 2110860Sandreas.sandberg@arm.com# Hewlett-Packard Company 2210860Sandreas.sandberg@arm.com# 1501 Page Mill Road 2310860Sandreas.sandberg@arm.com# Palo Alto, California 94304 2410860Sandreas.sandberg@arm.com# 2510860Sandreas.sandberg@arm.com# Redistributions of source code must retain the above copyright notice, 2610860Sandreas.sandberg@arm.com# this list of conditions and the following disclaimer. Redistributions 2710860Sandreas.sandberg@arm.com# in binary form must reproduce the above copyright notice, this list of 2810860Sandreas.sandberg@arm.com# conditions and the following disclaimer in the documentation and/or 2910860Sandreas.sandberg@arm.com# other materials provided with the distribution. Neither the name of 3010860Sandreas.sandberg@arm.com# the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its 3110860Sandreas.sandberg@arm.com# contributors may be used to endorse or promote products derived from 3210860Sandreas.sandberg@arm.com# this software without specific prior written permission. No right of 3310860Sandreas.sandberg@arm.com# sublicense is granted herewith. Derivatives of the software and 3410860Sandreas.sandberg@arm.com# output created using the software may be prepared, but only for 3510860Sandreas.sandberg@arm.com# Non-Commercial Uses. Derivatives of the software may be shared with 3610860Sandreas.sandberg@arm.com# others provided: (i) the others agree to abide by the list of 3710860Sandreas.sandberg@arm.com# conditions herein which includes the Non-Commercial Use restrictions; 3810860Sandreas.sandberg@arm.com# and (ii) such Derivatives of the software include the above copyright 3910860Sandreas.sandberg@arm.com# notice to acknowledge the contribution from this software where 4010860Sandreas.sandberg@arm.com# applicable, this list of conditions and the disclaimer below. 4110860Sandreas.sandberg@arm.com# 4210860Sandreas.sandberg@arm.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 4310860Sandreas.sandberg@arm.com# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 4410860Sandreas.sandberg@arm.com# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 4510860Sandreas.sandberg@arm.com# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 4610860Sandreas.sandberg@arm.com# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 4710860Sandreas.sandberg@arm.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 4810860Sandreas.sandberg@arm.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 4910860Sandreas.sandberg@arm.com# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 5010860Sandreas.sandberg@arm.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 5110860Sandreas.sandberg@arm.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 5210860Sandreas.sandberg@arm.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 5310860Sandreas.sandberg@arm.com# 5410860Sandreas.sandberg@arm.com# Authors: Gabe Black 5510860Sandreas.sandberg@arm.com 5610860Sandreas.sandberg@arm.commicrocode = ''' 5710860Sandreas.sandberg@arm.comdef macroop PREFETCH_M 5810860Sandreas.sandberg@arm.com{ 5910860Sandreas.sandberg@arm.com ld t0, seg, sib, disp, dataSize=1, prefetch=True 6010860Sandreas.sandberg@arm.com}; 6110860Sandreas.sandberg@arm.com 6210860Sandreas.sandberg@arm.comdef macroop PREFETCH_P 6310860Sandreas.sandberg@arm.com{ 6410860Sandreas.sandberg@arm.com rdip t7 6510860Sandreas.sandberg@arm.com ld t0, seg, riprel, disp, dataSize=1, prefetch=True 6610860Sandreas.sandberg@arm.com}; 6710860Sandreas.sandberg@arm.com 6810860Sandreas.sandberg@arm.comdef macroop PREFETCH_T0_M 6910860Sandreas.sandberg@arm.com{ 7010860Sandreas.sandberg@arm.com ld t0, seg, sib, disp, dataSize=1, prefetch=True 7110860Sandreas.sandberg@arm.com}; 7210860Sandreas.sandberg@arm.com 7310860Sandreas.sandberg@arm.comdef macroop PREFETCH_T0_P 7410860Sandreas.sandberg@arm.com{ 7510860Sandreas.sandberg@arm.com rdip t7 7610860Sandreas.sandberg@arm.com ld t0, seg, riprel, disp, dataSize=1, prefetch=True 7710860Sandreas.sandberg@arm.com}; 7810860Sandreas.sandberg@arm.com 7910860Sandreas.sandberg@arm.com''' 8010860Sandreas.sandberg@arm.com 8110860Sandreas.sandberg@arm.com#let {{ 8210860Sandreas.sandberg@arm.com# class LFENCE(Inst): 8310860Sandreas.sandberg@arm.com# "GenFault ${new UnimpInstFault}" 8410860Sandreas.sandberg@arm.com# class SFENCE(Inst): 8510860Sandreas.sandberg@arm.com# "GenFault ${new UnimpInstFault}" 8610860Sandreas.sandberg@arm.com# class MFENCE(Inst): 8710860Sandreas.sandberg@arm.com# "GenFault ${new UnimpInstFault}" 8810860Sandreas.sandberg@arm.com# class PREFETCHlevel(Inst): 8910860Sandreas.sandberg@arm.com# "GenFault ${new UnimpInstFault}" 9010860Sandreas.sandberg@arm.com# class PREFETCHW(Inst): 9110860Sandreas.sandberg@arm.com# "GenFault ${new UnimpInstFault}" 9210860Sandreas.sandberg@arm.com# class CLFLUSH(Inst): 9310860Sandreas.sandberg@arm.com# "GenFault ${new UnimpInstFault}" 9410860Sandreas.sandberg@arm.com#}}; 9510860Sandreas.sandberg@arm.com