src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/cpu/x86/vm/assembler_x86.cpp	Mon Apr 26 07:45:35 2010
--- new/src/cpu/x86/vm/assembler_x86.cpp	Mon Apr 26 07:45:34 2010

*** 1,7 **** --- 1,7 ---- /* ! * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. ! * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 6491,6516 **** --- 6491,6511 ---- return off; } void MacroAssembler::load_sized_value(Register dst, Address src, int size_in_bytes, bool is_signed) { - switch (size_in_bytes ^ (is_signed ? -1 : 0)) { #ifndef _LP64 // For case 8, caller is responsible for manually loading // the second word into another register. ! case ~8: // fall through: case 8: movl( dst, src ); break; ! case 8: movl(dst, src); break; #else ! case ~8: // fall through: case 8: movq( dst, src ); break; ! case 8: movq(dst, src); break; #endif ! case ~4: // fall through: ! case 4: movl( dst, src ); break; ! case ~2: load_signed_short( dst, src ); break; case 2: load_unsigned_short( dst, src ); break; case ~1: load_signed_byte( dst, src ); break; case 1: load_unsigned_byte( dst, src ); break; ! case 4: movl(dst, src); break; ! case 2: is_signed ? load_signed_short(dst, src) : load_unsigned_short(dst, src); break; ! case 1: is_signed ? load_signed_byte( dst, src) : load_unsigned_byte( dst, src); break; default: ShouldNotReachHere(); } } void MacroAssembler::mov32(AddressLiteral dst, Register src) {
*** 7704,7713 **** --- 7699,7709 ---- // argument list in JVM stack slots. This field is either located directly // in every method handle, or else is indirectly accessed through the // method handle's MethodType. This macro hides the distinction. void MacroAssembler::load_method_handle_vmslots(Register vmslots_reg, Register mh_reg, Register temp_reg) { + assert_different_registers(vmslots_reg, mh_reg, temp_reg); if (UseCompressedOops) unimplemented(); // field accesses must decode // load mh.type.form.vmslots if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) { // hoist vmslots into every mh to avoid dependent load chain movl(vmslots_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)));

src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File