11c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák/*
21c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * Copyright (C) 2009 Nicolai Haehnle.
31c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák *
41c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * All Rights Reserved.
51c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák *
61c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * Permission is hereby granted, free of charge, to any person obtaining
71c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * a copy of this software and associated documentation files (the
81c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * "Software"), to deal in the Software without restriction, including
91c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * without limitation the rights to use, copy, modify, merge, publish,
101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * distribute, sublicense, and/or sell copies of the Software, and to
111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * permit persons to whom the Software is furnished to do so, subject to
121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * the following conditions:
131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák *
141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * The above copyright notice and this permission notice (including the
151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * next paragraph) shall be included in all copies or substantial
161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * portions of the Software.
171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák *
181c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák *
261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák */
271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák
281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#include "radeon_opcodes.h"
291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#include "radeon_program.h"
301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák
311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#include "radeon_program_constants.h"
321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák
331c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákstruct rc_opcode_info rc_opcodes[MAX_RC_OPCODE] = {
341c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
351c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_NOP,
361c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "NOP"
371c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
381c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
391c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_ILLEGAL_OPCODE,
401c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "ILLEGAL OPCODE"
411c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
421c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
431c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_ABS,
441c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "ABS",
451c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
461c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
471c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
481c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
491c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
501c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_ADD,
511c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "ADD",
521c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
531c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
541c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
551c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
561c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
571c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_ARL,
581c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "ARL",
591c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
601c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
611c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
621c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
631c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_CEIL,
641c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "CEIL",
651c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
661c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
671c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
681c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
691c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
701c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_CLAMP,
711c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "CLAMP",
721c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 3,
731c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
741c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
751c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
761c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
771c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_CMP,
781c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "CMP",
791c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 3,
801c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
811c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
821c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
831c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
841c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_CND,
851c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "CND",
861c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 3,
871c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
881c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
891c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
901c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
911c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_COS,
921c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "COS",
931c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
941c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
951c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsStandardScalar = 1
961c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
971c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
981c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_DDX,
991c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "DDX",
1001c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
1011c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
1021c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
1031c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1041c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1051c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_DDY,
1061c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "DDY",
1071c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
1081c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
1091c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
1101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_DP2,
1131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "DP2",
1141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
1151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1181c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_DP3,
1191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "DP3",
1201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
1211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_DP4,
1251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "DP4",
1261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
1271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_DPH,
1311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "DPH",
1321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
1331c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1341c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1351c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1361c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_DST,
1371c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "DST",
1381c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
1391c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1401c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1411c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1421c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_EX2,
1431c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "EX2",
1441c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
1451c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
1461c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsStandardScalar = 1
1471c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1481c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1491c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_EXP,
1501c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "EXP",
1511c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
1521c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1531c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1541c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1551c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_FLR,
1561c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "FLR",
1571c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
1581c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
1591c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
1601c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1611c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1621c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_FRC,
1631c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "FRC",
1641c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
1651c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
1661c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
1671c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1681c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1691c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_KIL,
1701c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "KIL",
1711c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1
1721c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1731c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1741c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_LG2,
1751c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "LG2",
1761c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
1771c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
1781c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsStandardScalar = 1
1791c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1801c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1811c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_LIT,
1821c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "LIT",
1831c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
1841c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1851c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1861c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1871c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_LOG,
1881c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "LOG",
1891c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
1901c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
1911c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1921c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
1931c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_LRP,
1941c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "LRP",
1951c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 3,
1961c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
1971c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
1981c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
1991c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2001c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_MAD,
2011c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "MAD",
2021c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 3,
2031c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2041c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2051c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2061c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2071c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_MAX,
2081c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "MAX",
2091c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
2101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_MIN,
2151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "MIN",
2161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
2171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2181c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_MOV,
2221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "MOV",
2231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
2241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_MUL,
2291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "MUL",
2301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
2311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2331c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2341c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2351c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_POW,
2361c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "POW",
2371c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
2381c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2391c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsStandardScalar = 1
2401c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2411c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2421c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_RCP,
2431c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "RCP",
2441c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
2451c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2461c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsStandardScalar = 1
2471c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2481c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2493d32e589879806297258e36ea80aae5044293ca3Tom Stellard		.Opcode = RC_OPCODE_ROUND,
2503d32e589879806297258e36ea80aae5044293ca3Tom Stellard		.Name = "ROUND",
2513d32e589879806297258e36ea80aae5044293ca3Tom Stellard		.NumSrcRegs = 1,
2523d32e589879806297258e36ea80aae5044293ca3Tom Stellard		.HasDstReg = 1,
2533d32e589879806297258e36ea80aae5044293ca3Tom Stellard		.IsComponentwise = 1
2543d32e589879806297258e36ea80aae5044293ca3Tom Stellard	},
2553d32e589879806297258e36ea80aae5044293ca3Tom Stellard	{
2561c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_RSQ,
2571c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "RSQ",
2581c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
2591c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2601c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsStandardScalar = 1
2611c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2621c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2631c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SCS,
2641c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SCS",
2651c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
2661c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
2671c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2681c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2691c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SEQ,
2701c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SEQ",
2711c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
2721c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2731c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2741c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2751c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2761c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SFL,
2771c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SFL",
2781c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 0,
2791c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2801c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2811c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2821c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2831c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SGE,
2841c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SGE",
2851c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
2861c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2871c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2881c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2891c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2901c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SGT,
2911c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SGT",
2921c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
2931c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
2941c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
2951c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
2961c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
2971c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SIN,
2981c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SIN",
2991c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
3001c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
3011c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsStandardScalar = 1
3021c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3031c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3041c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SLE,
3051c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SLE",
3061c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
3071c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
3081c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
3091c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SLT,
3121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SLT",
3131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
3141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
3151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
3161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3181c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SNE,
3191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SNE",
3201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
3211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
3221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
3231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SSG,
3261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SSG",
3271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
3281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
3291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
3301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SUB,
3331c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SUB",
3341c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
3351c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
3361c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
3371c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3381c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3391c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_SWZ,
3401c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "SWZ",
3411c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
3421c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1,
3431c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsComponentwise = 1
3441c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3451c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3467f0fcf17c342dcb788c2182b20973c48806ee498Marek Olšák		.Opcode = RC_OPCODE_TRUNC,
3477f0fcf17c342dcb788c2182b20973c48806ee498Marek Olšák		.Name = "TRUNC",
3487f0fcf17c342dcb788c2182b20973c48806ee498Marek Olšák		.NumSrcRegs = 1,
3497f0fcf17c342dcb788c2182b20973c48806ee498Marek Olšák		.HasDstReg = 1,
3507f0fcf17c342dcb788c2182b20973c48806ee498Marek Olšák		.IsComponentwise = 1
3517f0fcf17c342dcb788c2182b20973c48806ee498Marek Olšák	},
3527f0fcf17c342dcb788c2182b20973c48806ee498Marek Olšák	{
3531c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_XPD,
3541c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "XPD",
3551c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 2,
3561c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
3571c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3581c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3591c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_TEX,
3601c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "TEX",
3611c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasTexture = 1,
3621c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
3631c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
3641c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3651c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3661c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_TXB,
3671c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "TXB",
3681c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasTexture = 1,
3691c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
3701c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
3711c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3721c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3731c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_TXD,
3741c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "TXD",
3751c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasTexture = 1,
3761c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 3,
3771c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
3781c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3791c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3801c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_TXL,
3811c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "TXL",
3821c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasTexture = 1,
3831c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
3841c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
3851c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3861c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3871c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_TXP,
3881c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "TXP",
3891c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasTexture = 1,
3901c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1,
3911c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
3921c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3931c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
3941c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_IF,
3951c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "IF",
3961c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsFlowControl = 1,
3971c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 1
3981c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
3991c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4001c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_ELSE,
4011c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "ELSE",
4021c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsFlowControl = 1,
4031c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 0
4041c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4051c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4061c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_ENDIF,
4071c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "ENDIF",
4081c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsFlowControl = 1,
4091c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 0
4101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_BGNLOOP,
4131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "BGNLOOP",
4141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsFlowControl = 1,
4151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 0
4161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4181c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_BRK,
4191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "BRK",
4201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsFlowControl = 1,
4211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 0
4221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_ENDLOOP,
4251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "ENDLOOP",
4261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsFlowControl = 1,
4271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 0,
4281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_CONT,
4311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "CONT",
4321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.IsFlowControl = 1,
4331c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.NumSrcRegs = 0
4341c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4351c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4361c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_REPL_ALPHA,
4371c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "REPL_ALPHA",
4381c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.HasDstReg = 1
4391c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4401c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4411c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_BEGIN_TEX,
4421c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "BEGIN_TEX"
4431c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	},
4441c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	{
4451c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Opcode = RC_OPCODE_KILP,
4461c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		.Name = "KILP",
447b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
448b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
449b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SEQ,
450b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SEQ",
451b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
452b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
453b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
454b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
455b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SGT,
456b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SGT",
457b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
458b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
459b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
460b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
461b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SGE,
462b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SGE",
463b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
464b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
465b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
466b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
467b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SNEQ,
468b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SNEQ",
469b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
470b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
471b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
472b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
473b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SET_CLR,
474b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SET_CLEAR",
475b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
476b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
477b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
478b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
479b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SET_INV,
480b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SET_INV",
481b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
482b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
483b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
484b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
485b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SET_POP,
486b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SET_POP",
487b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
488b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
489b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
490b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
491b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_ME_PRED_SET_RESTORE,
492b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "ME_PRED_SET_RESTORE",
493b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 1,
494b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
495b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
496b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
497b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_VE_PRED_SEQ_PUSH,
498b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "VE_PRED_SEQ_PUSH",
499b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 2,
500b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
501b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
502b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
503b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_VE_PRED_SGT_PUSH,
504b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "VE_PRED_SGT_PUSH",
505b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 2,
506b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
507b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
508b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
509b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_VE_PRED_SGE_PUSH,
510b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "VE_PRED_SGE_PUSH",
511b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 2,
512b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
513b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	},
514b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard	{
515b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Opcode = RC_VE_PRED_SNEQ_PUSH,
516b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.Name = "VE_PRED_SNEQ_PUSH",
517b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.NumSrcRegs = 2,
518b2df031a959f36743527b9abc89913ce4f895de3Tom Stellard		.HasDstReg = 1
5191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	}
5201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák};
5211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák
5221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákvoid rc_compute_sources_for_writemask(
5231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		const struct rc_instruction *inst,
5241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		unsigned int writemask,
5251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		unsigned int *srcmasks)
5261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák{
5271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode);
5281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	srcmasks[0] = 0;
5291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	srcmasks[1] = 0;
5301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	srcmasks[2] = 0;
5311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák
5321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	if (opcode->Opcode == RC_OPCODE_KIL)
5331c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		srcmasks[0] |= RC_MASK_XYZW;
5341c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	else if (opcode->Opcode == RC_OPCODE_IF)
5351c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		srcmasks[0] |= RC_MASK_X;
5361c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák
5371c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	if (!writemask)
5381c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		return;
5391c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák
5401c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	if (opcode->IsComponentwise) {
5411c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		for(unsigned int src = 0; src < opcode->NumSrcRegs; ++src)
5421c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[src] |= writemask;
5431c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	} else if (opcode->IsStandardScalar) {
5441c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		for(unsigned int src = 0; src < opcode->NumSrcRegs; ++src)
545b5ecf5ba466c3e1872dc9281b01f4e59ca1a388bTom Stellard			srcmasks[src] |= writemask;
5461c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	} else {
5471c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		switch(opcode->Opcode) {
5481c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_ARL:
5491c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_X;
5501c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
5511c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_DP2:
5521c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_XY;
5531c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[1] |= RC_MASK_XY;
5541c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
5551c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_DP3:
5561c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_XPD:
5571c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_XYZ;
5581c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[1] |= RC_MASK_XYZ;
5591c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
5601c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_DP4:
5611c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_XYZW;
5621c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[1] |= RC_MASK_XYZW;
5631c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
5641c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_DPH:
5651c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_XYZ;
5661c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[1] |= RC_MASK_XYZW;
5671c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
5681c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_TXB:
5691c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_TXP:
5701c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_TXL:
5711c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_W;
5721c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			/* Fall through */
5731c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_TEX:
5741c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			switch (inst->U.I.TexSrcTarget) {
5751c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_1D:
5761c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_X;
5771c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					break;
5781c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_2D:
5791c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_RECT:
5801c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_1D_ARRAY:
5811c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_XY;
5821c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					break;
5831c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_3D:
5841c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_CUBE:
5851c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_2D_ARRAY:
5861c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_XYZ;
5871c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					break;
5881c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			}
5891c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
5901c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_TXD:
5911c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			switch (inst->U.I.TexSrcTarget) {
5921c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_1D_ARRAY:
5931c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_Y;
5941c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					/* Fall through. */
5951c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_1D:
5961c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_X;
5971c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[1] |= RC_MASK_X;
5981c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[2] |= RC_MASK_X;
5991c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					break;
6001c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_2D_ARRAY:
6011c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_Z;
6021c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					/* Fall through. */
6031c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_2D:
6041c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_RECT:
6051c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_XY;
6061c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[1] |= RC_MASK_XY;
6071c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[2] |= RC_MASK_XY;
6081c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					break;
6091c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_3D:
6101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák				case RC_TEXTURE_CUBE:
6111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[0] |= RC_MASK_XYZ;
6121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[1] |= RC_MASK_XYZ;
6131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					srcmasks[2] |= RC_MASK_XYZ;
6141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák					break;
6151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			}
6161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
6171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_DST:
6181c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_Y | RC_MASK_Z;
6191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[1] |= RC_MASK_Y | RC_MASK_W;
6201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
6211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_EXP:
6221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_LOG:
6231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_XY;
6241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
6251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		case RC_OPCODE_LIT:
6261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			srcmasks[0] |= RC_MASK_X | RC_MASK_Y | RC_MASK_W;
6271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
6281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		default:
6291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák			break;
6301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák		}
6311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák	}
6321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák}
633