1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright (C) 2009 Nicolai Haehnle. 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * All Rights Reserved. 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * a copy of this software and associated documentation files (the 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * "Software"), to deal in the Software without restriction, including 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * without limitation the rights to use, copy, modify, merge, publish, 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * distribute, sublicense, and/or sell copies of the Software, and to 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * permit persons to whom the Software is furnished to do so, subject to 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the following conditions: 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice (including the 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * next paragraph) shall be included in all copies or substantial 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * portions of the Software. 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "radeon_opcodes.h" 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "radeon_program.h" 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "radeon_program_constants.h" 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct rc_opcode_info rc_opcodes[MAX_RC_OPCODE] = { 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_NOP, 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "NOP" 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ILLEGAL_OPCODE, 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ILLEGAL OPCODE" 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ABS, 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ABS", 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ADD, 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ADD", 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ARL, 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ARL", 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_CEIL, 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "CEIL", 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_CLAMP, 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "CLAMP", 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 3, 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_CMP, 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "CMP", 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 3, 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_CND, 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "CND", 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 3, 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_COS, 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "COS", 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsStandardScalar = 1 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_DDX, 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "DDX", 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_DDY, 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "DDY", 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_DP2, 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "DP2", 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_DP3, 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "DP3", 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_DP4, 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "DP4", 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_DPH, 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "DPH", 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_DST, 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "DST", 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_EX2, 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "EX2", 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsStandardScalar = 1 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_EXP, 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "EXP", 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_FLR, 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "FLR", 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_FRC, 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "FRC", 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_KIL, 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "KIL", 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_LG2, 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "LG2", 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsStandardScalar = 1 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_LIT, 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "LIT", 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_LOG, 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "LOG", 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_LRP, 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "LRP", 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 3, 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_MAD, 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "MAD", 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 3, 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_MAX, 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "MAX", 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_MIN, 215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "MIN", 216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_MOV, 222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "MOV", 223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_MUL, 229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "MUL", 230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_POW, 236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "POW", 237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsStandardScalar = 1 240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_RCP, 243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "RCP", 244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsStandardScalar = 1 247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ROUND, 250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ROUND", 251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_RSQ, 257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "RSQ", 258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsStandardScalar = 1 261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SCS, 264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SCS", 265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SEQ, 270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SEQ", 271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SFL, 277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SFL", 278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 0, 279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SGE, 284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SGE", 285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SGT, 291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SGT", 292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SIN, 298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SIN", 299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsStandardScalar = 1 302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SLE, 305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SLE", 306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 308f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 309f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 310f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 311f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SLT, 312f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SLT", 313f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 314f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 315f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 316f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 317f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 318f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SNE, 319f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SNE", 320f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 321f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 322f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 323f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 324f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 325f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SSG, 326f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SSG", 327f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 328f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 329f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 330f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 331f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 332f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SUB, 333f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SUB", 334f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 335f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 336f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 337f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 338f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 339f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_SWZ, 340f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "SWZ", 341f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 342f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 343f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 344f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 345f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 346f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_TRUNC, 347f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "TRUNC", 348f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 349f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1, 350f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsComponentwise = 1 351f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 352f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 353f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_XPD, 354f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "XPD", 355f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 356f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 357f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 358f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 359f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_TEX, 360f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "TEX", 361f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasTexture = 1, 362f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 363f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 364f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 365f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 366f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_TXB, 367f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "TXB", 368f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasTexture = 1, 369f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 370f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 371f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 372f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 373f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_TXD, 374f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "TXD", 375f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasTexture = 1, 376f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 3, 377f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 378f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 379f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 380f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_TXL, 381f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "TXL", 382f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasTexture = 1, 383f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 384f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 385f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 386f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 387f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_TXP, 388f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "TXP", 389f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasTexture = 1, 390f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 391f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 392f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 393f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 394f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_IF, 395f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "IF", 396f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsFlowControl = 1, 397f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1 398f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 399f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 400f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ELSE, 401f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ELSE", 402f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsFlowControl = 1, 403f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 0 404f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 405f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 406f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ENDIF, 407f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ENDIF", 408f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsFlowControl = 1, 409f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 0 410f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 411f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 412f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_BGNLOOP, 413f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "BGNLOOP", 414f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsFlowControl = 1, 415f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 0 416f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 417f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 418f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_BRK, 419f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "BRK", 420f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsFlowControl = 1, 421f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 0 422f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 423f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 424f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_ENDLOOP, 425f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ENDLOOP", 426f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsFlowControl = 1, 427f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 0, 428f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 429f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 430f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_CONT, 431f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "CONT", 432f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .IsFlowControl = 1, 433f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 0 434f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 435f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 436f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_REPL_ALPHA, 437f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "REPL_ALPHA", 438f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 439f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 440f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 441f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_BEGIN_TEX, 442f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "BEGIN_TEX" 443f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 444f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 445f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_OPCODE_KILP, 446f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "KILP", 447f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 448f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 449f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SEQ, 450f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SEQ", 451f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 452f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 453f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 454f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 455f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SGT, 456f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SGT", 457f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 458f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 459f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 460f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 461f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SGE, 462f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SGE", 463f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 464f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 465f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 466f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 467f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SNEQ, 468f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SNEQ", 469f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 470f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 471f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 472f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 473f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SET_CLR, 474f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SET_CLEAR", 475f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 476f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 477f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 478f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 479f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SET_INV, 480f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SET_INV", 481f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 482f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 483f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 484f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 485f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SET_POP, 486f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SET_POP", 487f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 488f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 489f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 490f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 491f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_ME_PRED_SET_RESTORE, 492f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "ME_PRED_SET_RESTORE", 493f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 1, 494f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 495f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 496f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 497f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_VE_PRED_SEQ_PUSH, 498f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "VE_PRED_SEQ_PUSH", 499f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 500f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 501f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 502f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 503f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_VE_PRED_SGT_PUSH, 504f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "VE_PRED_SGT_PUSH", 505f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 506f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 507f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 508f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 509f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_VE_PRED_SGE_PUSH, 510f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "VE_PRED_SGE_PUSH", 511f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 512f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 513f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }, 514f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { 515f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Opcode = RC_VE_PRED_SNEQ_PUSH, 516f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .Name = "VE_PRED_SNEQ_PUSH", 517f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .NumSrcRegs = 2, 518f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org .HasDstReg = 1 519f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 520f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 521f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 522f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid rc_compute_sources_for_writemask( 523f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const struct rc_instruction *inst, 524f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned int writemask, 525f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned int *srcmasks) 526f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 527f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); 528f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] = 0; 529f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] = 0; 530f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[2] = 0; 531f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 532f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (opcode->Opcode == RC_OPCODE_KIL) 533f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XYZW; 534f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org else if (opcode->Opcode == RC_OPCODE_IF) 535f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_X; 536f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 537f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (!writemask) 538f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return; 539f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 540f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (opcode->IsComponentwise) { 541f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for(unsigned int src = 0; src < opcode->NumSrcRegs; ++src) 542f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[src] |= writemask; 543f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } else if (opcode->IsStandardScalar) { 544f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for(unsigned int src = 0; src < opcode->NumSrcRegs; ++src) 545f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[src] |= writemask; 546f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } else { 547f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org switch(opcode->Opcode) { 548f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_ARL: 549f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_X; 550f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 551f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_DP2: 552f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XY; 553f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_XY; 554f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 555f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_DP3: 556f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_XPD: 557f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XYZ; 558f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_XYZ; 559f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 560f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_DP4: 561f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XYZW; 562f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_XYZW; 563f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 564f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_DPH: 565f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XYZ; 566f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_XYZW; 567f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 568f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_TXB: 569f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_TXP: 570f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_TXL: 571f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_W; 572f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* Fall through */ 573f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_TEX: 574f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org switch (inst->U.I.TexSrcTarget) { 575f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_1D: 576f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_X; 577f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 578f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_2D: 579f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_RECT: 580f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_1D_ARRAY: 581f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XY; 582f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 583f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_3D: 584f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_CUBE: 585f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_2D_ARRAY: 586f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XYZ; 587f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 588f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 589f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 590f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_TXD: 591f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org switch (inst->U.I.TexSrcTarget) { 592f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_1D_ARRAY: 593f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_Y; 594f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* Fall through. */ 595f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_1D: 596f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_X; 597f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_X; 598f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[2] |= RC_MASK_X; 599f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 600f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_2D_ARRAY: 601f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_Z; 602f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* Fall through. */ 603f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_2D: 604f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_RECT: 605f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XY; 606f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_XY; 607f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[2] |= RC_MASK_XY; 608f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 609f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_3D: 610f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_TEXTURE_CUBE: 611f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XYZ; 612f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_XYZ; 613f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[2] |= RC_MASK_XYZ; 614f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 615f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 616f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 617f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_DST: 618f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_Y | RC_MASK_Z; 619f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[1] |= RC_MASK_Y | RC_MASK_W; 620f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 621f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_EXP: 622f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_LOG: 623f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_XY; 624f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 625f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org case RC_OPCODE_LIT: 626f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org srcmasks[0] |= RC_MASK_X | RC_MASK_Y | RC_MASK_W; 627f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 628f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org default: 629f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org break; 630f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 631f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } 632f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 633