On 4/13/25 10:50 PM, Keith Packard wrote:
pattern using rx_cmpstrn is cmpstrsi for which len is a constant -1,
so we'll be moving the setpsw instructions from rx_cmpstrn to
cmpstrnsi as follows:

  1. Adjust the predicate on the length operand from "register_operand"
     to "nonmemory_operand". This will allow constants to appear here,
     instead of having them already transferred into a register.

  2. Check to see if the len value is constant, and then check if it is
     actually zero. In that case, short-circuit the rest of the pattern
     and set the result register to 0.

  3. Emit 'setpsw c' and 'setpsw z' instructions when the len is not a
     constant, in case it turns out to be zero at runtime.

  4. Remove the two 'setpsw' instructions from rx_cmpstrn.
Thanks. I made some minor stylistic adjustments and pushed the change to the trunk. Thanks!

jeff

Reply via email to