diff options
author | Jerome Laheurte <jlaheurte@quividi.com> | 2014-12-03 11:03:52 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-12-03 11:28:24 +0100 |
commit | 1291f79b81cf212ff14e7caaa29f6742e76f6c5e (patch) | |
tree | f4564ab78fe656fd5718d25087f425b9a768e5af | |
parent | acdaac31c648fd10f1bd0a49c4c33b483bb9c35c (diff) |
Fix high-order bit of first register in VPUSH/VPOP generation
-rw-r--r-- | orc/orcarm.c | 4 |
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) { |