Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @ 1369:0a43776437b6
6942223: c1 64 bit fixes
Summary: This fixes lir_cmp_l2i on x64 and sparc 64bit, and the debug info generation.
Reviewed-by: never
author | iveresov |
---|---|
date | Thu, 08 Apr 2010 12:13:07 -0700 |
parents | fc2c71045ada |
children | 9f5b60a14736 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Thu Apr 08 10:55:40 2010 +0200 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Thu Apr 08 12:13:07 2010 -0700 @@ -2690,19 +2690,14 @@ } else { assert(code == lir_cmp_l2i, "check"); #ifdef _LP64 - Register dest = dst->as_register(); - __ xorptr(dest, dest); - Label high, done; - __ cmpptr(left->as_register_lo(), right->as_register_lo()); - __ jcc(Assembler::equal, done); - __ jcc(Assembler::greater, high); - __ decrement(dest); - __ jmp(done); - __ bind(high); - __ increment(dest); - - __ bind(done); - + Label done; + Register dest = dst->as_register(); + __ cmpptr(left->as_register_lo(), right->as_register_lo()); + __ movl(dest, -1); + __ jccb(Assembler::less, done); + __ set_byte_if_not_zero(dest); + __ movzbl(dest, dest); + __ bind(done); #else __ lcmp2int(left->as_register_hi(), left->as_register_lo(),