Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5564 serge 1
/*
2
 * Copyright 2011 Tom Stellard 
3
 * Copyright 2013 Advanced Micro Devices, Inc.
4
 *
5
 * All Rights Reserved.
6
 *
7
 * Permission is hereby granted, free of charge, to any person obtaining
8
 * a copy of this software and associated documentation files (the
9
 * "Software"), to deal in the Software without restriction, including
10
 * without limitation the rights to use, copy, modify, merge, publish,
11
 * distribute, sublicense, and/or sell copies of the Software, and to
12
 * permit persons to whom the Software is furnished to do so, subject to
13
 * the following conditions:
14
 *
15
 * The above copyright notice and this permission notice (including the
16
 * next paragraph) shall be included in all copies or substantial
17
 * portions of the Software.
18
 *
19
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22
 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
23
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
24
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
25
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
 *
27
 * Author: Tom Stellard 
28
 */
29
 
30
#include "radeon_compiler.h"
31
 
32
struct rc_test_file {
33
	unsigned num_input_lines;
34
	char **input;
35
	unsigned num_expected_lines;
36
	char **expected;
37
};
38
 
39
int init_rc_normal_src(
40
	struct rc_instruction * inst,
41
	unsigned int src_index,
42
	const char * src_str);
43
 
44
int init_rc_normal_dst(
45
	struct rc_instruction * inst,
46
	const char * dst_str);
47
 
48
int parse_rc_normal_instruction(
49
	struct rc_instruction * inst,
50
	const char * inst_str);
51
 
52
int parse_constant(unsigned *index, float *data, const char *const_str);
53
 
54
int init_rc_normal_instruction(
55
	struct rc_instruction * inst,
56
	const char * inst_str);
57
 
58
void add_instruction(struct radeon_compiler *c, const char * inst_string);
59
 
60
int add_constant(struct radeon_compiler *c, const char *const_str);
61
 
62
void init_compiler(
63
	struct radeon_compiler *c,
64
	enum rc_program_type program_type,
65
	unsigned is_r500,
66
	unsigned is_r400);
67
 
68
unsigned load_program(
69
	struct radeon_compiler *c,
70
	struct rc_test_file *test,
71
	const char *filename);