[Vm-dev] Adding CPU specific code for fast bitblt on ARM

David T. Lewis lewis at mail.msen.com
Wed May 29 20:31:09 UTC 2013


On Wed, May 29, 2013 at 11:26:50AM -0700, tim Rowledge wrote:
> 
> 
> On 29-05-2013, at 3:57 AM, "David T. Lewis" <lewis at mail.msen.com> wrote:
> > 
> > I started with a fresh platforms tree and VMMaker image, then added Ben's
> > Cross/plugins/BitBltPlugin/* and unix/pluginx/BitBltPlugin/config.cmake.
> > I also filed in your BitBltSimulation changes.
> > 
> > I did not file in the code generator changes, because VMMaker already has
> > the following C preprocessor methods (http://bugs.squeak.org/view.php?id=5238):
> 
> Ah, excellent.I'll rewrite to make use of these. Um, so did you change the code to make use of them already?
> 

No, I did not change the code at all. FYI there is an equivalent but different
implementation of some of these directives in the Cog branch, so we'll need
to modify accordingly (no big deal, just letting you know).


> > 
> >   Object>>isDefined:inSmalltalk:comment:ifTrue:
> >   Object>>isDefined:inSmalltalk:comment:ifTrue:ifFalse:
> >   Object>>isDefinedTrueExpression:inSmalltalk:comment:ifTrue:ifFalse:
> >   Object>>preprocessorExpression:
> >   Object>>cPreprocessorDirective:
> > 
> > I compiled a VM for x86_64 Linux from this, both with and without the
> > -DARM_FAST_BLT in CFLAGS. In both cases I got a working VM, and in both
> > cases the code in Cross/plugins/BitBltPlugin was not compiled.
> 
> I think that is correct since the cmake fragment appears to explicitly check for arm
> 
> > 
> > The configure and make commands that I used were:
> >   $ cd build
> >   $ ../platforms/unix/cmake/configure --src=../src --CFLAGS='-DARM_FAST_BLT'
> >   $ make install
> > 
> > Conclusion: For Linux on a non-ARM platform, nothing bad happened when the
> > code was added.
> 
> Sounds like a good start then.
> 
> > 
> > I think that Cross/plugins/BitBltPlugin cries out for some naming convention
> > or new directory structure to distinguish ARM from other platforms. I'm not
> > sure what to suggest just now?
> 
> Me neither. Suggestions from the peanut gallery welcomed.
> 

Yes please ... ideas anyone?

> > 
> > Regarding the code, is this available under MIT license? And who is this
> > Ben guy anyhow ;-)
> 
> It's certainly intended to be acceptable to the main tree and the license verbiage looks MIT-ish to me. If it isn't adequate, I doubt there will be more than a five second conversation required to change it.
> 
> Ben is an ex-Acorn guy in the UK that happened to write the pixman Pi optimisations as well as quite a bit of RISC OS. As you will notice if you read the code, he is rather good at neat but devious code that does clever things to ARMs. For some reason despite living in Cambridge (the real one, not the one in the US) he works on PDT. He has a slightly dodgy beard.
> 

Great :)

I think that we do need an explicit statement that code is MIT licensed. The
people who care about that stuff care about it a lot, and it messes things up
for e.g. Linux distro maintainers if we don't have explicit MIT licensing
declared.

Dave



More information about the Vm-dev mailing list