qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Aarch64 MLS bug
@ 2014-03-24  9:56 Laurent Desnogues
  0 siblings, 0 replies; only message in thread
From: Laurent Desnogues @ 2014-03-24  9:56 UTC (permalink / raw)
  To: qemu-devel@nongnu.org, Peter Maydell

Hello,

the code that implements Aarch64 AdvSIMD MLS instruction looks like this:

            if (opcode == 0xf || opcode == 0x12) {
                /* SABA, UABA, MLA, MLS: accumulating ops */
                static NeonGenTwoOpFn * const fns[3][2] = {
                    { gen_helper_neon_add_u8, gen_helper_neon_sub_u8 },
                    { gen_helper_neon_add_u16, gen_helper_neon_sub_u16 },
                    { tcg_gen_add_i32, tcg_gen_sub_i32 },
                };
                bool is_sub = (opcode == 0x12 && u); /* MLS */

                genfn = fns[size][is_sub];
                read_vec_element_i32(s, tcg_op1, rd, pass, MO_32);
                genfn(tcg_res, tcg_res, tcg_op1);
            }

The genfn call has tcg_op1 and the second tcg_res swapped.

Thanks,

Laurent

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-03-24  9:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-24  9:56 [Qemu-devel] Aarch64 MLS bug Laurent Desnogues

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).