From: Rod Pemberton on
"BGB / cr88192" <cr88192(a)hotmail.com> wrote in message
news:hclak6$4ej$1(a)news.albasani.net...
>
> at which point the main switch became the bottleneck...

How so? Too many case values? Too widely dispersed case values which
prevents optimization? What?


Rod Pemberton





From: Rod Pemberton on
"BGB / cr88192" <cr88192(a)hotmail.com> wrote in message
news:hckpa8$aj2$1(a)news.albasani.net...
>
> but, the hash is not used for opcode lookup/decoding, rather it is used
> for grabbing already decoded instructions from a cache (which is
> based on memory address).
>

Your hash generates, what, 64k of possible hash values or memory locations?
What if you reduce the size to 4k? 4k/sizeof(void *)? Will this allow to
compiler to simplify the generated assembly?

The randomness doesn't have to come from multiplication. It can come from
other sources such as a lookup array of randomized data.


Rod Pemberton




From: Rod Pemberton on
"BGB / cr88192" <cr88192(a)hotmail.com> wrote in message
news:hcjarj$vro$1(a)news.albasani.net...
>
> hash EIP (currently: "((EIP*65521)>>16)&65535");
>

The shift truncates the value to the mask size. I.e., &65535 is not needed.
Yes?


Rod Pemberton




From: Rod Pemberton on
"BGB / cr88192" <cr88192(a)hotmail.com> wrote in message
news:hcke2u$n5l$1(a)news.albasani.net...
>
> according to the profiler, another major source of time use is:
> "rip=ctx->sreg_base[0]+ctx->eip;"
>

What happens if you eliminate struct ctx? I.e., make both sreg_base and eip
separate variables. What happens with file scope? ... with local scope?


Rod Pemberton




From: BGB / cr88192 on

"Rod Pemberton" <do_not_have(a)nohavenot.cmm> wrote in message
news:hcnjkn$7bt$1(a)aioe.org...
> "BGB / cr88192" <cr88192(a)hotmail.com> wrote in message
> news:hcke2u$n5l$1(a)news.albasani.net...
>>
>> according to the profiler, another major source of time use is:
>> "rip=ctx->sreg_base[0]+ctx->eip;"
>>
>
> What happens if you eliminate struct ctx? I.e., make both sreg_base and
> eip
> separate variables. What happens with file scope? ... with local scope?
>

what happens?...

well, then, I could no longer do multi-threading...

ctx essentially represents the current simulated thread context, and there
may be 1 or more (OS-level) worker threads essentially serving as virtual
processors.

I am not willing to make a design change which would essentially prohibit
multi-threaded operation...


>
> Rod Pemberton
>
>
>
>