diff -r c7ed11779ce8 -r 3576af4cb939 src/cpu/x86/vm/c1_LIRAssembler_x86.cpp --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Apr 10 09:31:04 2012 -0700 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Wed Apr 11 19:15:46 2012 -0700 @@ -1462,7 +1462,11 @@ break; case Bytecodes::_l2i: +#ifdef _LP64 + __ movl(dest->as_register(), src->as_register_lo()); +#else move_regs(src->as_register_lo(), dest->as_register()); +#endif break; case Bytecodes::_i2b: