Accelerator Manual (G06.24+, H06.03+)

Setting Accelerator Options
Accelerator Manual527303-002
5-3
Inheritance of Condition Codes
You only need to be concerned about setting the Atomic_On option if your program
contains TAL procedures. It is most likely that TAL procedures that require these
instructions to be atomic:
Contain CODE statements that use one of the previously listed instructions
Perform bit operations (bit extraction, bit deposit, bit shift) and one of the following:
Share memory (typically only SG segment) locations with another program,
and have machine interrupt handlers (not ARMTRAP routines, but a procedure
that is called from the interrupt state).
Communicate with another process in the same CPU through an extended
data segment. Look for an argument to the ALLOCATESEGMENT or
SEGMENT_ALLOCATE_ system procedures that requests an existing file as
swap space; this allocation might indicate that a process shares read/write
data with another process.
Refer to the TAL Reference Manual for more information on bit operations.
Search TAL programs to see if they contain CODE statements that use one of the
previously listed instructions. ADM is the most frequently used of these instructions.
You should modify programs that require the atomicity of instructions. Atomicity will not
be supported in future releases.
Setting Atomic_On substantially degrades program performance. Try to set Atomic_On
only for those procedures that require atomic behavior.
Super Option Settings
The Common and Fast options set Atomic_Off, and the Safe option sets Atomic_On.
Inheritance of Condition Codes
The Accelerator does not maintain the values of condition codes across procedure
calls by default; however, certain procedures can rely on these values across
procedure calls. TAL procedures can inherit condition codes: that is, they can interpret
as signals the values of the N and Z bits of the ENV register set by their callers. Most
TAL procedures do not rely on the inheritance of condition codes. They either never
test those bits at the beginning of a procedure, or perform operations that reset those
bits before they can be tested. The Accelerator generates code that resets the
condition codes at all procedure returns, system procedure calls, and arithmetic
operations. The Accelerator option default setting, “InheritsCC_Off,” generates code
that does not maintain the N and Z bits across procedures calls.