[Mono-devel-list] Porting mono to non-Unix platforms that disallow access to native machine code

Peter Colson pcolson at connexus.net.au
Tue Jun 29 19:59:39 EDT 2004

Most of the porting related doco I've seen refers to the need to be able to
JIT to native architecture-specific code.

I'm wondering about the ease of porting mono to an environment that doesn't
easily support the generation of native machine code, i.e., a system that
only presents OS API's and an abstract MI (machine interface) layer rather
than the typical native machine interface provided by assembler code that
allows register access, load/store ops, etc., etc. 

I would suppose that the majority of the porting effort has been to Unix-
like environments and I assume the S390 port was using the Linux subsystem
on s390? Also, on Windows platforms it's easy enough to generate native
machine code.

Do you think, in general, that it would be possible to implement JIT'ing on
a platform purely in a higher-level language like C that makes use only of
operating system API's to perform the final step in CIL to MIR to machine-
specific (in this case "abstract") representation?

I note the provision of "inssel.brg" for generic instruction selection
patterns in the monoburg area. Also the reference in mini-doc.txt to
implementing some opcodes as helper functions written in C and then
registering them via "mono_register_jit_call".

Basically, I want to know if there is some fundamental requirement to be
able to reduce CIL to native machine code via JIT'ing or whether it can be
kept at a higher, abstract level.

Also, there is a reference in mini-porting.txt to an earlier document on the
website regarding porting of the mono interpreter. Is this the porting.html
doc or another one (which I haven't found yet)?

Peter Colson.

More information about the Mono-devel-list mailing list