runtime

RyuJIT: Porting to different platforms

First, understand the JIT architecture by reading RyuJIT overview.

What is a Platform?

One advantage of the CLR is that the VM (mostly) hides the (non-ABI) OS differences.

The Very High Level View

The following components need to be updated, or target-specific versions created, for a new platform.

Porting stages and steps

There are several steps to follow to port the JIT (some of which can be be done in parallel), described below.

Initial bring-up

Expand test coverage

Bring the optimizer phases on-line

Improve quality

Work on performance

Work on platform parity

Front-end changes

Backend Changes

Target ISA “Configuration”

Instruction Encoding

Adding Encodings

Lowering

Register Allocation

Addressing Modes

Code Generation