Module: YTLJit::VM
- Defined in:
- lib/ytljit/vm.rb,
lib/ytljit/vm_trans.rb,
lib/ytljit/vm_codegen.rb,
lib/ytljit/vm_inspect.rb,
lib/ytljit/vm_typeinf.rb,
lib/ytljit/vm_sendnode.rb,
lib/ytljit/vm_type_gen.rb,
lib/ytljit/vm_cruby_obj.rb,
lib/ytljit/vm_inline_method.rb
Overview
Stack layout (on stack frame)
Hi | |Argn | |
| | : | |
| |Arg2(self) | |
| |Arg1(block pointer) | |
| |Arg0(parent frame) | -+
| |Return Address |
+- |old bp | <-+
|old bp on stack | -+
EBP-> |Local Vars1 |
| |
| |
|Local Varsn |
|Pointer to Env |
SP -> | |
| |
LO
Stack layout (on heap frame)
|
Hi | |Arg0(parent frame) | -+
| |Arg1(block pointer) |
| |Arg2(self) |
| | : |
| |Arg n |
| |Return Address |
+- |old bp | <---+
|Pointer to Env | -+ |
SP -> | | | |
LO | | | |
| |
| |
+- | | | |
| |free func | | |
| |mark func | | |
| |T_DATA | <-+ |
| |
| |
| |Arg n | |
| | : | |
| |Arg3(exception status) | |
| |Arg2(block pointer) | |
| |Arg1(parent frame) | |
| |Arg0(self) | |
| |Not used(reserved) | |
| |Not used(reserved) | |
| |old bp on stack | -----+
EBP-> |Local Vars1 |
| | |
| | |
+->|Local Varsn |
enter procedure
push EBP
SP -> EBP
allocate frame (stack or heap)
Copy arguments if allocate frame on heap
store EBP on the top of frame
Address of top of frame -> EBP
leave procedure
Dereference of EBP -> ESP
pop EBP
ret
Defined Under Namespace
Modules: ArithmeticOperationUtil, CommonCodeGen, CompareOperationUtil, Node, SendNodeCodeGen, TypeCodeGen, UnboxedArrayUtil, UnboxedObjectUtil, YARVTranslatorCRubyObjectMixin, YARVTranslatorSimpleMixin, YARVTranslatorTypeInferenceMixin Classes: CollectInfoContext, CompileContext, TypeInferenceContext, YARVContext, YARVTranslatorBase, YARVTranslatorCRubyObject, YARVTranslatorSimple, YARVTranslatorTypeInference