At 2:02 PM -0800 11/17/04, Bill Coffman wrote:
So to generalize.  The following registers are available, under the
following conditions:

* [NEW] If register 15 or below is used, it should be cleared out,
ZEROED, after it's last use and before the next sub call.  This is for
security reasons.  Obviously, these registers will not be the first
choice to use.

Nope -- this isn't the job of the register allocator. We aren't leaving security issues up to bytecode except in a very few, limited cases. (All involving subroutines with elevated security credentials which the sub needs to drop after using things they allow)


Other observations:

* From new allocator bugs, and analysis, we've discovered that
exceptions cause new control flow edges, not previously considerd.
This case is being reworked by Leo?  to provide missing CFG edges,
through a minor change in the try block declaration.  (thread
"Continuations, basic blocks, loops and register allocation")
* The case of continuations has not been solved with respect to
register alloction.  Leo's RESUMEABLE: label might provide help here.
In any case, we can expect to see some additional edges being inserted
though.  (also thread "Continuations, basic blocks, loops and register
allocation")

Exceptions and continuations should be the same problem -- the target is the start of a basic block. (Well, more than that, as they're places where calling conventions potentially kick in) This means the instruction immediately after a sub call starts a new block, as does the start of an exception handler. (And I've got some docs on exceptions that should be out later tonight)
--
Dan


--------------------------------------it's like this-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to