On Mon, May 11, 2015 at 3:39 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: > > > On 11/05/2015 12:36, Andreas Färber wrote: >> > Right. My point was that these functions are not polymorphic. Each >> > call to these should know exactly which function to call. >> > >> > cputlb.c, cpu-exec.c and parts of translate-all.c should be the moral >> > equivalent of C++ templates. I wouldn't mind switching to C++, but if >> > we want to make them polymorphic we should do it at compile time through >> > multiple compilation and/or inclusion from target-*. >> >> I think we got more concrete than that, possibly on IRC only? I believe >> #include'ing cputlb.c from some target-* file was one of your proposed >> solutions? > > Yes (but Peter is making more functions virtual, so he'd have to do the > same also for cpu-exec.c and parts of translate-all.c). > >> And splitting some of the inline functions that I was getting >> rid of into some new (or existing?) file? > > If I remember correctly, another solution could be to keep the virtual > functions, but ensure that all the hot paths were "devirtualizing" them > and calling the CPU-specific function directly. >
What does this mean exactly? Is there still a common code for cputlb.c and friends? Regards, Peter > Paolo >