summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuo Yejun <yejun.guo@intel.com>2015-05-04 16:47:21 +0800
committerZhigang Gong <zhigang.gong@intel.com>2015-05-19 11:55:00 +0800
commit0b10bc0dbd201b892299b897ef5038dc3c52c724 (patch)
tree7e00ac334346d03070f3a2d591bbaa1d79135ec3
parentae59e9fd4d2777eb5a2990060d70870597f7ce05 (diff)
correct the src output of alu3 when OCL_OUTPUT_ASM=1
Signed-off-by: Guo Yejun <yejun.guo@intel.com> Reviewed-by: "Song, Ruiling" <ruiling.song@intel.com>
-rw-r--r--backend/src/backend/gen/gen_mesa_disasm.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/backend/src/backend/gen/gen_mesa_disasm.c b/backend/src/backend/gen/gen_mesa_disasm.c
index 4822de38..2615276c 100644
--- a/backend/src/backend/gen/gen_mesa_disasm.c
+++ b/backend/src/backend/gen/gen_mesa_disasm.c
@@ -844,7 +844,10 @@ static int src0_3src(FILE *file, const void* inst)
return 0;
if (GEN_BITS_FIELD(inst, bits2.da3src.src0_subreg_nr))
format(file, ".%d", GEN_BITS_FIELD(inst, bits2.da3src.src0_subreg_nr));
- string(file, "<4,1,1>");
+ if (GEN_BITS_FIELD(inst, bits2.da3src.src0_rep_ctrl))
+ string(file, "<0,1,0>");
+ else
+ string(file, "<8,8,1>");
err |= control(file, "src da16 reg type", reg_encoding,
GEN_TYPE_F, NULL);
/*
@@ -889,7 +892,10 @@ static int src1_3src(FILE *file, const void* inst)
return 0;
if (src1_subreg_nr)
format(file, ".%d", src1_subreg_nr);
- string(file, "<4,1,1>");
+ if (GEN_BITS_FIELD(inst, bits2.da3src.src1_rep_ctrl))
+ string(file, "<0,1,0>");
+ else
+ string(file, "<8,8,1>");
err |= control(file, "src da16 reg type", reg_encoding,
GEN_TYPE_F, NULL);
/*
@@ -931,7 +937,10 @@ static int src2_3src(FILE *file, const void* inst)
return 0;
if (GEN_BITS_FIELD(inst, bits3.da3src.src2_subreg_nr))
format(file, ".%d", GEN_BITS_FIELD(inst, bits3.da3src.src2_subreg_nr));
- string(file, "<4,1,1>");
+ if (GEN_BITS_FIELD(inst, bits3.da3src.src2_rep_ctrl))
+ string(file, "<0,1,0>");
+ else
+ string(file, "<8,8,1>");
err |= control(file, "src da16 reg type", reg_encoding,
GEN_TYPE_F, NULL);
/*