Welcome, Guest. Please login or register.

Author Topic: Static Compiled VM for AROS?  (Read 1106 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline SamuraiCrowTopic starter

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 2280
  • Country: us
  • Gender: Male
Static Compiled VM for AROS?
« on: February 18, 2012, 03:15:37 AM »
This thread is a spinoff of the ARM vs. PPC thread.

Quote
I was planning to use the 32-bit little-endian target being introduced into the Clang compiler by Google for use with their PNaCl virtual machine in conjunction with AROS. It would be a statically compiled virtual machine (install time compile instead of JIT). This way recompiled apps could be installed on ARM or x86-32 bit machines with equal ease.

It also wouldn't be too hard to add a big-endian 32-bit target to the compiler by modifying the other little-endian one. This would allow PPC and any other big-endian machine such as the N68050 will be able to run the same code.

The big limitation is that running the code from these VMs on anything 64-bit would require a 32-bit emulation sandbox. For Google's purposes, that's fine because their PNaCl browser plugin for Chrome will include a sandbox, but running a 64-bit version of AROS will also require a sandbox.

Another option would be to have a third and fourth file format that support 64-bit architectures in big-endian and little-endians respectively. In my opinion this is a pain.


It appears that the le32 target for Clang is already released in the current trunk version.  That means that little-endian 32-bit targets should be able to import from a specially formatted LLVM Bitcode file with metadata intended to be used to compile the bitcode the rest of the way down to binary code.

Unfortunately, I have to attend to moving myself 400 miles away for my new job and my old programming partner, Sidewinder, has taken a second job as well.  It's possible that his wife has already given birth to his second child.  Thus trying to find time to work on the VM may be delayed for a long time.