mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +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.c		\
 | 
			
		||||
	brw_eu_compact.c	\
 | 
			
		||||
	brw_eu_debug.c		\
 | 
			
		||||
	brw_eu_emit.c		\
 | 
			
		||||
	brw_eu_util.c		\
 | 
			
		||||
	brw_reg.h		\
 | 
			
		||||
	brw_structs.h		\
 | 
			
		||||
	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