17279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol/************************************************************************** 27279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * 37279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. 47279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * All Rights Reserved. 57279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * 67279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * Permission is hereby granted, free of charge, to any person obtaining a 77279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * copy of this software and associated documentation files (the 87279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * "Software"), to deal in the Software without restriction, including 97279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * without limitation the rights to use, copy, modify, merge, publish, 107279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * distribute, sub license, and/or sell copies of the Software, and to 117279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * permit persons to whom the Software is furnished to do so, subject to 127279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * the following conditions: 137279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * 147279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * The above copyright notice and this permission notice (including the 157279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * next paragraph) shall be included in all copies or substantial portions 167279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * of the Software. 177279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * 187279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 197279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 207279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 217279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 227279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 237279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 247279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 257279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol * 267279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol **************************************************************************/ 277279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol 287279d663e984ae8a243f56c010f175fee9ffccb3Michal Krol#ifndef TGSI_BUILD_H 29ffe58739da9eee2e99682747cc8f26e412c87430michal#define TGSI_BUILD_H 30ffe58739da9eee2e99682747cc8f26e412c87430michal 314f25420bdd834e81a3e22733304efc5261c2998aBrian Paul 324f25420bdd834e81a3e22733304efc5261c2998aBrian Paulstruct tgsi_token; 334f25420bdd834e81a3e22733304efc5261c2998aBrian Paul 344f25420bdd834e81a3e22733304efc5261c2998aBrian Paul 35ffe58739da9eee2e99682747cc8f26e412c87430michal#if defined __cplusplus 36ffe58739da9eee2e99682747cc8f26e412c87430michalextern "C" { 379a8a5d7c2fe7f32c8d15bc0a77f86e1f2f995ffeJosé Fonseca#endif 38ffe58739da9eee2e99682747cc8f26e412c87430michal 39ffe58739da9eee2e99682747cc8f26e412c87430michal 40ffe58739da9eee2e99682747cc8f26e412c87430michal/* 41ffe58739da9eee2e99682747cc8f26e412c87430michal * header 42ffe58739da9eee2e99682747cc8f26e412c87430michal */ 43ffe58739da9eee2e99682747cc8f26e412c87430michal 44ffe58739da9eee2e99682747cc8f26e412c87430michalstruct tgsi_header 45ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_build_header( void ); 46ffe58739da9eee2e99682747cc8f26e412c87430michal 47ffe58739da9eee2e99682747cc8f26e412c87430michalstruct tgsi_processor 48ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_build_processor( 4970af238b494ed1b6da4841c2065c33ee0f0f37c9Keith Whitwell unsigned processor, 50ffe58739da9eee2e99682747cc8f26e412c87430michal struct tgsi_header *header ); 51ffe58739da9eee2e99682747cc8f26e412c87430michal 52ffe58739da9eee2e99682747cc8f26e412c87430michal/* 53ffe58739da9eee2e99682747cc8f26e412c87430michal * declaration 54ffe58739da9eee2e99682747cc8f26e412c87430michal */ 55ffe58739da9eee2e99682747cc8f26e412c87430michal 56ffe58739da9eee2e99682747cc8f26e412c87430michalstruct tgsi_full_declaration 57ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_default_full_declaration( void ); 58ffe58739da9eee2e99682747cc8f26e412c87430michal 5970af238b494ed1b6da4841c2065c33ee0f0f37c9Keith Whitwellunsigned 60ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_build_full_declaration( 61ffe58739da9eee2e99682747cc8f26e412c87430michal const struct tgsi_full_declaration *full_decl, 62ffe58739da9eee2e99682747cc8f26e412c87430michal struct tgsi_token *tokens, 63ffe58739da9eee2e99682747cc8f26e412c87430michal struct tgsi_header *header, 6470af238b494ed1b6da4841c2065c33ee0f0f37c9Keith Whitwell unsigned maxsize ); 65ffe58739da9eee2e99682747cc8f26e412c87430michal 66ffe58739da9eee2e99682747cc8f26e412c87430michal/* 67ffe58739da9eee2e99682747cc8f26e412c87430michal * immediate 68ffe58739da9eee2e99682747cc8f26e412c87430michal */ 69ffe58739da9eee2e99682747cc8f26e412c87430michal 70ffe58739da9eee2e99682747cc8f26e412c87430michalstruct tgsi_full_immediate 71ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_default_full_immediate( void ); 72ffe58739da9eee2e99682747cc8f26e412c87430michal 7370af238b494ed1b6da4841c2065c33ee0f0f37c9Keith Whitwellunsigned 74ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_build_full_immediate( 75ffe58739da9eee2e99682747cc8f26e412c87430michal const struct tgsi_full_immediate *full_imm, 76ffe58739da9eee2e99682747cc8f26e412c87430michal struct tgsi_token *tokens, 77ffe58739da9eee2e99682747cc8f26e412c87430michal struct tgsi_header *header, 7870af238b494ed1b6da4841c2065c33ee0f0f37c9Keith Whitwell unsigned maxsize ); 79ffe58739da9eee2e99682747cc8f26e412c87430michal 80ffe58739da9eee2e99682747cc8f26e412c87430michal/* 813ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin * properties 823ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin */ 833ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin 843ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusinstruct tgsi_full_property 853ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusintgsi_default_full_property( void ); 863ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin 873ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusinunsigned 883ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusintgsi_build_full_property( 893ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin const struct tgsi_full_property *full_prop, 903ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin struct tgsi_token *tokens, 913ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin struct tgsi_header *header, 923ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin unsigned maxsize ); 933ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin 943ff688ea299581e60caf5d6e1a464f68c717fe83Zack Rusin/* 95ffe58739da9eee2e99682747cc8f26e412c87430michal * instruction 96ffe58739da9eee2e99682747cc8f26e412c87430michal */ 97ffe58739da9eee2e99682747cc8f26e412c87430michal 98ffe58739da9eee2e99682747cc8f26e412c87430michalstruct tgsi_instruction 99ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_default_instruction( void ); 100ffe58739da9eee2e99682747cc8f26e412c87430michal 101ffe58739da9eee2e99682747cc8f26e412c87430michalstruct tgsi_full_instruction 102ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_default_full_instruction( void ); 103ffe58739da9eee2e99682747cc8f26e412c87430michal 10470af238b494ed1b6da4841c2065c33ee0f0f37c9Keith Whitwellunsigned 105ffe58739da9eee2e99682747cc8f26e412c87430michaltgsi_build_full_instruction( 106ffe58739da9eee2e99682747cc8f26e412c87430michal const struct tgsi_full_instruction *full_inst, 107ffe58739da9eee2e99682747cc8f26e412c87430michal struct tgsi_token *tokens, 108ffe58739da9eee2e99682747cc8f26e412c87430michal struct tgsi_header *header, 10970af238b494ed1b6da4841c2065c33ee0f0f37c9Keith Whitwell unsigned maxsize ); 110ffe58739da9eee2e99682747cc8f26e412c87430michal 1115ee0d9f632383339088cc33005b7794b0915d4e0Michal Krolstruct tgsi_instruction_predicate 1125ee0d9f632383339088cc33005b7794b0915d4e0Michal Kroltgsi_default_instruction_predicate(void); 1135ee0d9f632383339088cc33005b7794b0915d4e0Michal Krol 114ffe58739da9eee2e99682747cc8f26e412c87430michal#if defined __cplusplus 1159a8a5d7c2fe7f32c8d15bc0a77f86e1f2f995ffeJosé Fonseca} 1169a8a5d7c2fe7f32c8d15bc0a77f86e1f2f995ffeJosé Fonseca#endif 117ffe58739da9eee2e99682747cc8f26e412c87430michal 1189a8a5d7c2fe7f32c8d15bc0a77f86e1f2f995ffeJosé Fonseca#endif /* TGSI_BUILD_H */ 119