On Fri, Jan 18, 2013 at 12:18:20AM +0000, Thorsten Glaser wrote:
> Bill Allombert dixit:
> 
> >To start with, could you retry the build with DEB_BUILD_OPTIONS=noopt ?
> 
> Builds fine. I can upload that, if it helps.

I think I found the problem:

the fonction convi in src/kernel/gmp/mp.c is miscompiled.
Precisely the line
  lz  = (8+llz)/9;
set lz to a wrong value: llz=29 and we get back lz=477218590.

The generated code is
        .loc 2 1298 0
        move.l %d2,%d7
        addq.l #8,%d7
        move.l %d7,%d3
.LVL2132:
        muls.l #954437177,%d3:%d3
        asr.l #1,%d3
        add.l %d7,%d7
        subx.l %d7,%d7
        sub.l %d7,%d3

As far as I understand 68k asm, muls.l #954437177,%d3:%d3 is not valid:
it is using twice the same register. See <http://68k.hax.com/MULS>
"If Dh = Dl and Size is one, the results of the operation are undefined."

Cheers,
Bill.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to