diff --git a/src/hotspot/cpu/x86/templateTable_x86.cpp b/src/hotspot/cpu/x86/templateTable_x86.cpp index b794d28f344..432ba6624a9 100644 --- a/src/hotspot/cpu/x86/templateTable_x86.cpp +++ b/src/hotspot/cpu/x86/templateTable_x86.cpp @@ -582,8 +582,9 @@ void TemplateTable::condy_helper(Label& Done) { __ cmpl(flags, ltos); __ jcc(Assembler::notEqual, notLong); // ltos - __ movptr(rax, field); + // Loading high word first because movptr clobbers rax NOT_LP64(__ movptr(rdx, field.plus_disp(4))); + __ movptr(rax, field); __ push(ltos); __ jmp(Done);