This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] sh-sim: free up some room in jump_table
- From: Joern Rennecke <amylaar at fairadsl dot co dot uk>
- To: msnyder at redhat dot com (Michael Snyder)
- Cc: amylaar at fairadsl dot co dot uk (Joern Rennecke), joern dot rennecke at superh dot com, gdb-patches at sources dot redhat dot com
- Date: Sat, 7 Feb 2004 18:31:27 +0000 (GMT)
- Subject: Re: [RFA] sh-sim: free up some room in jump_table
> ! 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?