summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Laheurte <jlaheurte@quividi.com>2014-12-03 11:03:52 +0100
committerSebastian Dröge <sebastian@centricular.com>2014-12-03 11:28:24 +0100
commit1291f79b81cf212ff14e7caaa29f6742e76f6c5e (patch)
treef4564ab78fe656fd5718d25087f425b9a768e5af
parentacdaac31c648fd10f1bd0a49c4c33b483bb9c35c (diff)
Fix high-order bit of first register in VPUSH/VPOP generation
CID 1256553 CID 1256554 https://bugzilla.gnome.org/show_bug.cgi?id=727464
-rw-r--r--orc/orcarm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/orc/orcarm.c b/orc/orcarm.c
index 065fab4..fb29c16 100644
--- a/orc/orcarm.c
+++ b/orc/orcarm.c
@@ -118,7 +118,7 @@ orc_arm_emit_push (OrcCompiler *compiler, int regs, orc_uint32 vregs)
ORC_ASM_CODE(compiler, "-d%d}\n", last+1);
nregs = last + 1 - first + 1;
- orc_arm_emit (compiler, 0xed2d0b00 | ((first & 0x10) << 22) | ((first & 0x0f) << 12) | (nregs << 1));
+ orc_arm_emit (compiler, 0xed2d0b00 | (((first & 0x10) >> 4) << 22) | ((first & 0x0f) << 12) | (nregs << 1));
}
}
@@ -144,7 +144,7 @@ orc_arm_emit_pop (OrcCompiler *compiler, int regs, orc_uint32 vregs)
ORC_ASM_CODE(compiler, "-d%d}\n", last+1);
nregs = last + 1 - first + 1;
- orc_arm_emit (compiler, 0xecbd0b00 | ((first & 0x10) << 22) | ((first & 0x0f) << 12) | (nregs << 1));
+ orc_arm_emit (compiler, 0xecbd0b00 | (((first & 0x10) >> 4) << 22) | ((first & 0x0f) << 12) | (nregs << 1));
}
if (regs) {