--- old/src/share/vm/opto/matcher.cpp 2011-09-06 17:01:43.938811899 +0200 +++ new/src/share/vm/opto/matcher.cpp 2011-09-06 17:01:43.755565564 +0200 @@ -501,6 +501,12 @@ idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegD]); #else idealreg2spillmask[Op_RegP]->OR(*idealreg2regmask[Op_RegF]); +#ifdef ARM + // ARM has support for moving 64bit values between a pair of + // integer registers and a double register + idealreg2spillmask[Op_RegL]->OR(*idealreg2regmask[Op_RegD]); + idealreg2spillmask[Op_RegD]->OR(*idealreg2regmask[Op_RegL]); +#endif #endif }