# HG changeset patch # User coleenp # Date 1349354594 14400 # Node ID bacdc1d5c21c93eab478d7d8b195adf99ecf2671 # Parent ba8fd2fe198b60d9d9b5cac32e277123cec19a6d 6884973: java -XX:Atomics=2 crashes Summary: Remove buggy experimental option Reviewed-by: acorn, coleenp Contributed-by: harold.seigel@oracle.com diff -r ba8fd2fe198b -r bacdc1d5c21c src/cpu/x86/vm/assembler_x86.cpp --- a/src/cpu/x86/vm/assembler_x86.cpp Thu Oct 04 08:38:06 2012 -0400 +++ b/src/cpu/x86/vm/assembler_x86.cpp Thu Oct 04 08:43:14 2012 -0400 @@ -1170,26 +1170,11 @@ // and stores reg into adr if so; otherwise, the value at adr is loaded into rax,. // The ZF is set if the compared values were equal, and cleared otherwise. void Assembler::cmpxchgl(Register reg, Address adr) { // cmpxchg - if (Atomics & 2) { - // caveat: no instructionmark, so this isn't relocatable. - // Emit a synthetic, non-atomic, CAS equivalent. - // Beware. The synthetic form sets all ICCs, not just ZF. - // cmpxchg r,[m] is equivalent to rax, = CAS (m, rax, r) - cmpl(rax, adr); - movl(rax, adr); - if (reg != rax) { - Label L ; - jcc(Assembler::notEqual, L); - movl(adr, reg); - bind(L); - } - } else { - InstructionMark im(this); - prefix(adr, reg); - emit_byte(0x0F); - emit_byte(0xB1); - emit_operand(reg, adr); - } + InstructionMark im(this); + prefix(adr, reg); + emit_byte(0x0F); + emit_byte(0xB1); + emit_operand(reg, adr); } void Assembler::comisd(XMMRegister dst, Address src) { @@ -1513,12 +1498,7 @@ } void Assembler::lock() { - if (Atomics & 1) { - // Emit either nothing, a NOP, or a NOP: prefix - emit_byte(0x90) ; - } else { - emit_byte(0xF0); - } + emit_byte(0xF0); } void Assembler::lzcntl(Register dst, Register src) { diff -r ba8fd2fe198b -r bacdc1d5c21c src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Thu Oct 04 08:38:06 2012 -0400 +++ b/src/share/vm/runtime/globals.hpp Thu Oct 04 08:43:14 2012 -0400 @@ -1066,9 +1066,6 @@ \ product(bool, MonitorInUseLists, false, "Track Monitors for Deflation") \ \ - product(intx, Atomics, 0, \ - "(Unsafe,Unstable) Diagnostic - Controls emission of atomics") \ - \ product(intx, SyncFlags, 0, "(Unsafe,Unstable) Experimental Sync flags" ) \ \ product(intx, SyncVerbose, 0, "(Unstable)" ) \