Re: [RFA] sh-sim: free up some room in jump_table

Joern Rennecke
2004-02-07T18:25:36Z

> ! printf (" if (target_dsp && \n");
> ! printf (" (iword & 0xf000) == 0xf000)\n");
> ! printf (" switch (sh_dsp_table[iword & 0xfff]) {\n");
> gensim_caselist (movsxy_tab);
> ! printf (" else switch (jump_table[iword]) {\n");

You have changed a straight dispatch into an if-then-else with
two dispatches, and the integer and fpu arithmetic path goes the long way
round the dsp dispatch; this seems to be a surefire way to make the
simulator slower.

We don't relly care much about the total size of the simulator, but
we care about its working set size, so why don't you generate two
separate simulator main loops, to be compiler into separate *.o
files, one with the FPU instructions, and the other one with the
dsp instructions?