mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-09 08:56:11 +00:00
assembler: Finish importing brw_eu_*c from mesa
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
parent
fa2b679cc9
commit
45d87d7f0b
@ -13,7 +13,9 @@ libbrw_la_SOURCES = \
|
|||||||
brw_eu.h \
|
brw_eu.h \
|
||||||
brw_eu.c \
|
brw_eu.c \
|
||||||
brw_eu_compact.c \
|
brw_eu_compact.c \
|
||||||
|
brw_eu_debug.c \
|
||||||
brw_eu_emit.c \
|
brw_eu_emit.c \
|
||||||
|
brw_eu_util.c \
|
||||||
brw_reg.h \
|
brw_reg.h \
|
||||||
brw_structs.h \
|
brw_structs.h \
|
||||||
ralloc.c \
|
ralloc.c \
|
||||||
|
92
assembler/brw_eu_debug.c
Normal file
92
assembler/brw_eu_debug.c
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
Copyright (C) Intel Corp. 2006. All Rights Reserved.
|
||||||
|
Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to
|
||||||
|
develop this 3D driver.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice (including the
|
||||||
|
next paragraph) shall be included in all copies or substantial
|
||||||
|
portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
/*
|
||||||
|
* Authors:
|
||||||
|
* Keith Whitwell <keith@tungstengraphics.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "brw_eu.h"
|
||||||
|
|
||||||
|
void brw_print_reg( struct brw_reg hwreg )
|
||||||
|
{
|
||||||
|
static const char *file[] = {
|
||||||
|
"arf",
|
||||||
|
"grf",
|
||||||
|
"msg",
|
||||||
|
"imm"
|
||||||
|
};
|
||||||
|
|
||||||
|
static const char *type[] = {
|
||||||
|
"ud",
|
||||||
|
"d",
|
||||||
|
"uw",
|
||||||
|
"w",
|
||||||
|
"ub",
|
||||||
|
"vf",
|
||||||
|
"hf",
|
||||||
|
"f"
|
||||||
|
};
|
||||||
|
|
||||||
|
printf("%s%s",
|
||||||
|
hwreg.abs ? "abs/" : "",
|
||||||
|
hwreg.negate ? "-" : "");
|
||||||
|
|
||||||
|
if (hwreg.file == BRW_GENERAL_REGISTER_FILE &&
|
||||||
|
hwreg.nr % 2 == 0 &&
|
||||||
|
hwreg.subnr == 0 &&
|
||||||
|
hwreg.vstride == BRW_VERTICAL_STRIDE_8 &&
|
||||||
|
hwreg.width == BRW_WIDTH_8 &&
|
||||||
|
hwreg.hstride == BRW_HORIZONTAL_STRIDE_1 &&
|
||||||
|
hwreg.type == BRW_REGISTER_TYPE_F) {
|
||||||
|
/* vector register */
|
||||||
|
printf("vec%d", hwreg.nr);
|
||||||
|
}
|
||||||
|
else if (hwreg.file == BRW_GENERAL_REGISTER_FILE &&
|
||||||
|
hwreg.vstride == BRW_VERTICAL_STRIDE_0 &&
|
||||||
|
hwreg.width == BRW_WIDTH_1 &&
|
||||||
|
hwreg.hstride == BRW_HORIZONTAL_STRIDE_0 &&
|
||||||
|
hwreg.type == BRW_REGISTER_TYPE_F) {
|
||||||
|
/* "scalar" register */
|
||||||
|
printf("scl%d.%d", hwreg.nr, hwreg.subnr / 4);
|
||||||
|
}
|
||||||
|
else if (hwreg.file == BRW_IMMEDIATE_VALUE) {
|
||||||
|
printf("imm %f", hwreg.dw1.f);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("%s%d.%d<%d;%d,%d>:%s",
|
||||||
|
file[hwreg.file],
|
||||||
|
hwreg.nr,
|
||||||
|
hwreg.subnr / type_sz(hwreg.type),
|
||||||
|
hwreg.vstride ? (1<<(hwreg.vstride-1)) : 0,
|
||||||
|
1<<hwreg.width,
|
||||||
|
hwreg.hstride ? (1<<(hwreg.hstride-1)) : 0,
|
||||||
|
type[hwreg.type]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
125
assembler/brw_eu_util.c
Normal file
125
assembler/brw_eu_util.c
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
/*
|
||||||
|
Copyright (C) Intel Corp. 2006. All Rights Reserved.
|
||||||
|
Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to
|
||||||
|
develop this 3D driver.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice (including the
|
||||||
|
next paragraph) shall be included in all copies or substantial
|
||||||
|
portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
/*
|
||||||
|
* Authors:
|
||||||
|
* Keith Whitwell <keith@tungstengraphics.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "brw_context.h"
|
||||||
|
#include "brw_defines.h"
|
||||||
|
#include "brw_eu.h"
|
||||||
|
|
||||||
|
|
||||||
|
void brw_math_invert( struct brw_compile *p,
|
||||||
|
struct brw_reg dst,
|
||||||
|
struct brw_reg src)
|
||||||
|
{
|
||||||
|
brw_math( p,
|
||||||
|
dst,
|
||||||
|
BRW_MATH_FUNCTION_INV,
|
||||||
|
0,
|
||||||
|
src,
|
||||||
|
BRW_MATH_PRECISION_FULL,
|
||||||
|
BRW_MATH_DATA_VECTOR );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void brw_copy4(struct brw_compile *p,
|
||||||
|
struct brw_reg dst,
|
||||||
|
struct brw_reg src,
|
||||||
|
GLuint count)
|
||||||
|
{
|
||||||
|
GLuint i;
|
||||||
|
|
||||||
|
dst = vec4(dst);
|
||||||
|
src = vec4(src);
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
GLuint delta = i*32;
|
||||||
|
brw_MOV(p, byte_offset(dst, delta), byte_offset(src, delta));
|
||||||
|
brw_MOV(p, byte_offset(dst, delta+16), byte_offset(src, delta+16));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void brw_copy8(struct brw_compile *p,
|
||||||
|
struct brw_reg dst,
|
||||||
|
struct brw_reg src,
|
||||||
|
GLuint count)
|
||||||
|
{
|
||||||
|
GLuint i;
|
||||||
|
|
||||||
|
dst = vec8(dst);
|
||||||
|
src = vec8(src);
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
GLuint delta = i*32;
|
||||||
|
brw_MOV(p, byte_offset(dst, delta), byte_offset(src, delta));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void brw_copy_indirect_to_indirect(struct brw_compile *p,
|
||||||
|
struct brw_indirect dst_ptr,
|
||||||
|
struct brw_indirect src_ptr,
|
||||||
|
GLuint count)
|
||||||
|
{
|
||||||
|
GLuint i;
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
GLuint delta = i*32;
|
||||||
|
brw_MOV(p, deref_4f(dst_ptr, delta), deref_4f(src_ptr, delta));
|
||||||
|
brw_MOV(p, deref_4f(dst_ptr, delta+16), deref_4f(src_ptr, delta+16));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void brw_copy_from_indirect(struct brw_compile *p,
|
||||||
|
struct brw_reg dst,
|
||||||
|
struct brw_indirect ptr,
|
||||||
|
GLuint count)
|
||||||
|
{
|
||||||
|
GLuint i;
|
||||||
|
|
||||||
|
dst = vec4(dst);
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
GLuint delta = i*32;
|
||||||
|
brw_MOV(p, byte_offset(dst, delta), deref_4f(ptr, delta));
|
||||||
|
brw_MOV(p, byte_offset(dst, delta+16), deref_4f(ptr, delta+16));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user