On 28/12/2021 23:18, Noel Duffy via lazarus wrote:

The assembler produced by 3.2.2 looks like this:

# [43] Result += (pn8^ shr 7) and ((not pn8^) shr 6);
    ldr    x0,[sp]
    ldrsb    w0,[x0]
    mvn    w0,w0

mvn => bitwise not. And that applies to the whole register.

So I guess "eor    w0,w0,#255 " is meant to be some optimization, but comes with a bug.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to