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.)

Reply via email to