Il 11/04/2014 07:05, Richard Sandiford ha scritto:
Sure, but this is a bit extreme.  I don't see off-hand how a[i]
would generate a branch, for starters.

That's an HI+HI->SI addition, with the higher half stored in (SP+2). The jump is emitted by cstore in order to compute the carry.

        add     WA, IX
        ...
        ld      HL, 1
        ld      (SP+2), HL
        cmp     WA,IX
        j       lt,_.L2
        ld      DE, 0
        ld      (SP+2), DE
.L2:

I'm not sure why such an addition would be necessary, but in any case the port is probably lacking a cstoresi4 pattern (you can use a predicate for operand 2 that only matches LTU).

Paolo

Reply via email to