hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp
Print this page
rev 611 : Merge
@@ -1,10 +1,7 @@
-#ifdef USE_PRAGMA_IDENT_SRC
-#pragma ident "@(#)jniFastGetField_x86_64.cpp 1.14 07/09/17 09:26:02 JVM"
-#endif
/*
- * Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2008 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.
@@ -68,22 +65,22 @@
Label slow;
ExternalAddress counter(SafepointSynchronize::safepoint_counter_addr());
__ mov32 (rcounter, counter);
- __ movq (robj, c_rarg1);
+ __ mov (robj, c_rarg1);
__ testb (rcounter, 1);
__ jcc (Assembler::notZero, slow);
if (os::is_MP()) {
- __ xorq (robj, rcounter);
- __ xorq (robj, rcounter); // obj, since
+ __ xorptr(robj, rcounter);
+ __ xorptr(robj, rcounter); // obj, since
// robj ^ rcounter ^ rcounter == robj
// robj is data dependent on rcounter.
}
- __ movq (robj, Address(robj, 0)); // *obj
- __ movq (roffset, c_rarg2);
- __ shrq (roffset, 2); // offset
+ __ movptr(robj, Address(robj, 0)); // *obj
+ __ mov (roffset, c_rarg2);
+ __ shrptr(roffset, 2); // offset
assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
speculative_load_pclist[count] = __ pc();
switch (type) {
case T_BOOLEAN: __ movzbl (rax, Address(robj, roffset, Address::times_1)); break;
@@ -96,12 +93,12 @@
}
if (os::is_MP()) {
__ lea(rcounter_addr, counter);
// ca is data dependent on rax.
- __ xorq (rcounter_addr, rax);
- __ xorq (rcounter_addr, rax);
+ __ xorptr(rcounter_addr, rax);
+ __ xorptr(rcounter_addr, rax);
__ cmpl (rcounter, Address(rcounter_addr, 0));
} else {
__ cmp32 (rcounter, counter);
}
__ jcc (Assembler::notEqual, slow);
@@ -166,22 +163,22 @@
Label slow;
ExternalAddress counter(SafepointSynchronize::safepoint_counter_addr());
__ mov32 (rcounter, counter);
- __ movq (robj, c_rarg1);
+ __ mov (robj, c_rarg1);
__ testb (rcounter, 1);
__ jcc (Assembler::notZero, slow);
if (os::is_MP()) {
- __ xorq (robj, rcounter);
- __ xorq (robj, rcounter); // obj, since
+ __ xorptr(robj, rcounter);
+ __ xorptr(robj, rcounter); // obj, since
// robj ^ rcounter ^ rcounter == robj
// robj is data dependent on rcounter.
}
- __ movq (robj, Address(robj, 0)); // *obj
- __ movq (roffset, c_rarg2);
- __ shrq (roffset, 2); // offset
+ __ movptr(robj, Address(robj, 0)); // *obj
+ __ mov (roffset, c_rarg2);
+ __ shrptr(roffset, 2); // offset
assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
speculative_load_pclist[count] = __ pc();
switch (type) {
case T_FLOAT: __ movflt (xmm0, Address(robj, roffset, Address::times_1)); break;
@@ -191,12 +188,12 @@
if (os::is_MP()) {
__ lea(rcounter_addr, counter);
__ movdq (rax, xmm0);
// counter address is data dependent on xmm0.
- __ xorq (rcounter_addr, rax);
- __ xorq (rcounter_addr, rax);
+ __ xorptr(rcounter_addr, rax);
+ __ xorptr(rcounter_addr, rax);
__ cmpl (rcounter, Address(rcounter_addr, 0));
} else {
__ cmp32 (rcounter, counter);
}
__ jcc (Assembler::notEqual, slow);
@@ -223,6 +220,5 @@
}
address JNI_FastGetField::generate_fast_get_double_field() {
return generate_fast_get_float_field0(T_DOUBLE);
}
-