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-15 10:43:36 +0800
commit5c5e4456eff7ee4de5d6bbd09be4698b5893872b (patch)
tree948ca60bdc5e83269464363d622c1d9650734032
parentd8ecbcd53a6a1bd317ddba2b93efb55ae3c4b9bd (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 f8d89e06..705f5e25 100644
--- a/backend/src/backend/gen/gen_mesa_disasm.c
+++ b/backend/src/backend/gen/gen_mesa_disasm.c
@@ -831,7 +831,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);
/*
@@ -876,7 +879,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);
/*
@@ -918,7 +924,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);
/*