Computed gotos on Reddit
Don Clugston
dac at nospam.com
Wed Jul 25 04:14:29 PDT 2012
On 25/07/12 12:11, Walter Bright wrote:
> On 7/25/2012 12:51 AM, Don Clugston wrote:
>> so that there is no lookup table, just a multiply.
>
> Rethinking your idea a bit...
>
> Suppose the switch jump_address[] array was really an array of hardcoded
> jmp instructions, 5 bytes each:
>
> jmp_table:
> jmp Lcase1;
> jmp Lcase2;
> jmp Lcase3;
> ...
>
> and then the switch(EBX) would be:
>
> lea EAX,jmp_table[EBX][EBX*4]
> jmp EAX
>
> is that kick-ass or what?
>
> (There'd be some additional complication for PIC code.)
Very nice. The jumps in the jump table take effectively zero cycles.
That looks quite doable.
More information about the Digitalmars-d
mailing list