Hi, On Mon, 22 May 2017, Nikolay Nikolov wrote:
> Today, I checked whether we can take advantage of this optimization for > floats, but I didn't see any load-modify-store instructions in the x86 > instruction set (neither x87, nor SSE/AVX). Are there any floating point > instructions on any architecture, that we support, that does > load-modify-store (i.e. modify-in-place) of a memory operand? No, but wouldn't it also cover cases like: move.l d1,d0 op.l d2,d0 move.l d0,d1 to op.l d2,d1 I'm pretty sure it "fixed" a lot of those for m68k. This doesn't contain memory ops, still, the difference is significant both in code size and performance. (Of course on the other hand it might not be ideal for CPUs with 3 operants, if one of the source and the target is the same, but that's a different case...) Charlie _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal