Defendit numerus
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.
|