Prev: Is there a debugger or a tool that will find the stack corruption
Next: LPC2478 arm7tdmi 56mhz 8kb cache 32mb ram, jpeg decoding performance
From: Rod Pemberton on 2 Nov 2009 16:37 "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 2 Nov 2009 16:37 "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 2 Nov 2009 16:38 "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 2 Nov 2009 16:38 "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 2 Nov 2009 18:34
"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 > > > > |