mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 12:08:06 +02:00
Revert "i965: Move brw_land_fwd_jump() to compilation unit of its use."
This reverts commit f3cb2e6ed7.
brw_land_fwd_jump() is convenient wherever we produce JMPI instructions
and we will use JMPI to implement framebuffer writes that involve line
antialiasing in gen < 6.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
220e208329
commit
8873120f9f
3 changed files with 21 additions and 16 deletions
|
|
@ -340,6 +340,10 @@ struct brw_instruction *brw_CONT(struct brw_compile *p);
|
|||
struct brw_instruction *gen6_CONT(struct brw_compile *p);
|
||||
struct brw_instruction *gen6_HALT(struct brw_compile *p);
|
||||
|
||||
/* Forward jumps:
|
||||
*/
|
||||
void brw_land_fwd_jump(struct brw_compile *p, int jmp_insn_idx);
|
||||
|
||||
struct brw_instruction *brw_JMPI(struct brw_compile *p, struct brw_reg index,
|
||||
unsigned predicate_control);
|
||||
|
||||
|
|
|
|||
|
|
@ -1758,6 +1758,23 @@ struct brw_instruction *brw_WHILE(struct brw_compile *p)
|
|||
return insn;
|
||||
}
|
||||
|
||||
/* FORWARD JUMPS:
|
||||
*/
|
||||
void brw_land_fwd_jump(struct brw_compile *p, int jmp_insn_idx)
|
||||
{
|
||||
struct brw_context *brw = p->brw;
|
||||
struct brw_instruction *jmp_insn = &p->store[jmp_insn_idx];
|
||||
unsigned jmpi = 1;
|
||||
|
||||
if (brw->gen >= 5)
|
||||
jmpi = 2;
|
||||
|
||||
assert(jmp_insn->header.opcode == BRW_OPCODE_JMPI);
|
||||
assert(jmp_insn->bits1.da1.src1_reg_file == BRW_IMMEDIATE_VALUE);
|
||||
|
||||
jmp_insn->bits3.ud = jmpi * (p->nr_insn - jmp_insn_idx - 1);
|
||||
}
|
||||
|
||||
/* To integrate with the above, it makes sense that the comparison
|
||||
* instruction should populate the flag register. It might be simpler
|
||||
* just to use the flag reg for most WM tasks?
|
||||
|
|
|
|||
|
|
@ -729,22 +729,6 @@ void brw_emit_point_setup(struct brw_sf_compile *c, bool allocate)
|
|||
brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
|
||||
}
|
||||
|
||||
static void
|
||||
brw_land_fwd_jump(struct brw_compile *p, int jmp_insn_idx)
|
||||
{
|
||||
struct brw_context *brw = p->brw;
|
||||
struct brw_instruction *jmp_insn = &p->store[jmp_insn_idx];
|
||||
unsigned jmpi = 1;
|
||||
|
||||
if (brw->gen >= 5)
|
||||
jmpi = 2;
|
||||
|
||||
assert(jmp_insn->header.opcode == BRW_OPCODE_JMPI);
|
||||
assert(jmp_insn->bits1.da1.src1_reg_file == BRW_IMMEDIATE_VALUE);
|
||||
|
||||
jmp_insn->bits3.ud = jmpi * (p->nr_insn - jmp_insn_idx - 1);
|
||||
}
|
||||
|
||||
void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
||||
{
|
||||
struct brw_compile *p = &c->func;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue