> Am 09.01.2022 um 15:08 schrieb J. Gareth Moreton via fpc-devel > <fpc-devel@lists.freepascal.org>: > > On 09/01/2022 12:35, Florian Klämpfl via fpc-devel wrote: >>> It removes a jump and a label, which might permit other long-range >>> optimisations, but it's 3 instructions that are in a dependency chain. >> >> Didn't you implement something which transformed the code above in >> >> xorl %ebx,%ebx >> cmpl $1,%ecx >> setg %bl >> subl %ebx,%ecx >> >> ? > > I believe I did, yes. I'll have to double-check if the "jcc -> setcc" > optimisation is actually mine or if I just adapted it to use > GetIntRegisterBetween. That's certainly the better sequence because XOR is a > smaller instruction (2 bytes, I believe) and it breaks the dependency chain, > since it can execute at the same time as the CMP instruction. > > Either way, it's not being performed here, so that's another optimisation to > add to my ever-growing list! Yes, I've got a new optimisation ready to merge > request soon - I'm running my local tests as we speak. I need to discipline > myself a bit and try to fix the bug on 3.2.4's i386-linux implementation.
Yes, this is always why I am behind with the merge request, we have to finish 3.2.4. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel