This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]