111692Santhony.gutierrez@amd.com# Copyright (c) 2016 Advanced Micro Devices, Inc. 211692Santhony.gutierrez@amd.com# All rights reserved. 311692Santhony.gutierrez@amd.com# 411692Santhony.gutierrez@amd.com# For use for simulation and test purposes only 511692Santhony.gutierrez@amd.com# 611692Santhony.gutierrez@amd.com# Redistribution and use in source and binary forms, with or without 711692Santhony.gutierrez@amd.com# modification, are permitted provided that the following conditions are met: 811692Santhony.gutierrez@amd.com# 911692Santhony.gutierrez@amd.com# 1. Redistributions of source code must retain the above copyright notice, 1011692Santhony.gutierrez@amd.com# this list of conditions and the following disclaimer. 1111692Santhony.gutierrez@amd.com# 1211692Santhony.gutierrez@amd.com# 2. Redistributions in binary form must reproduce the above copyright notice, 1311692Santhony.gutierrez@amd.com# this list of conditions and the following disclaimer in the documentation 1411692Santhony.gutierrez@amd.com# and/or other materials provided with the distribution. 1511692Santhony.gutierrez@amd.com# 1611692Santhony.gutierrez@amd.com# 3. Neither the name of the copyright holder nor the names of its contributors 1711692Santhony.gutierrez@amd.com# may be used to endorse or promote products derived from this software 1811692Santhony.gutierrez@amd.com# without specific prior written permission. 1911692Santhony.gutierrez@amd.com# 2011692Santhony.gutierrez@amd.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2111692Santhony.gutierrez@amd.com# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2211692Santhony.gutierrez@amd.com# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2311692Santhony.gutierrez@amd.com# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 2411692Santhony.gutierrez@amd.com# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2511692Santhony.gutierrez@amd.com# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2611692Santhony.gutierrez@amd.com# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2711692Santhony.gutierrez@amd.com# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2811692Santhony.gutierrez@amd.com# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2911692Santhony.gutierrez@amd.com# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 3011692Santhony.gutierrez@amd.com# POSSIBILITY OF SUCH DAMAGE. 3111692Santhony.gutierrez@amd.com# 3211692Santhony.gutierrez@amd.com# Authors: Anthony Gutierrez 3311692Santhony.gutierrez@amd.com 3411692Santhony.gutierrez@amd.comfrom m5.params import * 3511692Santhony.gutierrez@amd.com 3611692Santhony.gutierrez@amd.comclass GPUStaticInstFlags(Enum): 3711692Santhony.gutierrez@amd.com wrapper_name = 'GPUStaticInstFlags' 3811692Santhony.gutierrez@amd.com wrapper_is_struct = True 3911692Santhony.gutierrez@amd.com enum_name = 'Flags' 4011692Santhony.gutierrez@amd.com 4111692Santhony.gutierrez@amd.com vals = [ 4211692Santhony.gutierrez@amd.com # Op types 4311692Santhony.gutierrez@amd.com 'ALU', # ALU op 4411692Santhony.gutierrez@amd.com 'Branch', # Branch instruction 4511692Santhony.gutierrez@amd.com 'Nop', # No-op (no effect at all) 4611692Santhony.gutierrez@amd.com 'Return', # Return instruction 4711692Santhony.gutierrez@amd.com 'UnconditionalJump', # 4811692Santhony.gutierrez@amd.com 'SpecialOp', # Special op 4911692Santhony.gutierrez@amd.com 'Waitcnt', # Is a waitcnt instruction 5011692Santhony.gutierrez@amd.com 5111692Santhony.gutierrez@amd.com # Memory ops 5211692Santhony.gutierrez@amd.com 'MemBarrier', # Barrier instruction 5311692Santhony.gutierrez@amd.com 'MemFence', # Memory fence instruction 5411692Santhony.gutierrez@amd.com 'MemoryRef', # References memory (load, store, or atomic) 5511692Santhony.gutierrez@amd.com 'Flat', # Flat memory op 5611692Santhony.gutierrez@amd.com 'Load', # Reads from memory 5711692Santhony.gutierrez@amd.com 'Store', # Writes to memory 5811692Santhony.gutierrez@amd.com 5911692Santhony.gutierrez@amd.com # Atomic ops 6011692Santhony.gutierrez@amd.com 'AtomicReturn', # Atomic instruction that returns data 6111692Santhony.gutierrez@amd.com 'AtomicNoReturn', # Atomic instruction that doesn't return data 6211692Santhony.gutierrez@amd.com 6311692Santhony.gutierrez@amd.com # Instruction attributes 6411692Santhony.gutierrez@amd.com 'Scalar', # A scalar (not vector) operation 6511692Santhony.gutierrez@amd.com 'ReadsSCC', # The instruction reads SCC 6611692Santhony.gutierrez@amd.com 'WritesSCC', # The instruction writes SCC 6711692Santhony.gutierrez@amd.com 'ReadsVCC', # The instruction reads VCC 6811692Santhony.gutierrez@amd.com 'WritesVCC', # The instruction writes VCC 6911692Santhony.gutierrez@amd.com 7011692Santhony.gutierrez@amd.com # Atomic OP types 7111692Santhony.gutierrez@amd.com 'AtomicAnd', 7211692Santhony.gutierrez@amd.com 'AtomicOr', 7311692Santhony.gutierrez@amd.com 'AtomicXor', 7411692Santhony.gutierrez@amd.com 'AtomicCAS', 7511692Santhony.gutierrez@amd.com 'AtomicExch', 7611692Santhony.gutierrez@amd.com 'AtomicAdd', 7711692Santhony.gutierrez@amd.com 'AtomicSub', 7811692Santhony.gutierrez@amd.com 'AtomicInc', 7911692Santhony.gutierrez@amd.com 'AtomicDec', 8011692Santhony.gutierrez@amd.com 'AtomicMax', 8111692Santhony.gutierrez@amd.com 'AtomicMin', 8211692Santhony.gutierrez@amd.com 8311692Santhony.gutierrez@amd.com # Memory order flags 8411692Santhony.gutierrez@amd.com 'RelaxedOrder', 8511692Santhony.gutierrez@amd.com 'Acquire', # Has acquire semantics 8611692Santhony.gutierrez@amd.com 'Release', # Has release semantics 8711692Santhony.gutierrez@amd.com 'AcquireRelease', # Has acquire and release semantics 8811692Santhony.gutierrez@amd.com 'NoOrder', # Has no ordering restrictions 8911692Santhony.gutierrez@amd.com 9011692Santhony.gutierrez@amd.com # Segment access flags 9111692Santhony.gutierrez@amd.com 'ArgSegment', # Accesses the arg segment 9211692Santhony.gutierrez@amd.com 'GlobalSegment', # Accesses global memory 9311692Santhony.gutierrez@amd.com 'GroupSegment', # Accesses local memory (LDS), aka shared memory 9411692Santhony.gutierrez@amd.com 'KernArgSegment', # Accesses the kernel argument segment 9511692Santhony.gutierrez@amd.com 'PrivateSegment', # Accesses the private segment 9611692Santhony.gutierrez@amd.com 'ReadOnlySegment', # Accesses read only memory 9711692Santhony.gutierrez@amd.com 'SpillSegment', # Accesses the spill segment 9811692Santhony.gutierrez@amd.com 'NoSegment', # Does not have an associated segment 9911692Santhony.gutierrez@amd.com 10011692Santhony.gutierrez@amd.com # Scope flags 10111692Santhony.gutierrez@amd.com 'WorkitemScope', 10211692Santhony.gutierrez@amd.com 'WavefrontScope', 10311692Santhony.gutierrez@amd.com 'WorkgroupScope', 10411692Santhony.gutierrez@amd.com 'DeviceScope', 10511692Santhony.gutierrez@amd.com 'SystemScope', 10611692Santhony.gutierrez@amd.com 'NoScope', # Does not have an associated scope 10711692Santhony.gutierrez@amd.com 10811692Santhony.gutierrez@amd.com # Coherence flags 10911692Santhony.gutierrez@amd.com 'GloballyCoherent', # Coherent with other workitems on same device 11011692Santhony.gutierrez@amd.com 'SystemCoherent' # Coherent with a different device, or the host 11111692Santhony.gutierrez@amd.com ] 112