Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: mono-1-1-8
Fetching contributors…

Cannot retrieve contributors at this time

file 75 lines (53 sloc) 1.982 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
Mono Intermediate Representation Documentation

Operation: OP_ADDCC_IMM

Add immediate that will set the carry flag.

dreg:
Destination register
inst_imm
Immediate value to add.
sreg1:
Source register to add.

Operation: OP_CALL_HANDLER.

cil_code:
Points to the CIL where the LEAVE or LEAVE_S
instruction was found.

inst_target_bb:
The target basic block for this invocation.

This instruction must call the target basic block.

Operation: OP_CISINST

Implements the CEE_MONO_CISINST opcode that is decoded from
the CIL stream.

This opcode takes as input an object reference and a class,
and leaves on the assigned register:

0. if the object is an instance of the class,
1. if the object is not instance of the class,
2. if the object is a proxy whose type cannot be determined.

Operation: OP_CCASTCLASS

Implements the CEE_MONO_CCASTCLASS opcode that is decoded from
the CIL stream.

This opcode takes as input an object reference and a class,
and leaves on the assigned register:

0. if the object is an instance of the class,
1. if the object is a proxy whose type cannot be determined

throws an InvalidCastException exception otherwise.

Operation: OP_LOCALLOC
inst_left:
The value
                                ins->inst_left = *sp;
                                ins->cil_code = ip;

This is the equivalent of alloca() in a C implementation: it
allocates a bunch of bytes on the stack dynamically. Local
variables are allocated statically in the stack instead.

It is implemented by moving the stack pointer according to the
platform ABI: you may need to keep a specific frame register
to address local variables when LOCALLOC is used (the PPC code
does this, for example: ifyou're doing the s390 port I suggest
starting from that)

Operation: OP_SUBCC_IMM

Substract immediate that will set the borrow flag.

dreg:
Destination register
inst_imm
Immediate value to add.
sreg1:
Source register to add.
Something went wrong with that request. Please try again.