Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > fastest or smallest 'switch' statment
2015-09-05 15:02
mhindsbo

Registered: Dec 2014
Posts: 51
fastest or smallest 'switch' statment

I use the following code a lot to switch between two values and was wondering what others do and if there is a faster, smaller or simply more elegant way someone has come up with.
      lda #value1    ; default value: AR = value1
      ldy switch     ; get value of switch in YR 
      cpy #case1     ; compare switch 
      beq @cont
      lda #value2    ; if switch != #case1 then AR = value2

@cont ...            ; AR = value1/value2 depending on switch
 
... 20 posts hidden. Click here to view all posts....
 
2015-09-12 10:58
lft

Registered: Jul 2007
Posts: 369
Or, you know, don't use addition in the first place.

; accumulator is either 00 or ff
and #value2 ^ value1
eor #value1
2015-09-12 11:09
soci

Registered: Sep 2003
Posts: 480
BB/Fred: Ok, great. As mentioned earlier there are no pipeline stalls to avoid here, and that switching construct is suboptimal in every way.

What's next, how to avoid cache line bouncing on large multi processor 6502 systems? Various synchronization primitives for my threaded code? Pre-fetching? How to optimize unaligned access? Use of barriers for memory mapped I/O?
2015-09-12 11:27
Bitbreaker

Registered: Oct 2002
Posts: 508
Sure, but optimising is fun :-D
2015-09-12 11:39
soci

Registered: Sep 2003
Posts: 480
Yes, no problem with that. But it seemed quite a bit pointless, and then it was pushed even further ;)
Previous - 1 | 2 | 3 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
pcollins/Quantum
Magic/Nah-Kolor
Didi/Laxity
LordCrass
Guests online: 71
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.7)
4 Acidchild  (9.7)
5 Cash  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.04 sec.