diff options
author | Wim Taymans <wtaymans@redhat.com> | 2014-09-18 14:19:06 +0200 |
---|---|---|
committer | Wim Taymans <wtaymans@redhat.com> | 2014-09-18 14:19:06 +0200 |
commit | 6e418c2138d53fe1c164ef7a5d7d8b036f10981f (patch) | |
tree | e6fe5c6aa1df1417db51b62cafaef859a4a5ac2d | |
parent | f6697e30681f46f6f3f632ddbbcab98107eec7e0 (diff) |
program-c: handle X2 and X4 with size < 2 variables
when the variable has a size < 2 it will have been declared as a simple
int8 or int16, when we use this in a X2 or X4 instruction, use the
variable directly instead of trying to use the x fields.
-rw-r--r-- | orc/orcprogram-c.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/orc/orcprogram-c.c b/orc/orcprogram-c.c index 02b5aa8..bff075a 100644 --- a/orc/orcprogram-c.c +++ b/orc/orcprogram-c.c @@ -503,16 +503,16 @@ c_get_name_int (char *name, OrcCompiler *p, OrcInstruction *insn, int var) } } } else { - if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X2)) { - sprintf(name, "var%d.x2[%d]", var, p->unroll_index); - } else if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X4)) { - sprintf(name, "var%d.x4[%d]", var, p->unroll_index); - } else { - if (p->vars[var].size >= 2) { - sprintf(name, "var%d.i", var); + if (p->vars[var].size >= 2) { + if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X2)) { + sprintf(name, "var%d.x2[%d]", var, p->unroll_index); + } else if (insn && (insn->flags & ORC_INSTRUCTION_FLAG_X4)) { + sprintf(name, "var%d.x4[%d]", var, p->unroll_index); } else { - sprintf(name, "var%d", var); + sprintf(name, "var%d.i", var); } + } else { + sprintf(name, "var%d", var); } } } |