4 ms·
Oh I think I get it, thanks (although I still don't understand what "threaded" means in this context). The only downside I can see is that you'd significantly
by simias 11y ago
Oh I think I get it, thanks (although I still don't understand what "threaded" means in this context).
The only downside I can see is that you'd significantly increase the size of the code. On a 64bit architecture you trade each byte for a 64bit address, effectively multiplying by eight the footprint in the data cache. A 256 entry LUT on the other hand will fit snugly in cache and the lookup shouldn't be very costly.
Also if I understood you correctly what you're proposing doesn't have much to do with the "computed gotos" extension.
- sklogic 11y ago> I still don't understand what "threaded" means in this context https://en.wikipedia.org/wiki/Threaded_code#Indirect_threading https://en.wikipedia.org/wiki/Threaded_code#Indirect_threadi... > The only downside I can see is that you'd significantly increase the size of the code This is why adding the jumptbl_base on 64-bit platforms. Pointers are still 32-bit, just with an added offset (and a tiny overhead). > doesn't have much to do with the "computed gotos" extension You cannot implement indirect threaded code without a computed goto. You can implement a direct threaded code, of course (generating jump or call instructions directly), but this is a totally different thing.
- simias 11y agoAh, thank you for the link, that was the missing piece of the puzzle! :)