< prev index next >

src/hotspot/cpu/x86/stubGenerator_x86_64.cpp

Print this page

        

*** 608,618 **** address generate_atomic_cmpxchg() { StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg"); address start = __ pc(); __ movl(rax, c_rarg2); ! if ( os::is_MP() ) __ lock(); __ cmpxchgl(c_rarg0, Address(c_rarg1, 0)); __ ret(0); return start; } --- 608,618 ---- address generate_atomic_cmpxchg() { StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg"); address start = __ pc(); __ movl(rax, c_rarg2); ! __ lock(); __ cmpxchgl(c_rarg0, Address(c_rarg1, 0)); __ ret(0); return start; }
*** 634,644 **** address generate_atomic_cmpxchg_byte() { StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg_byte"); address start = __ pc(); __ movsbq(rax, c_rarg2); ! if ( os::is_MP() ) __ lock(); __ cmpxchgb(c_rarg0, Address(c_rarg1, 0)); __ ret(0); return start; } --- 634,644 ---- address generate_atomic_cmpxchg_byte() { StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg_byte"); address start = __ pc(); __ movsbq(rax, c_rarg2); ! __ lock(); __ cmpxchgb(c_rarg0, Address(c_rarg1, 0)); __ ret(0); return start; }
*** 660,670 **** address generate_atomic_cmpxchg_long() { StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg_long"); address start = __ pc(); __ movq(rax, c_rarg2); ! if ( os::is_MP() ) __ lock(); __ cmpxchgq(c_rarg0, Address(c_rarg1, 0)); __ ret(0); return start; } --- 660,670 ---- address generate_atomic_cmpxchg_long() { StubCodeMark mark(this, "StubRoutines", "atomic_cmpxchg_long"); address start = __ pc(); __ movq(rax, c_rarg2); ! __ lock(); __ cmpxchgq(c_rarg0, Address(c_rarg1, 0)); __ ret(0); return start; }
*** 681,691 **** address generate_atomic_add() { StubCodeMark mark(this, "StubRoutines", "atomic_add"); address start = __ pc(); __ movl(rax, c_rarg0); ! if ( os::is_MP() ) __ lock(); __ xaddl(Address(c_rarg1, 0), c_rarg0); __ addl(rax, c_rarg0); __ ret(0); return start; --- 681,691 ---- address generate_atomic_add() { StubCodeMark mark(this, "StubRoutines", "atomic_add"); address start = __ pc(); __ movl(rax, c_rarg0); ! __ lock(); __ xaddl(Address(c_rarg1, 0), c_rarg0); __ addl(rax, c_rarg0); __ ret(0); return start;
*** 703,713 **** address generate_atomic_add_long() { StubCodeMark mark(this, "StubRoutines", "atomic_add_long"); address start = __ pc(); __ movptr(rax, c_rarg0); // Copy to eax we need a return value anyhow ! if ( os::is_MP() ) __ lock(); __ xaddptr(Address(c_rarg1, 0), c_rarg0); __ addptr(rax, c_rarg0); __ ret(0); return start; --- 703,713 ---- address generate_atomic_add_long() { StubCodeMark mark(this, "StubRoutines", "atomic_add_long"); address start = __ pc(); __ movptr(rax, c_rarg0); // Copy to eax we need a return value anyhow ! __ lock(); __ xaddptr(Address(c_rarg1, 0), c_rarg0); __ addptr(rax, c_rarg0); __ ret(0); return start;
< prev index next >