projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
freedreno/ir3: remove restrictions on const + (abs)/(neg)
[mesa.git]
/
src
/
freedreno
/
ir3
/
ir3.c
diff --git
a/src/freedreno/ir3/ir3.c
b/src/freedreno/ir3/ir3.c
index aaf33bc6de208d9aba518ac8f67a3225a6df35c3..b137ee1a695a2a7cf90e3ba6f2a207cda8f55f9b 100644
(file)
--- a/
src/freedreno/ir3/ir3.c
+++ b/
src/freedreno/ir3/ir3.c
@@
-235,7
+235,8
@@
static int emit_cat2(struct ir3_instruction *instr, void *ptr,
} else if (src1->flags & IR3_REG_CONST) {
iassert(src1->num < (1 << 12));
cat2->c1.src1 = reg(src1, info, instr->repeat,
} else if (src1->flags & IR3_REG_CONST) {
iassert(src1->num < (1 << 12));
cat2->c1.src1 = reg(src1, info, instr->repeat,
- IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF);
+ IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF |
+ absneg);
cat2->c1.src1_c = 1;
} else {
iassert(src1->num < (1 << 11));
cat2->c1.src1_c = 1;
} else {
iassert(src1->num < (1 << 11));
@@
-261,7
+262,8
@@
static int emit_cat2(struct ir3_instruction *instr, void *ptr,
} else if (src2->flags & IR3_REG_CONST) {
iassert(src2->num < (1 << 12));
cat2->c2.src2 = reg(src2, info, instr->repeat,
} else if (src2->flags & IR3_REG_CONST) {
iassert(src2->num < (1 << 12));
cat2->c2.src2 = reg(src2, info, instr->repeat,
- IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF);
+ IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF |
+ absneg);
cat2->c2.src2_c = 1;
} else {
iassert(src2->num < (1 << 11));
cat2->c2.src2_c = 1;
} else {
iassert(src2->num < (1 << 11));
@@
-345,7
+347,7
@@
static int emit_cat3(struct ir3_instruction *instr, void *ptr,
} else if (src1->flags & IR3_REG_CONST) {
iassert(src1->num < (1 << 12));
cat3->c1.src1 = reg(src1, info, instr->repeat,
} else if (src1->flags & IR3_REG_CONST) {
iassert(src1->num < (1 << 12));
cat3->c1.src1 = reg(src1, info, instr->repeat,
- IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF);
+ IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF
| absneg
);
cat3->c1.src1_c = 1;
} else {
iassert(src1->num < (1 << 11));
cat3->c1.src1_c = 1;
} else {
iassert(src1->num < (1 << 11));
@@
-370,7
+372,7
@@
static int emit_cat3(struct ir3_instruction *instr, void *ptr,
} else if (src3->flags & IR3_REG_CONST) {
iassert(src3->num < (1 << 12));
cat3->c2.src3 = reg(src3, info, instr->repeat,
} else if (src3->flags & IR3_REG_CONST) {
iassert(src3->num < (1 << 12));
cat3->c2.src3 = reg(src3, info, instr->repeat,
- IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF);
+ IR3_REG_CONST | IR3_REG_R | IR3_REG_HALF
| absneg
);
cat3->c2.src3_c = 1;
} else {
iassert(src3->num < (1 << 11));
cat3->c2.src3_c = 1;
} else {
iassert(src3->num < (1 << 11));