Speaking as someone who has worked on OS and I/O subsystem
development for more than 45 years, I wholeheartedly agree with the
comments and observations posted by Brent Longborough.  I've always
found the style of invoking some function and depending upon the
Condition Code upon return to be worse than just smelly.  If,
during the course of a code review, the more seasoned folks on my
development team encountered that style, the code was rejected and
it was required to be reworked.

I'm also not a big fan of the "vectored returns" (e.g., B 0(,R14)
for one condition, B 4(,R14) for another, etc.).  Among other
things, this introduces an undesirable dependency upon the size of
the instruction(s) following the linkage instruction in the caller's
code.  Return Codes and Reason Codes (typically in R15 and R0,
respectively) work quite nicely and are much more maintainable.

Of course, nothing is perfect and developers need to be very much
aware of what they are doing and what kind of a mess (or hopefully,
lack thereof) they are leaving for the next individual who has to
work on the code.

Bob

Reply via email to