On 27-6-2022 04:43, J. Gareth Moreton via fpc-devel wrote:
Hi everyone,

I'm playing around with a peephole optimization (back to my roots!) and I've come across a relatively simple one that aims to reduce instruction size occasionally.  One part involves reducing the opsize if the constant is numeric.  For example:

testl    $17,76(%rcx) -> testb $17,76(%rcx)

Or:

testl    $1,%ebx -> testb    $1,%bl

Obviously I check to make sure the constant fits into the smaller size. Is there a time when this is NOT recommended?  I'm trying to remember issues with partial register or memory writes, but in this case, it's just a partial read.

It's not only the constant size which has to fit, but also the other operand. So you cannot use it for testing an integer for the value of 1

Marc
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to