Tom Rodriguez wrote:
> CreateEx certainly must be at the beginning of the block during register 
> allocation, otherwise I don't think the interference graph will be 
> handled correctly.  The CreateEx represents the incoming exception in a 
> fixed register and it needs to interfere with every value coming into 
> the exception handler.  If a MachSpillCopy is before it then a value 
> could be live into the exception point in the exception oop register, 
> where it would be blown away.
[t@8 l@8]: print b->dump()
B23: #    B35 B24 B34 <- N269  Freq: 5.49441e-06
 286    Region    ===  286  117  [[ 286  114  119 ]]
 399    MachSpillCopy    === _  91  [[ 114 ]]   Oop:java/lang/String:NotNull:exact *
 398    MachSpillCopy    === _  95  [[ 114  443 ]]
 397    MachSpillCopy    === _  353  [[ 114  442 ]]
 396    MachSpillCopy    === _  352  [[ 114  441 ]]   Oop:java/util/Locale:exact *
 395    MachSpillCopy    === _  380  [[ 114  440 ]]   Oop:java/util/ResourceBundle$Control *
 119    CreateException    ===  286  100  [[ 393 ]] java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: ResourceBundle::loadBundle @ bci:83