• Robert Sprowson's avatar
    [507] Fix translucent plots of 32k/64k source into 16M · 1860ff95
    Robert Sprowson authored
    The combining shifts for
      4k source are  0/4/8   <-- all even, OK
      32k source are 0/5/10
      64k source are 0/5/11
    When the destination is a 16M colour mode (ie. full 8bpp mask) this results in an attempt to generate an odd shift of &FF which can't be encoded in a 12b immediate. The code generator asserts ("ror < 32") and thus no plot is produced.
    
    Spot this case and stick in an extra LSL by 1 to ensure the mask can be represented, then compensate with an extra right shift during the combining ORR.
    
    Version 1.85. Tagged as 'SprExtend-1_85'
    1860ff95
VersionASM 849 Bytes