This is the mail archive of the gdb-patches@sourceware.org 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: [PATCH v3 03/14] sim/erc32: Switched emulated memory to host endian order.


[ read gdb lists to cc ]

On 13 Mar 2015 09:24, Jiri Gaisler wrote:
> On 13/03/15 00:55, Mike Frysinger wrote:
> > On 12 Mar 2015 22:25, Jiri Gaisler wrote:
> >> On 02/03/15 02:13, Mike Frysinger wrote:
> >>>> +#ifdef HOST_LITTLE_ENDIAN
> >>>>> +		    for (i = 0; i < (count / 4); i++) wbuffer[i] = ntohl(wbuffer[i]); // endian swap
> >>>>> +#endif
> >>>
> >>> sim-endian.h already provides a lot of helper funcs that i'm pretty sure you 
> >>> can use here.
> >>
> >> I don't understand why ntohl() is a problem. It is a common Posix function
> >> that converts big endian to host endian, exactly what is needed. Using
> >> sim-endian.h pulls in a lot of the sim-*.c files due to dependencies and
> >> makes the simulator larger than necessary ....
> > 
> > "network" has no meaning here.  using it as a proxy for moving between big 
> > endian and native endian when there are clear functions that the sim has 
> > standardized on isn't correct.  your code also (1) requires duplicating branches 
> > and (2) inline preprocessor checks.  it also does not properly handle bi-endian 
> > builds.  sim-endian does all of these for you.  the whole point of common/ is 
> > to delete code from each sim rather than open coding it everywhere.
> > 
> > wrt size, i don't think that's a compelling argument.  we're talking units of 
> > KiB here, and i can't even count that low :P.
> > 
> > if you're having trouble converting the build over (compiling/linking errors), 
> > then we can discuss that.  but it'd be a matter of "do we do it now or later" 
> > rather than "do we do ever convert".
> 
> Right. I tried to use the T2H_4 macro, but can't get it to compile.
> I included <sim-basics.h> and added sim-endian.o and sim-io.o to the
> Makefile, but it complains about unresolved function etc. Do I really
> need to create a sim-main.c and sim-main.h just to use T2H?

i've pushed a patch to bury the sim-io.h include in sim-assert.h (since that's 
the header that actually uses the sim_io_xxx funcs).  if you define your own 
ASSERT/SIM_ASSERT macros, it should be avoided for now.  just make sure you add 
a note that they should get converted to sim-assert.h at some point.

> Is there
> any documentation whatsoever on how to use the sim/common interface?

not really ... normally you'd use the nrun.c main which implies you'd write the 
overall sim in a certain way, so you'd get all the funcs in there for free.  but 
for existing old sims (like the sparc one), it's harder to deal with.

i've been very slowly converting things over
-mike

Attachment: signature.asc
Description: Digital signature


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