There could be some problems with Enter_Critical_Section if an interrupt
occurs during the call to Enter_Critical_Section. When an interrupt occurs, 
the GIE is cleared but then the instructions in the pipe are executed BEFORE 
the interrupt.  So a simple clear of GIE can fail because the clearing 
instruction may be in the pipe AFTER an interrupt has already been recognized.
Similarly, it is difficult to test the value of the GIE, because the test may 
be in the pipe after a recognized interrupt, in which case it will see GIE=0 
(on C30), regardless of what the pre-interrupt state was.  On C40 the PGIE/GIE 
simplify the problem, unless of course the interrupt routine CHANGES the PGIE.

We use a delayed branch to solve this problem, which keeps interrupts pending 
until the following 3 instructions can be executed.  Within those 3 instructions, 
where an interrupt cannot happen, we clear GIE.

This directory contains a tgtclient.tof file that fixes this problem.
To replace this module in the Runtime library:

olibc3x -replace artc3x.lib tgtclient


