6884973: java -XX:Atomics=2 crashes

Remove buggy experimental option

Reviewed-by: acorn, coleenp
This commit is contained in:
Harold Seigel 2012-10-04 08:43:14 -04:00 committed by Coleen Phillimore
parent 5a5c90dd1c
commit 284879b3fc
2 changed files with 6 additions and 29 deletions

View file

@ -1170,26 +1170,11 @@ void Assembler::cmpw(Address dst, int imm16) {
// 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::leal(Register dst, Address src) {
}
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) {