Mercurial > hg > graal-compiler
changeset 12725:7b457ecd18c3
AMD64Assembler: remove useless option "Atomic" and make other options final
as reference: bacdc1d5c21c removal of Atomic option in the hotspot assembler
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Fri, 08 Nov 2013 13:52:34 +0100 |
parents | b1e7e4ffead1 |
children | a95336e46474 |
files | graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64AsmOptions.java graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java |
diffstat | 2 files changed, 10 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64AsmOptions.java Fri Nov 08 13:52:00 2013 +0100 +++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64AsmOptions.java Fri Nov 08 13:52:34 2013 +0100 @@ -23,11 +23,9 @@ package com.oracle.graal.asm.amd64; public class AMD64AsmOptions { - - public static int Atomics = 0; - public static boolean UseNormalNop = false; - public static boolean UseAddressNop = true; - public static boolean UseIncDec = true; - public static boolean UseXmmLoadAndClearUpper = true; - public static boolean UseXmmRegToRegMoveAll = true; + public static final boolean UseNormalNop = false; + public static final boolean UseAddressNop = true; + public static final boolean UseIncDec = true; + public static final boolean UseXmmLoadAndClearUpper = true; + public static final boolean UseXmmRegToRegMoveAll = true; }
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java Fri Nov 08 13:52:00 2013 +0100 +++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java Fri Nov 08 13:52:34 2013 +0100 @@ -524,26 +524,10 @@ // and stores reg into adr if so; otherwise, the value at adr is loaded into X86.rax,. // The ZF is set if the compared values were equal, and cleared otherwise. public final void cmpxchgl(Register reg, AMD64Address adr) { // cmpxchg - if ((Atomics & 2) != 0) { - // 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 X86.rax, = CAS (m, X86.rax, r) - cmpl(rax, adr); - movl(rax, adr); - if (reg.equals(rax)) { - Label l = new Label(); - jccb(ConditionFlag.NotEqual, l); - movl(adr, reg); - bind(l); - } - } else { - - prefix(adr, reg); - emitByte(0x0F); - emitByte(0xB1); - emitOperandHelper(reg, adr); - } + prefix(adr, reg); + emitByte(0x0F); + emitByte(0xB1); + emitOperandHelper(reg, adr); } public final void cvtsd2ss(Register dst, AMD64Address src) { @@ -860,12 +844,7 @@ } public final void lock() { - if ((Atomics & 1) != 0) { - // Emit either nothing, a NOP, or a NOP: prefix - emitByte(0x90); - } else { - emitByte(0xF0); - } + emitByte(0xF0); } public final void movapd(Register dst, Register src) {