Merge pull request #3563 from lewurm/interpreter
[mono-project.git] / docs / glossary.txt
blob5acaed7d0852bfb2b7c335fb5552a417ee3a96c3
1 Based on some Q&A:
4 Global Register Allocation: This is about placing in registers values
5 that are used a lot in performance-critical code: local variables and
6 method arguments if possible will be placed in the callee-saved
7 registers that are returned by th arch-specific code in the function:
8 mono_arch_get_global_int_regs().
11 Stack Unwinding: is the process that happens during exception
12 handling: when an exception is thrown in a called method and caught in
13 a caller method, me need to put the processor registers in the state
14 they were in the caller, at the point where the catch handler can run.
16 This happens in the mono_handle_exception_internal() and
17 mono_arch_find_jit_info(): see the other architectures implementations
18 for ideas: they basically need to know how big was the stack allocated
19 in each call frame and they need to restore the callee-save registers
20 that were saved in the stack in the prolog in the called functions (
21 during stack unwindong the epilog of a method is not executed and the
22 register restoration needs to be done manually in the above
23 functions).