View Single Post
Old 09 December 2019, 00:38   #6
ross
Defendit numerus
 
ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,483
A simple trick to make it much faster on bare 68k:

Code:
    move.w  #%1010110011010101,d0
    move.w  d0,d1
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    swap    d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    add.w   d0,d0
    addx.w  d2,d2
    add.w   d1,d1
    addx.w  d2,d2
    rts
mcgeezer routine: 678 cycles*
my previous one: 396 cycles
this: 272 cycles**

*of course only for this number of 1 bits
**occhio allo swap

Last edited by ross; 09 December 2019 at 00:50.
ross is offline  
 
Page generated in 0.05542 seconds with 11 queries