[Coco] Optimizing 6809 Assembly Code: Part 2 – Speedup Storing Data – Unrolling Loops
    Darren A 
    mechacoco at gmail.com
       
    Sat Sep 16 01:17:09 EDT 2017
    
    
  
On Fri, Sep 15, 2017 at 8:44 PM, Glen Hewlett wrote:
> Hi Again,
>
> I just posted Part 2 of my series of blogs about optimizing 6809 assembly
> language programs.
>
> https://nowhereman999.wordpress.com/2017/09/15/
> optimizing-6809-assembly-code-part-2-speedup-storing-data-unrolling-loops/
> <https://nowhereman999.wordpress.com/2017/09/15/
> optimizing-6809-assembly-code-part-2-speedup-storing-data-unrolling-loops/
> >
>
>
In your first unrolled loop example, you could have saved a fair amount of
time by not using the auto-increment index mode.  You only need to
increment X once per loop using ABX.  The ,X++ adds 3 cycles to the base
count.  Using 5-bit displacements (-16 to +14) keeps the code size small
and only adds 1 cycle to the base count. You will also have one occurrence
of ,X which adds nothing.
    LDX    #$4000+16
    LDU    #$0000
    LDD    #$0020
!   STU    -16,X
    STU    -14,X
    STU    -12,X
    STU    -10,X
    STU    -8,X
    STU    -6,X
    STU    -4,X
    STU    -2,X
    STU    ,X
    STU    2,X
    STU    4,X
    STU    6,X
    STU    8,X
    STU    10,X
    STU    12,X
    STU    14,X
    ABX
    DECA
    BNE    <
- Darren
    
    
More information about the Coco
mailing list