Add
authorMiguel de Icaza <miguel@gnome.org>
Sun, 24 Jun 2007 17:13:43 +0000 (17:13 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Sun, 24 Jun 2007 17:13:43 +0000 (17:13 -0000)
svn path=/trunk/mono/; revision=80636

docs/glossary.txt [new file with mode: 0644]

diff --git a/docs/glossary.txt b/docs/glossary.txt
new file mode 100644 (file)
index 0000000..5acaed7
--- /dev/null
@@ -0,0 +1,23 @@
+Based on some Q&A:
+
+
+Global Register Allocation: This is about placing in registers values
+that are used a lot in performance-critical code: local variables and
+method arguments if possible will be placed in the callee-saved
+registers that are returned by th arch-specific code in the function:
+mono_arch_get_global_int_regs().
+
+
+Stack Unwinding: is the process that happens during exception
+handling: when an exception is thrown in a called method and caught in
+a caller method, me need to put the processor registers in the state
+they were in the caller, at the point where the catch handler can run.
+
+This happens in the mono_handle_exception_internal() and
+mono_arch_find_jit_info(): see the other architectures implementations
+for ideas: they basically need to know how big was the stack allocated
+in each call frame and they need to restore the callee-save registers
+that were saved in the stack in the prolog in the called functions (
+during stack unwindong the epilog of a method is not executed and the
+register restoration needs to be done manually in the above
+functions).