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