diff options
author | Miguel de Icaza <miguel@gnome.org> | 2004-02-01 05:35:03 +0300 |
---|---|---|
committer | Miguel de Icaza <miguel@gnome.org> | 2004-02-01 05:35:03 +0300 |
commit | e33afb5477aa590ac03a75632df8537ff6af502b (patch) | |
tree | 454412f7757eaed0d5b28ecd521b4e927f0f5244 /docs | |
parent | 66280ca0d6074bc7b8bcb69a74ed5b237f6ceca1 (diff) |
Add new file
svn path=/trunk/mono/; revision=22663
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ir-desc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/docs/ir-desc b/docs/ir-desc new file mode 100644 index 00000000000..25ad5c11564 --- /dev/null +++ b/docs/ir-desc @@ -0,0 +1,30 @@ +Mono Intermediate Representation Documentation + +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_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. + +
\ No newline at end of file |