1*d83cc019SAndroid Build Coastguard Worker /*
2*d83cc019SAndroid Build Coastguard Worker Copyright (C) Intel Corp. 2006. All Rights Reserved.
3*d83cc019SAndroid Build Coastguard Worker Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to
4*d83cc019SAndroid Build Coastguard Worker develop this 3D driver.
5*d83cc019SAndroid Build Coastguard Worker
6*d83cc019SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person obtaining
7*d83cc019SAndroid Build Coastguard Worker a copy of this software and associated documentation files (the
8*d83cc019SAndroid Build Coastguard Worker "Software"), to deal in the Software without restriction, including
9*d83cc019SAndroid Build Coastguard Worker without limitation the rights to use, copy, modify, merge, publish,
10*d83cc019SAndroid Build Coastguard Worker distribute, sublicense, and/or sell copies of the Software, and to
11*d83cc019SAndroid Build Coastguard Worker permit persons to whom the Software is furnished to do so, subject to
12*d83cc019SAndroid Build Coastguard Worker the following conditions:
13*d83cc019SAndroid Build Coastguard Worker
14*d83cc019SAndroid Build Coastguard Worker The above copyright notice and this permission notice (including the
15*d83cc019SAndroid Build Coastguard Worker next paragraph) shall be included in all copies or substantial
16*d83cc019SAndroid Build Coastguard Worker portions of the Software.
17*d83cc019SAndroid Build Coastguard Worker
18*d83cc019SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19*d83cc019SAndroid Build Coastguard Worker EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20*d83cc019SAndroid Build Coastguard Worker MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21*d83cc019SAndroid Build Coastguard Worker IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
22*d83cc019SAndroid Build Coastguard Worker LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23*d83cc019SAndroid Build Coastguard Worker OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24*d83cc019SAndroid Build Coastguard Worker WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25*d83cc019SAndroid Build Coastguard Worker
26*d83cc019SAndroid Build Coastguard Worker **********************************************************************/
27*d83cc019SAndroid Build Coastguard Worker /*
28*d83cc019SAndroid Build Coastguard Worker * Authors:
29*d83cc019SAndroid Build Coastguard Worker * Keith Whitwell <[email protected]>
30*d83cc019SAndroid Build Coastguard Worker */
31*d83cc019SAndroid Build Coastguard Worker
32*d83cc019SAndroid Build Coastguard Worker #include "brw_eu.h"
33*d83cc019SAndroid Build Coastguard Worker
brw_print_reg(struct brw_reg hwreg)34*d83cc019SAndroid Build Coastguard Worker void brw_print_reg( struct brw_reg hwreg )
35*d83cc019SAndroid Build Coastguard Worker {
36*d83cc019SAndroid Build Coastguard Worker static const char *file[] = {
37*d83cc019SAndroid Build Coastguard Worker "arf",
38*d83cc019SAndroid Build Coastguard Worker "grf",
39*d83cc019SAndroid Build Coastguard Worker "msg",
40*d83cc019SAndroid Build Coastguard Worker "imm"
41*d83cc019SAndroid Build Coastguard Worker };
42*d83cc019SAndroid Build Coastguard Worker
43*d83cc019SAndroid Build Coastguard Worker static const char *type[] = {
44*d83cc019SAndroid Build Coastguard Worker "ud",
45*d83cc019SAndroid Build Coastguard Worker "d",
46*d83cc019SAndroid Build Coastguard Worker "uw",
47*d83cc019SAndroid Build Coastguard Worker "w",
48*d83cc019SAndroid Build Coastguard Worker "ub",
49*d83cc019SAndroid Build Coastguard Worker "vf",
50*d83cc019SAndroid Build Coastguard Worker "hf",
51*d83cc019SAndroid Build Coastguard Worker "f"
52*d83cc019SAndroid Build Coastguard Worker };
53*d83cc019SAndroid Build Coastguard Worker
54*d83cc019SAndroid Build Coastguard Worker printf("%s%s",
55*d83cc019SAndroid Build Coastguard Worker hwreg.abs ? "abs/" : "",
56*d83cc019SAndroid Build Coastguard Worker hwreg.negate ? "-" : "");
57*d83cc019SAndroid Build Coastguard Worker
58*d83cc019SAndroid Build Coastguard Worker if (hwreg.file == BRW_GENERAL_REGISTER_FILE &&
59*d83cc019SAndroid Build Coastguard Worker hwreg.nr % 2 == 0 &&
60*d83cc019SAndroid Build Coastguard Worker hwreg.subnr == 0 &&
61*d83cc019SAndroid Build Coastguard Worker hwreg.vstride == BRW_VERTICAL_STRIDE_8 &&
62*d83cc019SAndroid Build Coastguard Worker hwreg.width == BRW_WIDTH_8 &&
63*d83cc019SAndroid Build Coastguard Worker hwreg.hstride == BRW_HORIZONTAL_STRIDE_1 &&
64*d83cc019SAndroid Build Coastguard Worker hwreg.type == BRW_REGISTER_TYPE_F) {
65*d83cc019SAndroid Build Coastguard Worker /* vector register */
66*d83cc019SAndroid Build Coastguard Worker printf("vec%d", hwreg.nr);
67*d83cc019SAndroid Build Coastguard Worker }
68*d83cc019SAndroid Build Coastguard Worker else if (hwreg.file == BRW_GENERAL_REGISTER_FILE &&
69*d83cc019SAndroid Build Coastguard Worker hwreg.vstride == BRW_VERTICAL_STRIDE_0 &&
70*d83cc019SAndroid Build Coastguard Worker hwreg.width == BRW_WIDTH_1 &&
71*d83cc019SAndroid Build Coastguard Worker hwreg.hstride == BRW_HORIZONTAL_STRIDE_0 &&
72*d83cc019SAndroid Build Coastguard Worker hwreg.type == BRW_REGISTER_TYPE_F) {
73*d83cc019SAndroid Build Coastguard Worker /* "scalar" register */
74*d83cc019SAndroid Build Coastguard Worker printf("scl%d.%d", hwreg.nr, hwreg.subnr / 4);
75*d83cc019SAndroid Build Coastguard Worker }
76*d83cc019SAndroid Build Coastguard Worker else if (hwreg.file == BRW_IMMEDIATE_VALUE) {
77*d83cc019SAndroid Build Coastguard Worker printf("imm %f", hwreg.dw1.f);
78*d83cc019SAndroid Build Coastguard Worker }
79*d83cc019SAndroid Build Coastguard Worker else {
80*d83cc019SAndroid Build Coastguard Worker printf("%s%d.%d<%d;%d,%d>:%s",
81*d83cc019SAndroid Build Coastguard Worker file[hwreg.file],
82*d83cc019SAndroid Build Coastguard Worker hwreg.nr,
83*d83cc019SAndroid Build Coastguard Worker hwreg.subnr / type_sz(hwreg.type),
84*d83cc019SAndroid Build Coastguard Worker hwreg.vstride ? (1<<(hwreg.vstride-1)) : 0,
85*d83cc019SAndroid Build Coastguard Worker 1<<hwreg.width,
86*d83cc019SAndroid Build Coastguard Worker hwreg.hstride ? (1<<(hwreg.hstride-1)) : 0,
87*d83cc019SAndroid Build Coastguard Worker type[hwreg.type]);
88*d83cc019SAndroid Build Coastguard Worker }
89*d83cc019SAndroid Build Coastguard Worker }
90*d83cc019SAndroid Build Coastguard Worker
91*d83cc019SAndroid Build Coastguard Worker
92*d83cc019SAndroid Build Coastguard Worker
93