My feeble attempt at fixing complaints that makeinfo makes about
errors in this doc.
This commit is contained in:
parent
d0fd7b1858
commit
24501dd0c6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=18343
@ -1285,13 +1285,13 @@ Ln: throw value;
|
||||
copy value onto heap
|
||||
jump throw (Ln, id, address of copy of value on heap)
|
||||
|
||||
try {
|
||||
try @{
|
||||
+Lstart: the start of the main EH region
|
||||
|... ...
|
||||
+Lend: the end of the main EH region
|
||||
} catch (T o) {
|
||||
@} catch (T o) @{
|
||||
...1
|
||||
}
|
||||
@}
|
||||
Lresume:
|
||||
nop used to make sure there is something before
|
||||
the next region ends, if there is one
|
||||
@ -1312,7 +1312,7 @@ Lover:
|
||||
[
|
||||
[
|
||||
call throw_type_match
|
||||
if (eq) {
|
||||
if (eq) @{
|
||||
] these lines disappear when there is no catch condition
|
||||
+Lsregion2:
|
||||
| ...1
|
||||
@ -1320,7 +1320,7 @@ Lover:
|
||||
|Lhandler: handler for the region Lsregion2-Leregion2
|
||||
| rethrow (Lresume, same id, same obj);
|
||||
+Leregion2
|
||||
}
|
||||
@}
|
||||
] there are zero or more of these sections, depending upon how many
|
||||
catch clauses there are
|
||||
----------------------------- expand_end_all_catch --------------------------
|
||||
@ -1336,7 +1336,7 @@ Ldone:
|
||||
|
||||
start_all_catch emits labels: Lresume,
|
||||
|
||||
#end example
|
||||
@end example
|
||||
|
||||
The __unwind_function takes a pointer to the throw handler, and is
|
||||
expected to pop the stack frame that was built to call it, as well as
|
||||
@ -1346,7 +1346,7 @@ machine state as determined by the context in which we are unwinding
|
||||
into. The way I normally start is to compile:
|
||||
|
||||
void *g;
|
||||
foo(void* a) { g = a; }
|
||||
foo(void* a) @{ g = a; @}
|
||||
|
||||
with -S, and change the thing that alters the PC (return, or ret
|
||||
usually) to not alter the PC, making sure to leave all other semantics
|
||||
@ -1453,7 +1453,7 @@ descriptor that refers to fully contained code that has been eliminated
|
||||
should also be removed, although not doing this is harmless in terms of
|
||||
semantics.
|
||||
|
||||
#end itemize
|
||||
@end itemize
|
||||
|
||||
The above is not meant to be exhaustive, but does include all things I
|
||||
have thought of so far. I am sure other limitations exist.
|
||||
@ -1515,7 +1515,7 @@ pointer, frame pointer, arg pointer and so on.
|
||||
|
||||
The eh archive (~mrs/eh) might be good reading for understanding the Ada
|
||||
perspective, and some of kenners mindset, and a detailed explanation
|
||||
(Message-Id: <9308301130.AA10543@vlsi1.ultra.nyu.edu>) of the concepts
|
||||
(Message-Id: <9308301130.AA10543@@vlsi1.ultra.nyu.edu>) of the concepts
|
||||
involved.
|
||||
|
||||
Here is a guide to existing backend type code. It is all in
|
||||
|
Loading…
Reference in New Issue
Block a user