11c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 21c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 31c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#ifndef RADEON_EMULATE_LOOPS_H 41c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#define RADEON_EMULATE_LOOPS_H 51c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 61c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#define MAX_ITERATIONS 8 71c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 81c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákstruct radeon_compiler; 91c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 101c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákstruct loop_info { 111c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct rc_instruction * BeginLoop; 121c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct rc_instruction * Cond; 131c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct rc_instruction * If; 141c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct rc_instruction * Brk; 151c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct rc_instruction * EndIf; 161c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct rc_instruction * EndLoop; 171c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák}; 181c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 191c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákstruct emulate_loop_state { 201c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct radeon_compiler * C; 211c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák struct loop_info * Loops; 221c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák unsigned int LoopCount; 231c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák unsigned int LoopReserved; 241c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák}; 251c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 261c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákvoid rc_transform_loops(struct radeon_compiler *c, void *user); 271c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 281c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákvoid rc_unroll_loops(struct radeon_compiler * c, void *user); 291c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 301c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšákvoid rc_emulate_loops(struct radeon_compiler * c, void *user); 311c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák 321c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6Marek Olšák#endif /* RADEON_EMULATE_LOOPS_H */ 33