Hi all!

 

I found a regression in target-arm, specifically the QADD instruction. Seems to be a simple typo, but sadly quite hard to track down.

I have verified the patch against a real ARM v5 CPU.

 

Btw. Could someone also tell me why op_addsub.h and the NEON extension is licensed under GPL? Is it some kind of agreement with ARM or something else? The reason for asking is that the QEMU license file states that libqemu.a is released under LGPL, but some files under target-arm voids this. The answer doesn’t need to long but please longer than single “because” J

 

Further, would an LGPL compatible replacement of op_addsub.h be accepted and replace the current implementation?

 

Finally, I hope this patch is warmly welcomed in the target-arm camp!

 

/Torbjörn

 

Index: target-arm/translate.c

===================================================================

--- target-arm/translate.c       (revision 5234)

+++ target-arm/translate.c    (working copy)

@@ -5946,7 +5946,7 @@

         case 0x5: /* saturating add/subtract */

             rd = (insn >> 12) & 0xf;

             rn = (insn >> 16) & 0xf;

-            tmp = load_reg(s, rn);

+            tmp = load_reg(s, rm);

             tmp2 = load_reg(s, rn);

             if (op1 & 2)

                 gen_helper_double_saturate(tmp2, tmp2);