summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2014-09-18 14:19:06 +0200
committerWim Taymans <wtaymans@redhat.com>2014-09-18 14:19:06 +0200
commit6e418c2138d53fe1c164ef7a5d7d8b036f10981f (patch)
treee6fe5c6aa1df1417db51b62cafaef859a4a5ac2d
parentf6697e30681f46f6f3f632ddbbcab98107eec7e0 (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.c16
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);
}
}
}