Superword - Aligning arrays
groundskeeperwiley at yahoo.com
Tue Feb 10 16:26:12 PST 2009
I've been using a really simple test program while working on this. I tried a test program that was a little more complex this weekend and ran into a new problem. It looks like PhaseChaitin::gather_lrg_masks is trying to use the same XMM virtual register for a Op_RegF and a Op_RegQ which causes a assert when lrg.set_num_regs(4) is called. I noticed that another virtual register was assigned Op_RegQ twice but since the registers are teh same size it didn't assert. Obviously since double and floats coexist nicely I must be missing something. I went through looking at any code that checked the size of the register via LRG::num_regs() and the bug wasn't readily apparent to me. Any idea where I should look to fix this?
More information about the hotspot-dev