2004/10/19 23:11:07-07:00 mostang.com!davidm
(got_here): New global variable.
(raise_exception): Fix off-by-2 error so that we _really_ step
to the outermost a() frame.
(get_bsp): New function.
(__builtin_ia64_bsp): Remove.
(a): Print stack and bsp addresses as we recurse.
When resuming execution in outermost a() frame (n==depth),
clear "result" and set "got_here" so we know we landed in
the right place.
(main): Don't accept arguments that cause "depth" to be < 1.
When returning from a(), also check "got_here". If
the check failed, print result, got_here, and nerrors
for diagnostic purposes.
(Logical change 1.290)
(raise_exception): Make non-static, unwind "depth - 1" steps to get to
top-most a() frame.
(__builtin_ia64_bsp): Also define for Intel-compiler.
(a): Restructure so it works in the face of global optimization and also
remove GCC dependencies.
(main): Initialize depth based on argv[1].
(Logical change 1.232)
label. gcc-3.x otherwise notices that the label isn't used for control-flow
and feels free to move it around (usually to the beginning of the basic-block),
with very bad consequences.
(Logical change 1.70)