# HG changeset patch # User Thomas Wuerthinger # Date 1324182246 -3600 # Node ID bc8527f3071c7369b1705a73a9110dfbfb2fed05 # Parent 04d21be7a24f2d0df9aa98f03a3ce98fd0f9b890 Adjust code base to new level of warnings. diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asm/src/com/oracle/max/asm/AbstractAssembler.java --- a/graal/com.oracle.max.asm/src/com/oracle/max/asm/AbstractAssembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asm/src/com/oracle/max/asm/AbstractAssembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ l.patchInstructions(this); } - protected abstract void patchJumpTarget(int branch, int target); + protected abstract void patchJumpTarget(int branch, int jumpTarget); protected final void emitByte(int x) { codeBuffer.emitByte(x); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asm/src/com/oracle/max/asm/Buffer.java --- a/graal/com.oracle.max.asm/src/com/oracle/max/asm/Buffer.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asm/src/com/oracle/max/asm/Buffer.java Sun Dec 18 05:24:06 2011 +0100 @@ -112,9 +112,10 @@ public int emitByte(int b, int pos) { assert NumUtil.isUByte(b); - ensureSize(pos + 1); - data[pos++] = (byte) (b & 0xFF); - return pos; + int newPos = pos + 1; + ensureSize(newPos); + data[pos] = (byte) (b & 0xFF); + return newPos; } public abstract int emitShort(int b, int pos); @@ -135,34 +136,37 @@ @Override public int emitShort(int b, int pos) { assert NumUtil.isUShort(b); + int newPos = pos + 2; ensureSize(pos + 2); - data[pos++] = (byte) ((b >> 8) & 0xFF); - data[pos++] = (byte) (b & 0xFF); - return pos; + data[pos] = (byte) ((b >> 8) & 0xFF); + data[pos + 1] = (byte) (b & 0xFF); + return newPos; } @Override public int emitInt(int b, int pos) { - ensureSize(pos + 4); - data[pos++] = (byte) ((b >> 24) & 0xFF); - data[pos++] = (byte) ((b >> 16) & 0xFF); - data[pos++] = (byte) ((b >> 8) & 0xFF); - data[pos++] = (byte) (b & 0xFF); - return pos; + int newPos = pos + 4; + ensureSize(newPos); + data[pos] = (byte) ((b >> 24) & 0xFF); + data[pos + 1] = (byte) ((b >> 16) & 0xFF); + data[pos + 2] = (byte) ((b >> 8) & 0xFF); + data[pos + 3] = (byte) (b & 0xFF); + return newPos; } @Override public int emitLong(long b, int pos) { - ensureSize(pos + 8); - data[pos++] = (byte) ((b >> 56) & 0xFF); - data[pos++] = (byte) ((b >> 48) & 0xFF); - data[pos++] = (byte) ((b >> 40) & 0xFF); - data[pos++] = (byte) ((b >> 32) & 0xFF); - data[pos++] = (byte) ((b >> 24) & 0xFF); - data[pos++] = (byte) ((b >> 16) & 0xFF); - data[pos++] = (byte) ((b >> 8) & 0xFF); - data[pos++] = (byte) (b & 0xFF); - return pos; + int newPos = pos + 8; + ensureSize(newPos); + data[pos] = (byte) ((b >> 56) & 0xFF); + data[pos + 1] = (byte) ((b >> 48) & 0xFF); + data[pos + 2] = (byte) ((b >> 40) & 0xFF); + data[pos + 3] = (byte) ((b >> 32) & 0xFF); + data[pos + 4] = (byte) ((b >> 24) & 0xFF); + data[pos + 5] = (byte) ((b >> 16) & 0xFF); + data[pos + 6] = (byte) ((b >> 8) & 0xFF); + data[pos + 7] = (byte) (b & 0xFF); + return newPos; } @Override @@ -186,34 +190,37 @@ @Override public int emitShort(int b, int pos) { assert NumUtil.isUShort(b); - ensureSize(pos + 2); - data[pos++] = (byte) (b & 0xFF); - data[pos++] = (byte) ((b >> 8) & 0xFF); - return pos; + int newPos = pos + 2; + ensureSize(newPos); + data[pos] = (byte) (b & 0xFF); + data[pos + 1] = (byte) ((b >> 8) & 0xFF); + return newPos; } @Override public int emitInt(int b, int pos) { - ensureSize(pos + 4); - data[pos++] = (byte) (b & 0xFF); - data[pos++] = (byte) ((b >> 8) & 0xFF); - data[pos++] = (byte) ((b >> 16) & 0xFF); - data[pos++] = (byte) ((b >> 24) & 0xFF); - return pos; + int newPos = pos + 4; + ensureSize(newPos); + data[pos] = (byte) (b & 0xFF); + data[pos + 1] = (byte) ((b >> 8) & 0xFF); + data[pos + 2] = (byte) ((b >> 16) & 0xFF); + data[pos + 3] = (byte) ((b >> 24) & 0xFF); + return newPos; } @Override public int emitLong(long b, int pos) { - ensureSize(pos + 8); - data[pos++] = (byte) (b & 0xFF); - data[pos++] = (byte) ((b >> 8) & 0xFF); - data[pos++] = (byte) ((b >> 16) & 0xFF); - data[pos++] = (byte) ((b >> 24) & 0xFF); - data[pos++] = (byte) ((b >> 32) & 0xFF); - data[pos++] = (byte) ((b >> 40) & 0xFF); - data[pos++] = (byte) ((b >> 48) & 0xFF); - data[pos++] = (byte) ((b >> 56) & 0xFF); - return pos; + int newPos = pos + 8; + ensureSize(newPos); + data[pos] = (byte) (b & 0xFF); + data[pos + 1] = (byte) ((b >> 8) & 0xFF); + data[pos + 2] = (byte) ((b >> 16) & 0xFF); + data[pos + 3] = (byte) ((b >> 24) & 0xFF); + data[pos + 4] = (byte) ((b >> 32) & 0xFF); + data[pos + 5] = (byte) ((b >> 40) & 0xFF); + data[pos + 6] = (byte) ((b >> 48) & 0xFF); + data[pos + 7] = (byte) ((b >> 56) & 0xFF); + return newPos; } @Override diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asm/src/com/oracle/max/asm/Label.java --- a/graal/com.oracle.max.asm/src/com/oracle/max/asm/Label.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asm/src/com/oracle/max/asm/Label.java Sun Dec 18 05:24:06 2011 +0100 @@ -35,7 +35,7 @@ * These instructions need to be patched when the label is bound * using the {@link #patchInstructions(AbstractAssembler)} method. */ - private ArrayList patchPositions = new ArrayList(4); + private ArrayList patchPositions = new ArrayList<>(4); /** * Returns the position of this label in the code buffer. diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/AMD64Assembler.java --- a/graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/AMD64Assembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/AMD64Assembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -688,10 +688,10 @@ emitOperandHelper(rax, dst); } - public final void jcc(ConditionFlag cc, int target, boolean forceDisp32) { + public final void jcc(ConditionFlag cc, int jumpTarget, boolean forceDisp32) { int shortSize = 2; int longSize = 6; - long disp = target - codeBuffer.position(); + long disp = jumpTarget - codeBuffer.position(); if (!forceDisp32 && isByte(disp - shortSize)) { // 0111 tttn #8-bit disp emitByte(0x70 | cc.value); @@ -745,10 +745,10 @@ emitOperandHelper(rsp, adr); } - public final void jmp(int target, boolean forceDisp32) { + public final void jmp(int jumpTarget, boolean forceDisp32) { int shortSize = 2; int longSize = 5; - long disp = target - codeBuffer.position(); + long disp = jumpTarget - codeBuffer.position(); if (!forceDisp32 && isByte(disp - shortSize)) { emitByte(0xEB); emitByte((int) ((disp - shortSize) & 0xFF)); @@ -1278,7 +1278,8 @@ nop(1); } - public void nop(int i) { + public void nop(int count) { + int i = count; if (AsmOptions.UseNormalNop) { assert i > 0 : " "; // The fancy nops aren't currently recognized by debuggers making it a @@ -2123,7 +2124,7 @@ int prefixAndEncode(int regEnc, boolean byteinst) { if (regEnc >= 8) { emitByte(Prefix.REXB); - regEnc -= 8; + return regEnc - 8; } else if (byteinst && regEnc >= 4) { emitByte(Prefix.REX); } @@ -2133,18 +2134,20 @@ int prefixqAndEncode(int regEnc) { if (regEnc < 8) { emitByte(Prefix.REXW); + return regEnc; } else { emitByte(Prefix.REXWB); - regEnc -= 8; + return regEnc - 8; } - return regEnc; } int prefixAndEncode(int dstEnc, int srcEnc) { return prefixAndEncode(dstEnc, srcEnc, false); } - int prefixAndEncode(int dstEnc, int srcEnc, boolean byteinst) { + int prefixAndEncode(int dstEncoding, int srcEncoding, boolean byteinst) { + int srcEnc = srcEncoding; + int dstEnc = dstEncoding; if (dstEnc < 8) { if (srcEnc >= 8) { emitByte(Prefix.REXB); @@ -2172,7 +2175,9 @@ * @param rmEnc the encoding of the r/m part of the ModRM-Byte * @return the lower 6 bits of the ModRM-Byte that should be emitted */ - private int prefixqAndEncode(int regEnc, int rmEnc) { + private int prefixqAndEncode(int regEncoding, int rmEncoding) { + int rmEnc = rmEncoding; + int regEnc = regEncoding; if (regEnc < 8) { if (rmEnc < 8) { emitByte(Prefix.REXW); @@ -2929,8 +2934,7 @@ emitByte(0xC8); // appended: emitByte(imm16 & 0xff); - imm16 >>= 8; - emitByte(imm16 & 0xff); + emitByte((imm16 >> 8) & 0xff); emitByte(imm8); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/X86InstructionDecoder.java --- a/graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/X86InstructionDecoder.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/X86InstructionDecoder.java Sun Dec 18 05:24:06 2011 +0100 @@ -499,9 +499,9 @@ assert code[pos + 2] == 0; assert code[pos + 3] == 0; - code[pos++] = (byte) (offset & 0xFF); - code[pos++] = (byte) ((offset >> 8) & 0xFF); - code[pos++] = (byte) ((offset >> 16) & 0xFF); - code[pos++] = (byte) ((offset >> 24) & 0xFF); + code[pos] = (byte) (offset & 0xFF); + code[pos + 1] = (byte) ((offset >> 8) & 0xFF); + code[pos + 2] = (byte) ((offset >> 16) & 0xFF); + code[pos + 3] = (byte) ((offset >> 24) & 0xFF); } } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/Assembler.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/Assembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/Assembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -31,6 +31,7 @@ /** * Assembler base class. */ +@SuppressWarnings("unused") public abstract class Assembler { private final Directives directives; @@ -276,8 +277,8 @@ boundLabels.add(label); } - private final List assembledObjects = new LinkedList(); - private final List mutableAssembledObjects = new LinkedList(); + private final List assembledObjects = new LinkedList<>(); + private final List mutableAssembledObjects = new LinkedList<>(); private int potentialExpansionSize; diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/AssemblyException.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/AssemblyException.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/AssemblyException.java Sun Dec 18 05:24:06 2011 +0100 @@ -27,6 +27,8 @@ */ public class AssemblyException extends Exception { + private static final long serialVersionUID = -633368746009467839L; + public AssemblyException(String message) { super(message); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/InlineDataDecoder.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/InlineDataDecoder.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/InlineDataDecoder.java Sun Dec 18 05:24:06 2011 +0100 @@ -69,7 +69,7 @@ } public InlineDataDecoder(List descriptors) { - positionToDescriptorMap = new TreeMap(); + positionToDescriptorMap = new TreeMap<>(); for (InlineDataDescriptor descriptor : descriptors) { positionToDescriptorMap.put(descriptor.startPosition(), descriptor); } @@ -86,7 +86,7 @@ final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(encodedDescriptors); final DataInputStream dataInputStream = new DataInputStream(byteArrayInputStream); final int numberOfEntries = dataInputStream.readInt(); - positionToDescriptorMap = new TreeMap(); + positionToDescriptorMap = new TreeMap<>(); for (int i = 0; i < numberOfEntries; ++i) { final Tag tag = InlineDataDescriptor.Tag.VALUES.get(dataInputStream.readByte()); final InlineDataDescriptor inlineDataDescriptor = tag.decode(dataInputStream); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/InlineDataRecorder.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/InlineDataRecorder.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/InlineDataRecorder.java Sun Dec 18 05:24:06 2011 +0100 @@ -43,7 +43,7 @@ public void add(InlineDataDescriptor inlineData) { if (inlineData.size() != 0) { if (descriptors == null) { - descriptors = new ArrayList(); + descriptors = new ArrayList<>(); } descriptors.add(inlineData); normalized = false; @@ -92,8 +92,8 @@ private void normalize() { if (descriptors != null && !normalized) { - final SortedSet sortedEntries = new TreeSet(descriptors); - final List entries = new ArrayList(descriptors.size()); + final SortedSet sortedEntries = new TreeSet<>(descriptors); + final List entries = new ArrayList<>(descriptors.size()); int lastEnd = 0; for (InlineDataDescriptor inlineDataDescriptor : sortedEntries) { if (inlineDataDescriptor.startPosition() >= lastEnd) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64BaseRegister32.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64BaseRegister32.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64BaseRegister32.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ R14D_BASE, R15D_BASE; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64BaseRegister32.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64BaseRegister32.class); public static AMD64BaseRegister32 from(GeneralRegister generalRegister) { return ENUMERATOR.get(generalRegister.id()); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64BaseRegister64.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64BaseRegister64.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64BaseRegister64.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ R14_BASE, R15_BASE; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64BaseRegister64.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64BaseRegister64.class); public static AMD64BaseRegister64 from(GeneralRegister generalRegister) { return ENUMERATOR.get(generalRegister.id()); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister16.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister16.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister16.java Sun Dec 18 05:24:06 2011 +0100 @@ -34,7 +34,7 @@ AX, CX, DX, BX, SP, BP, SI, DI, R8W, R9W, R10W, R11W, R12W, R13W, R14W, R15W; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64GeneralRegister16.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64GeneralRegister16.class); public static AMD64GeneralRegister16 from(GeneralRegister generalRegister) { return ENUMERATOR.get(generalRegister.id()); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister32.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister32.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister32.java Sun Dec 18 05:24:06 2011 +0100 @@ -34,7 +34,7 @@ EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI, R8D, R9D, R10D, R11D, R12D, R13D, R14D, R15D; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64GeneralRegister32.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64GeneralRegister32.class); public static AMD64GeneralRegister32 from(GeneralRegister generalRegister) { return ENUMERATOR.get(generalRegister.id()); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister64.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister64.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister64.java Sun Dec 18 05:24:06 2011 +0100 @@ -34,7 +34,7 @@ RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8, R9, R10, R11, R12, R13, R14, R15; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64GeneralRegister64.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64GeneralRegister64.class); public static AMD64GeneralRegister64 from(GeneralRegister generalRegister) { return ENUMERATOR.get(generalRegister.id()); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister8.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister8.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64GeneralRegister8.java Sun Dec 18 05:24:06 2011 +0100 @@ -51,7 +51,7 @@ DH(6, true), BH(7, true); - public static final Enumerator ENUMERATOR = new Enumerator(AMD64GeneralRegister8.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64GeneralRegister8.class); private final int value; private final boolean isHighByte; diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndexRegister32.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndexRegister32.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndexRegister32.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ R14D_INDEX, R15D_INDEX; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64IndexRegister32.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64IndexRegister32.class); public static AMD64IndexRegister32 from(GeneralRegister generalRegister) { int ordinal = generalRegister.id(); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndexRegister64.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndexRegister64.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndexRegister64.java Sun Dec 18 05:24:06 2011 +0100 @@ -92,5 +92,5 @@ return RSI_INDEX; } - public static final Enumerator ENUMERATOR = new Enumerator(AMD64IndexRegister64.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64IndexRegister64.class); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndirectRegister32.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndirectRegister32.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndirectRegister32.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ R14D_INDIRECT, R15D_INDIRECT; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64IndirectRegister32.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64IndirectRegister32.class); public static AMD64IndirectRegister32 from(GeneralRegister generalRegister) { return ENUMERATOR.get(generalRegister.id()); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndirectRegister64.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndirectRegister64.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64IndirectRegister64.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ R14_INDIRECT, R15_INDIRECT; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64IndirectRegister64.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64IndirectRegister64.class); public static AMD64IndirectRegister64 from(GeneralRegister generalRegister) { return ENUMERATOR.get(generalRegister.id()); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64XMMComparison.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64XMMComparison.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64XMMComparison.java Sun Dec 18 05:24:06 2011 +0100 @@ -61,5 +61,5 @@ return LESS_THAN_OR_EQUAL; } - public static final Enumerator ENUMERATOR = new Enumerator(AMD64XMMComparison.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64XMMComparison.class); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64XMMRegister.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64XMMRegister.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/AMD64XMMRegister.java Sun Dec 18 05:24:06 2011 +0100 @@ -31,7 +31,7 @@ XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15; - public static final Enumerator ENUMERATOR = new Enumerator(AMD64XMMRegister.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(AMD64XMMRegister.class); public int value() { return ordinal(); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/complete/AMD64LabelAssembler.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/complete/AMD64LabelAssembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/complete/AMD64LabelAssembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -27,6 +27,7 @@ import com.sun.max.asm.amd64.*; import com.sun.max.asm.x86.*; +@SuppressWarnings("unused") public class AMD64LabelAssembler extends AMD64RawAssembler { public AMD64LabelAssembler(long startAddress) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/complete/AMD64RawAssembler.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/complete/AMD64RawAssembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/amd64/complete/AMD64RawAssembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -27,6 +27,7 @@ import com.sun.max.asm.amd64.*; import com.sun.max.asm.x86.*; +@SuppressWarnings("all") public class AMD64RawAssembler extends AbstractAMD64Assembler { public AMD64RawAssembler(long startAddress) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/arm/PSR.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/arm/PSR.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/arm/PSR.java Sun Dec 18 05:24:06 2011 +0100 @@ -34,7 +34,7 @@ CPSR, SPSR; - public static final Enumerator ENUMERATOR = new Enumerator(PSR.class); + public static final Enumerator ENUMERATOR = new Enumerator<>(PSR.class); public int value() { return ordinal(); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/AddressMapper.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/AddressMapper.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/AddressMapper.java Sun Dec 18 05:24:06 2011 +0100 @@ -36,8 +36,8 @@ private int serial; private int unnamedLabels; - private final Map objectMap = new HashMap(); - private final Map labelMap = new TreeMap(new Comparator() { + private final Map objectMap = new HashMap<>(); + private final Map labelMap = new TreeMap<>(new Comparator() { public int compare(ImmediateArgument o1, ImmediateArgument o2) { final long l1 = o1.asLong(); final long l2 = o2.asLong(); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/Disassembler.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/Disassembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/Disassembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -39,7 +39,7 @@ */ public abstract class Disassembler { - private static final Map disassemblerConstructors = new HashMap(); + private static final Map disassemblerConstructors = new HashMap<>(); /** * Gets a constructor for instantiating a disassembler for a given {@linkplain ISA ISA} @@ -136,11 +136,6 @@ } } - /** - * Turn on the following flag in order to get debugging output. - */ - public static final boolean TRACE = false; - private final ImmediateArgument startAddress; private final Endianness endianness; @@ -221,7 +216,7 @@ } case JUMP_TABLE32: { final JumpTable32 jumpTable32 = (JumpTable32) descriptor; - final List result = new ArrayList(jumpTable32.numberOfEntries()); + final List result = new ArrayList<>(jumpTable32.numberOfEntries()); int caseValue = jumpTable32.low(); final InputStream stream = new ByteArrayInputStream(inlineData.data()); @@ -267,7 +262,7 @@ } case LOOKUP_TABLE32: { final LookupTable32 lookupTable32 = (LookupTable32) descriptor; - final List result = new ArrayList(lookupTable32.numberOfEntries()); + final List result = new ArrayList<>(lookupTable32.numberOfEntries()); final InputStream stream = new ByteArrayInputStream(inlineData.data()); final int lookupTable = startPosition; @@ -422,6 +417,6 @@ public abstract ImmediateArgument addressForRelativeAddressing(DisassembledInstruction di); public abstract String mnemonic(DisassembledInstruction di); - public abstract String operandsToString(DisassembledInstruction di, AddressMapper addressMapper); - public abstract String toString(DisassembledInstruction di, AddressMapper addressMapper); + public abstract String operandsToString(DisassembledInstruction di, AddressMapper printAddressMapper); + public abstract String toString(DisassembledInstruction di, AddressMapper printAddressMapper); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/DisassemblyPrinter.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/DisassemblyPrinter.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/DisassemblyPrinter.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ * @param outputStream the stream to which the disassembly wil be printed * @param disassembledObjects the disassembled objects to be printed */ - public void print(Disassembler disassembler, OutputStream outputStream, List disassembledObjects) throws IOException { + public void print(Disassembler disassembler, OutputStream outputStream, List disassembledObjects) { final PrintStream stream = outputStream instanceof PrintStream ? (PrintStream) outputStream : new PrintStream(outputStream); final int nOffsetChars = Integer.toString(Utils.last(disassembledObjects).startPosition()).length(); final int nLabelChars = disassembler.addressMapper().maximumLabelNameLength(); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/risc/OpcodeMaskGroup.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/risc/OpcodeMaskGroup.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/risc/OpcodeMaskGroup.java Sun Dec 18 05:24:06 2011 +0100 @@ -43,17 +43,17 @@ return mask; } - private final Set templates = new HashSet(); + private final Set templates = new HashSet<>(); - private final IntHashMap> templatesForOpcodes = new IntHashMap>(); - private final List empty = new LinkedList(); + private final IntHashMap> templatesForOpcodes = new IntHashMap<>(); + private final List empty = new LinkedList<>(); public void add(RiscTemplate template) { assert template.opcodeMask() == mask; templates.add(template); List templatesForOpcode = templatesForOpcodes.get(template.opcode()); if (templatesForOpcode == null) { - templatesForOpcode = new LinkedList(); + templatesForOpcode = new LinkedList<>(); templatesForOpcodes.put(template.opcode(), templatesForOpcode); } templatesForOpcode.add(template); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/risc/RiscDisassembler.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/risc/RiscDisassembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/risc/RiscDisassembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -24,7 +24,6 @@ import java.io.*; import java.util.*; -import java.util.Arrays; import com.sun.max.*; import com.sun.max.asm.*; @@ -63,8 +62,8 @@ * @return the decoded arguments for each operand or null if at least one operand has * an invalid value in the encoded instruction */ - private List disassemble(int instruction, RiscTemplate template) { - final List arguments = new ArrayList(); + private static List disassemble(int instruction, RiscTemplate template) { + final List arguments = new ArrayList<>(); for (OperandField operandField : template.parameters()) { final Argument argument = operandField.disassemble(instruction); if (argument == null) { @@ -75,7 +74,7 @@ return arguments; } - private boolean isLegalArgumentList(RiscTemplate template, List arguments) { + private static boolean isLegalArgumentList(RiscTemplate template, List arguments) { final List constraints = template.instructionDescription().constraints(); for (InstructionConstraint constraint : constraints) { if (!(constraint.check(template, arguments))) { @@ -100,7 +99,7 @@ @Override public List scanOne0(BufferedInputStream stream) throws IOException, AssemblyException { final int instruction = endianness().readInt(stream); - final List result = new LinkedList(); + final List result = new LinkedList<>(); final byte[] instructionBytes = endianness().toBytes(instruction); for (SpecificityGroup specificityGroup : assembly().specificityGroups()) { for (OpcodeMaskGroup opcodeMaskGroup : specificityGroup.opcodeMaskGroups()) { @@ -145,7 +144,7 @@ @Override public List scan0(BufferedInputStream stream) throws IOException, AssemblyException { - final List result = new ArrayList(); + final List result = new ArrayList<>(); try { while (true) { @@ -178,6 +177,7 @@ return new RiscTemplate(instructionDescription); } + @SuppressWarnings("unused") private final ImmediateOperandField[] byteFields; private ImmediateOperandField createByteField(int index) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/x86/X86Disassembler.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/x86/X86Disassembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/x86/X86Disassembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -162,15 +162,11 @@ byteValue = stream.read(); } while (byteValue >= 0); - if (TRACE && !justSkip) { - System.out.println("Scanned header: " + header); - } - return justSkip ? null : header; } private List scanArguments(BufferedInputStream stream, X86Template template, X86InstructionHeader header, byte modRMByte, byte sibByte) throws IOException { - final List arguments = new ArrayList(); + final List arguments = new ArrayList<>(); final byte rexByte = (header.rexPrefix != null) ? header.rexPrefix.byteValue() : 0; for (X86Parameter parameter : template.parameters()) { int value = 0; @@ -249,7 +245,7 @@ return arguments; } - private int getModVariantParameterIndex(X86Template template, byte modRMByte, byte sibByte) { + private static int getModVariantParameterIndex(X86Template template, byte modRMByte, byte sibByte) { if (template.modCase() == X86TemplateContext.ModCase.MOD_0 && X86Field.MOD.extract(modRMByte) != X86TemplateContext.ModCase.MOD_0.value()) { switch (template.rmCase()) { case NORMAL: { @@ -357,7 +353,7 @@ // Remove the mod variant argument final Argument modVariantArgument = arguments.get(modVariantParameterIndex); - final List result = new ArrayList(); + final List result = new ArrayList<>(); for (Argument argument : arguments) { if (modVariantArgument != argument) { result.add(argument); @@ -367,19 +363,14 @@ } if (!(Utils.indexOfIdentical(arguments, null) != -1)) { byte[] bytes; - if (true) { - final Assembler assembler = createAssembler(currentPosition); - try { - assembly.assemble(assembler, template, arguments); - } catch (AssemblyException e) { - // try the next template - continue; - } - bytes = assembler.toByteArray(); - } else { // TODO: does not work yet - final X86TemplateAssembler templateAssembler = new X86TemplateAssembler(template, addressWidth()); - bytes = templateAssembler.assemble(arguments); + final Assembler assembler = createAssembler(currentPosition); + try { + assembly.assemble(assembler, template, arguments); + } catch (AssemblyException e) { + // try the next template + continue; } + bytes = assembler.toByteArray(); if (bytes != null) { stream.reset(); if (Streams.startsWith(stream, bytes)) { @@ -416,17 +407,15 @@ return disassembledInstruction; } } - if (INLINE_INVALID_INSTRUCTIONS_AS_BYTES) { - stream.reset(); - final int size = 1; - final byte[] data = new byte[size]; - Streams.readFully(stream, data); - final InlineData inlineData = new InlineData(currentPosition, data); - final DisassembledData disassembledData = createDisassembledDataObjects(inlineData).iterator().next(); - currentPosition += size; - return disassembledData; - } - throw new AssemblyException("unknown instruction"); + + stream.reset(); + final int size = 1; + final byte[] data = new byte[size]; + Streams.readFully(stream, data); + final InlineData inlineData = new InlineData(currentPosition, data); + final DisassembledData disassembledData = createDisassembledDataObjects(inlineData).iterator().next(); + currentPosition += size; + return disassembledData; } /** @@ -444,11 +433,9 @@ } private static final int MORE_THAN_ANY_INSTRUCTION_LENGTH = 100; - private static final boolean INLINE_INVALID_INSTRUCTIONS_AS_BYTES = true; - @Override public List scanOne0(BufferedInputStream stream) throws IOException, AssemblyException { - final List disassembledObjects = new ArrayList(); + final List disassembledObjects = new ArrayList<>(); stream.mark(MORE_THAN_ANY_INSTRUCTION_LENGTH); final X86InstructionHeader header = scanInstructionHeader(stream, false); if (header == null) { @@ -460,8 +447,8 @@ @Override public List scan0(BufferedInputStream stream) throws IOException, AssemblyException { - final SortedSet knownGoodCodePositions = new TreeSet(); - final List result = new ArrayList(); + final SortedSet knownGoodCodePositions = new TreeSet<>(); + final List result = new ArrayList<>(); boolean processingKnownValidCode = true; while (true) { @@ -518,7 +505,7 @@ } } - private boolean isRelativeJumpForward(DisassembledInstruction instruction) { + private static boolean isRelativeJumpForward(DisassembledInstruction instruction) { return instruction.template().internalName().equals("jmp") && // check if this is a jump instruction... instruction.arguments().size() == 1 && // that accepts one operand... ((Utils.first(instruction.arguments()) instanceof Immediate32Argument && // which is a relative offset... @@ -539,11 +526,11 @@ @Override public String operandsToString(DisassembledInstruction di, AddressMapper addressMapper) { - final LinkedList operandQueue = new LinkedList(); + final LinkedList operandQueue = new LinkedList<>(); for (Operand operand : di.template().operands()) { operandQueue.add((X86Operand) operand); } - final LinkedList argumentQueue = new LinkedList(di.arguments()); + final LinkedList argumentQueue = new LinkedList<>(di.arguments()); String result = ""; String separator = ""; while (!operandQueue.isEmpty()) { @@ -562,7 +549,7 @@ return Strings.padLengthWithSpaces(mnemonic(di), 8) + s; } - private String getSibIndexAndScale(Queue operands, Queue arguments) { + private static String getSibIndexAndScale(Queue operands, Queue arguments) { X86Parameter parameter = (X86Parameter) operands.remove(); assert parameter.place() == ParameterPlace.SIB_INDEX || parameter.place() == ParameterPlace.SIB_INDEX_REXX; final String result = arguments.remove().disassembledValue(); @@ -575,7 +562,7 @@ return result + " * " + scale.disassembledValue(); } - private String addition(Argument argument, String space) { + private static String addition(Argument argument, String space) { assert argument instanceof ImmediateArgument; final long value = argument.asLong(); final String s = Long.toString(value); @@ -585,7 +572,7 @@ return "-" + space + s.substring(1); } - private String getOperand(DisassembledInstruction di, Queue operands, Queue arguments, AddressMapper addressMapper) { + private static String getOperand(DisassembledInstruction di, Queue operands, Queue arguments, AddressMapper addressMapper) { final X86Operand operand = operands.remove(); if (operand instanceof ImplicitOperand) { final ImplicitOperand implicitOperand = (ImplicitOperand) operand; diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/x86/X86InstructionHeader.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/x86/X86InstructionHeader.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/dis/x86/X86InstructionHeader.java Sun Dec 18 05:24:06 2011 +0100 @@ -92,12 +92,12 @@ } public static Map> createMapping(Assembly assembly, WordWidth addressWidth) { - final Map> result = new HashMap>(); + final Map> result = new HashMap<>(); for (X86Template template : assembly.templates()) { X86InstructionHeader header = new X86InstructionHeader(addressWidth, template); List matchingTemplates = result.get(header); if (matchingTemplates == null) { - matchingTemplates = new LinkedList(); + matchingTemplates = new LinkedList<>(); result.put(header, matchingTemplates); } matchingTemplates.add(template); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/AssemblerGenerator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/AssemblerGenerator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/AssemblerGenerator.java Sun Dec 18 05:24:06 2011 +0100 @@ -118,17 +118,17 @@ } - private List filterTemplates(List templates) { + private List filterTemplates(List templateList) { if (!generateRedundantInstructionsOption.getValue()) { - final List result = new LinkedList(); - for (Template_Type template : templates) { + final List result = new LinkedList<>(); + for (Template_Type template : templateList) { if (!template.isRedundant()) { result.add(template); } } return result; } - return templates; + return templateList; } /** @@ -143,8 +143,8 @@ templates = filterTemplates(assembly().templates()); labelTemplates = filterTemplates(assembly().labelTemplates()); } else { - final List newTemplates = new ArrayList(); - final List newLabelTemplates = new ArrayList(); + final List newTemplates = new ArrayList<>(); + final List newLabelTemplates = new ArrayList<>(); Class assemberInterface = null; try { @@ -153,7 +153,7 @@ } catch (ClassNotFoundException e) { throw ProgramError.unexpected("The assembler interface class " + assemblerInterfaceName + " must be on the class path"); } - final Set assemblerInterfaceMethods = new HashSet(); + final Set assemblerInterfaceMethods = new HashSet<>(); for (Method assemblerInterfaceMethod : assemberInterface.getDeclaredMethods()) { assemblerInterfaceMethods.add(new MethodKey(assemblerInterfaceMethod)); } @@ -213,7 +213,7 @@ return new File(outputDirectoryOption.getValue(), className.replace('.', File.separatorChar) + ".java").getAbsoluteFile(); } - protected final String formatParameterList(String separator, List parameters, boolean typesOnly) { + protected static final String formatParameterList(String separator, List parameters, boolean typesOnly) { String sep = separator; final StringBuilder sb = new StringBuilder(); for (Parameter parameter : parameters) { @@ -239,6 +239,7 @@ /** * Prints the source code for support methods that are used by the methods printed by {@link #printMethod(IndentWriter, Template)}. + * @param writer * * @return the number of subroutines printed */ @@ -255,7 +256,7 @@ */ public Set getImportPackages(String className, Iterable templateList) { final String outputPackage = getPackageName(className); - final Set packages = new TreeSet(); + final Set packages = new TreeSet<>(); packages.add(getPackageName(AssemblyException.class)); packages.add(getPackageName(Label.class)); for (Template_Type template : templateList) { @@ -288,6 +289,7 @@ * and the logic for decoding the bit width of a {@link Label} value may be generated in a single assembler method. *

* The default implementation of this method returns {@code false}. + * @param labelTemplate */ protected boolean omitLabelTemplate(Template_Type labelTemplate) { return false; @@ -296,6 +298,7 @@ /** * Gets a reference to the architecture manual section describing the given template. The * returned string should conform to the format of the {@code @see} Javadoc tag. + * @param template */ protected String getJavadocManualReference(Template_Type template) { return null; @@ -308,6 +311,7 @@ * @param extraLinks * a sequence to which extra javadoc links should be appended */ + @SuppressWarnings("unused") protected void printExtraMethodJavadoc(IndentWriter writer, Template_Type template, List extraLinks, boolean forLabelAssemblerMethod) { } @@ -319,7 +323,7 @@ * @param template the template from which the assembler method is generated */ protected void printMethodJavadoc(IndentWriter writer, Template_Type template, boolean forLabelAssemblerMethod) { - final List extraLinks = new LinkedList(); + final List extraLinks = new LinkedList<>(); final List parameters = getParameters(template, forLabelAssemblerMethod); writer.println("/**"); writer.println(" * Pseudo-external assembler syntax: {@code " + template.externalName() + externalMnemonicSuffixes(parameters) + " }" + externalParameters(parameters)); @@ -327,7 +331,7 @@ final boolean printExampleInstruction = true; if (printExampleInstruction) { - final List arguments = new ArrayList(); + final List arguments = new ArrayList<>(); final AddressMapper addressMapper = new AddressMapper(); for (Parameter p : template.parameters()) { final Argument exampleArg = p.getExampleArgument(); @@ -360,7 +364,7 @@ } printExtraMethodJavadoc(writer, template, extraLinks, forLabelAssemblerMethod); - final List constraints = new ArrayList(template.instructionDescription().specifications().size()); + final List constraints = new ArrayList<>(template.instructionDescription().specifications().size()); for (Object s : template.instructionDescription().specifications()) { if (s instanceof InstructionConstraint) { constraints.add((InstructionConstraint) s); @@ -394,7 +398,7 @@ protected abstract DisassembledInstruction generateExampleInstruction(Template_Type template, List arguments) throws AssemblyException; - private String externalParameters(List< ? extends Parameter> parameters) { + private static String externalParameters(List< ? extends Parameter> parameters) { final StringBuilder sb = new StringBuilder(); boolean first = true; for (Parameter parameter : parameters) { @@ -409,7 +413,7 @@ return sb.toString(); } - private String externalMnemonicSuffixes(List< ? extends Parameter> parameters) { + private static String externalMnemonicSuffixes(List< ? extends Parameter> parameters) { final StringBuilder sb = new StringBuilder(); for (Parameter parameter : parameters) { if (ExternalMnemonicSuffixArgument.class.isAssignableFrom(parameter.type())) { @@ -448,7 +452,7 @@ writer.indent(); int codeLineCount = 0; - final Map instructionDescriptions = new HashMap(); + final Map instructionDescriptions = new HashMap<>(); int maxTemplatesPerDescription = 0; int i = 0; for (Template_Type template : templateList) { @@ -494,7 +498,7 @@ final Class> type = null; return Utils.cast(type, template.parameters()); } - final List parameters = new ArrayList(template.parameters()); + final List parameters = new ArrayList<>(template.parameters()); parameters.set(template.labelParameterIndex(), LabelParameter.LABEL); return parameters; } @@ -665,7 +669,7 @@ labelMethodHelperClasses.add(stringWriter.toString()); } - private final List labelMethodHelperClasses = new ArrayList(); + private final List labelMethodHelperClasses = new ArrayList<>(); private void printLabelMethodHelperClass( IndentWriter writer, @@ -765,7 +769,7 @@ if (rawAssemblerMethodsUpdated || labelAssemblerMethodsUpdated) { System.out.println("modified: " + getSourceFileFor(rawAssemblerClassName)); if (!ToolChain.compile(AssemblerGenerator.class, rawAssemblerClassName)) { - List allTemplates = new ArrayList(templates()); + List allTemplates = new ArrayList<>(templates()); allTemplates.addAll(labelTemplates()); throw ProgramError.unexpected("compilation failed for: " + rawAssemblerClassName + "[Maybe missing an import statement for one of the following packages: " + diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/Assembly.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/Assembly.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/Assembly.java Sun Dec 18 05:24:06 2011 +0100 @@ -65,7 +65,7 @@ public final List labelTemplates() { if (labelTemplates == null) { - labelTemplates = new LinkedList(); + labelTemplates = new LinkedList<>(); for (Template_Type template : templates()) { if (!template.isRedundant() && template.labelParameterIndex() >= 0) { labelTemplates.add(template); @@ -77,7 +77,7 @@ public abstract BitRangeOrder bitRangeEndianness(); - private Object getBoxedJavaValue(Argument argument) { + private static Object getBoxedJavaValue(Argument argument) { if (argument instanceof ImmediateArgument) { final ImmediateArgument immediateArgument = (ImmediateArgument) argument; return immediateArgument.boxedJavaValue(); @@ -85,7 +85,7 @@ return argument; } - public final String createMethodCallString(Template template, List argumentList) { + public static final String createMethodCallString(Template template, List argumentList) { assert argumentList.size() == template.parameters().size(); String call = template.assemblerMethodName() + "("; for (int i = 0; i < argumentList.size(); i++) { @@ -94,7 +94,7 @@ return call + ")"; } - private Method getAssemblerMethod(Assembler assembler, Template template, Class[] parameterTypes) throws NoSuchAssemblerMethodError { + private static Method getAssemblerMethod(Assembler assembler, Template template, Class[] parameterTypes) throws NoSuchAssemblerMethodError { try { return assembler.getClass().getMethod(template.assemblerMethodName(), parameterTypes); } catch (NoSuchMethodException e) { @@ -102,7 +102,7 @@ } } - private Method getAssemblerMethod(Assembler assembler, Template template, List arguments) throws NoSuchAssemblerMethodError { + private static Method getAssemblerMethod(Assembler assembler, Template template, List arguments) throws NoSuchAssemblerMethodError { final Class[] parameterTypes = template.parameterTypes(); final int index = template.labelParameterIndex(); if (index >= 0 && arguments.get(index) instanceof Label) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/AssemblyTester.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/AssemblyTester.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/AssemblyTester.java Sun Dec 18 05:24:06 2011 +0100 @@ -228,7 +228,7 @@ if (argumentRange == null || !argumentRange.appliesInternally()) { testArgumentIterators[i] = argumentsIterable.iterator(); } else { - testArgumentIterators[i] = new FilterIterator(argumentsIterable.iterator(), new Predicate() { + testArgumentIterators[i] = new FilterIterator<>(argumentsIterable.iterator(), new Predicate() { public boolean evaluate(Argument argument) { return argumentRange.includes(argument); } @@ -283,7 +283,7 @@ private static final String SOURCE_EXTENSION = ".s"; private static final String BINARY_EXTENSION = ".o"; - private boolean findExcludedDisassemblerTestArgument(List parameters, List arguments) { + private static boolean findExcludedDisassemblerTestArgument(List parameters, List arguments) { for (int i = 0; i < parameters.size(); i++) { if (parameters.get(i).excludedDisassemblerTestArguments().contains(arguments.get(i))) { return true; @@ -292,7 +292,7 @@ return false; } - private boolean findExcludedExternalTestArgument(List parameters, List arguments) { + private static boolean findExcludedExternalTestArgument(List parameters, List arguments) { for (int i = 0; i < parameters.size(); i++) { final Parameter parameter = parameters.get(i); if (parameter.excludedExternalTestArguments().contains(arguments.get(i))) { @@ -403,7 +403,7 @@ * * @param command the command line to execute */ - private void exec(String command) throws IOException, InterruptedException { + private static void exec(String command) throws IOException, InterruptedException { exec(command, System.out, System.err, System.in); } @@ -416,7 +416,7 @@ * @param err the stream to which standard error output will be directed * @param in the stream from which standard input will be read */ - private void exec(String command, OutputStream out, OutputStream err, InputStream in) throws IOException, InterruptedException { + private static void exec(String command, OutputStream out, OutputStream err, InputStream in) throws IOException, InterruptedException { final Process process = Runtime.getRuntime().exec(command); try { final Redirector stderr = Streams.redirect(process, process.getErrorStream(), err, command + " [stderr]", 50); @@ -499,7 +499,7 @@ * It would have been much more clean to override 'equals()' of those argument classes, * but they are enums and Java predeclares methods inherited via Enum final :-( */ - private boolean equals(List arguments1, List arguments2) { + private static boolean equals(List arguments1, List arguments2) { if (arguments1.size() != arguments2.size()) { return false; } @@ -580,7 +580,7 @@ disassemblyStream.close(); } - private void testTemplate(final Template_Type template, List temporaryFiles) throws IOException, InterruptedException, AssemblyException { + private void testTemplate(final Template_Type template, List temporaryFiles) throws IOException, AssemblyException { final boolean testingExternally = components.contains(AssemblyTestComponent.EXTERNAL_ASSEMBLER) && template.isExternallyTestable(); // Process legal test cases @@ -610,7 +610,7 @@ assembly().assemble(assembler, template, argumentList); final byte[] internalResult = assembler.toByteArray(); if (Trace.hasLevel(3)) { - Trace.line(3, "assembleInternally[" + testCaseNumber + "]: " + assembly().createMethodCallString(template, argumentList) + " = " + DisassembledInstruction.toHexString(internalResult)); + Trace.line(3, "assembleInternally[" + testCaseNumber + "]: " + Assembly.createMethodCallString(template, argumentList) + " = " + DisassembledInstruction.toHexString(internalResult)); } if (components.contains(AssemblyTestComponent.DISASSEMBLER) && template.isDisassemblable() && !findExcludedDisassemblerTestArgument(template.parameters(), argumentList)) { @@ -640,12 +640,12 @@ // Process illegal test cases int illegalTestCaseNumber = 0; - final Set uniqueExceptionMessages = new HashSet(); + final Set uniqueExceptionMessages = new HashSet<>(); for (TestCaseLegality testCaseLegality : new TestCaseLegality[]{TestCaseLegality.ILLEGAL_BY_CONSTRAINT, TestCaseLegality.ILLEGAL_BY_ARGUMENT}) { for (final ArgumentListIterator iterator = new ArgumentListIterator(template, testCaseLegality); iterator.hasNext();) { final List argumentList = iterator.next(); final Assembler assembler = createTestAssembler(); - Trace.line(3, "assembleInternally-negative[" + illegalTestCaseNumber + "]: " + assembly().createMethodCallString(template, argumentList)); + Trace.line(3, "assembleInternally-negative[" + illegalTestCaseNumber + "]: " + Assembly.createMethodCallString(template, argumentList)); try { assembly().assemble(assembler, template, argumentList); } catch (IllegalArgumentException e) { @@ -716,9 +716,9 @@ } final ThreadPoolExecutor compilerService = (ThreadPoolExecutor) Executors.newFixedThreadPool(numberOfWorkerThreads); - final CompletionService compilationCompletionService = new ExecutorCompletionService(compilerService); + final CompletionService compilationCompletionService = new ExecutorCompletionService<>(compilerService); long submittedTests = 0; - final List errors = new LinkedList(); + final List errors = new LinkedList<>(); for (final Template_Type template : assembly().templates()) { if (template.serial() > endTemplateSerial) { break; @@ -729,7 +729,7 @@ ++submittedTests; compilationCompletionService.submit(new Callable() { public Template_Type call() { - final List temporaryFiles = new ArrayList(); + final List temporaryFiles = new ArrayList<>(); try { testTemplate(template, temporaryFiles); } catch (Throwable throwable) { @@ -791,7 +791,7 @@ * where to print the generate source. The caller takes responsibility for closing the stream. */ public void createExternalSource(int startTemplateSerial, int endTemplateSerial, IndentWriter stream) { - final List errors = new LinkedList(); + final List errors = new LinkedList<>(); for (Template_Type template : assembly().templates()) { if (template.serial() > endTemplateSerial) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/ImmediateParameter.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/ImmediateParameter.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/ImmediateParameter.java Sun Dec 18 05:24:06 2011 +0100 @@ -34,9 +34,10 @@ private Static() { } + @SafeVarargs public static List createSequence(Class elementType, final Class argumentType, Argument_Type... values) throws NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException { - final List result = new ArrayList(); + final List result = new ArrayList<>(); final Constructor elementConstructor = elementType.getConstructor(argumentType); for (Argument_Type value : values) { result.add(elementConstructor.newInstance(value)); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/InstructionDescription.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/InstructionDescription.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/InstructionDescription.java Sun Dec 18 05:24:06 2011 +0100 @@ -75,7 +75,7 @@ */ public List constraints() { if (constraints == null) { - constraints = new ArrayList(specifications.size()); + constraints = new ArrayList<>(specifications.size()); for (Object s : specifications) { if (s instanceof InstructionConstraint) { constraints.add((InstructionConstraint) s); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/InstructionDescriptionCreator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/InstructionDescriptionCreator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/InstructionDescriptionCreator.java Sun Dec 18 05:24:06 2011 +0100 @@ -48,7 +48,7 @@ return instructionDescription; } - private final List instructionDescriptions = new LinkedList(); + private final List instructionDescriptions = new LinkedList<>(); private static void deepCopy(Object[] src, List dst) { for (Object object : src) { @@ -61,7 +61,7 @@ } protected InstructionDescription_Type define(Object... specifications) { - List specList = new ArrayList(specifications.length * 2); + List specList = new ArrayList<>(specifications.length * 2); deepCopy(specifications, specList); return defineInstructionDescription(specList); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/NoSuchAssemblerMethodError.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/NoSuchAssemblerMethodError.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/NoSuchAssemblerMethodError.java Sun Dec 18 05:24:06 2011 +0100 @@ -33,6 +33,10 @@ */ public class NoSuchAssemblerMethodError extends NoSuchMethodError { + /** + * + */ + private static final long serialVersionUID = 6071040691387949757L; public final Template template; public NoSuchAssemblerMethodError(String message, Template template) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/TemplateNotNeededException.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/TemplateNotNeededException.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/TemplateNotNeededException.java Sun Dec 18 05:24:06 2011 +0100 @@ -36,6 +36,11 @@ */ public class TemplateNotNeededException extends Exception { + /** + * + */ + private static final long serialVersionUID = 3785941470671918973L; + public TemplateNotNeededException() { super(); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64AssemblerGenerator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64AssemblerGenerator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64AssemblerGenerator.java Sun Dec 18 05:24:06 2011 +0100 @@ -55,12 +55,12 @@ return Bytes.toHexLiteral(basicRexValue(template)); } - private void printUnconditionalRexBit(IndentWriter writer, X86Parameter parameter, int bitIndex) { + private static void printUnconditionalRexBit(IndentWriter writer, X86Parameter parameter, int bitIndex) { writer.print(REX_BYTE_NAME + " |= (" + parameter.valueString() + " & 8) >> " + (3 - bitIndex) + ";"); writer.println(" // " + parameter.place().comment()); } - private void checkGeneralRegister8Values(IndentWriter writer, X86Template template) { + private static void checkGeneralRegister8Values(IndentWriter writer, X86Template template) { for (X86Parameter parameter : template.parameters()) { if (parameter.type() == AMD64GeneralRegister8.class) { writer.println("if (" + parameter.variableName() + ".isHighByte()) {"); @@ -97,7 +97,7 @@ writer.println(); } - private void printConditionalRexBit(IndentWriter writer, X86Template template, X86Parameter parameter, int bitIndex) { + private static void printConditionalRexBit(IndentWriter writer, X86Template template, X86Parameter parameter, int bitIndex) { if (parameter.type() == AMD64GeneralRegister8.class) { writer.println("if (" + parameter.variableName() + ".requiresRexPrefix()) {"); writer.indent(); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64Template.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64Template.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64Template.java Sun Dec 18 05:24:06 2011 +0100 @@ -100,7 +100,7 @@ // so for now we do not produce them: TemplateNotNeededException.raise(); } - addParameter(new X86EnumerableParameter(designation, ParameterPlace.SIB_SCALE, Scale.ENUMERATOR)); + addParameter(new X86EnumerableParameter<>(designation, ParameterPlace.SIB_SCALE, Scale.ENUMERATOR)); } /** @@ -223,11 +223,11 @@ throws TemplateNotNeededException { switch (operandCode) { case Cq: { - addParameter(new X86EnumerableParameter(designation, ParameterPlace.MOD_REG, ControlRegister.ENUMERATOR)); + addParameter(new X86EnumerableParameter<>(designation, ParameterPlace.MOD_REG, ControlRegister.ENUMERATOR)); break; } case Dq: { - addParameter(new X86EnumerableParameter(designation, ParameterPlace.MOD_REG, DebugRegister.ENUMERATOR)); + addParameter(new X86EnumerableParameter<>(designation, ParameterPlace.MOD_REG, DebugRegister.ENUMERATOR)); break; } case Eb: { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64TemplateCreator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64TemplateCreator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/amd64/AMD64TemplateCreator.java Sun Dec 18 05:24:06 2011 +0100 @@ -30,7 +30,7 @@ public class AMD64TemplateCreator extends X86TemplateCreator { public AMD64TemplateCreator() { - super(AMD64Assembly.ASSEMBLY, WordWidth.BITS_64); + super(WordWidth.BITS_64); } @Override diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/ia32/IA32Template.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/ia32/IA32Template.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/ia32/IA32Template.java Sun Dec 18 05:24:06 2011 +0100 @@ -82,7 +82,7 @@ // so for now we do not produce them: TemplateNotNeededException.raise(); } - addParameter(new X86EnumerableParameter(designation, ParameterPlace.SIB_SCALE, Scale.ENUMERATOR)); + addParameter(new X86EnumerableParameter<>(designation, ParameterPlace.SIB_SCALE, Scale.ENUMERATOR)); } @Override @@ -228,11 +228,11 @@ } break; case Cd: { - addParameter(new X86EnumerableParameter(designation, ParameterPlace.MOD_REG, ControlRegister.ENUMERATOR)); + addParameter(new X86EnumerableParameter<>(designation, ParameterPlace.MOD_REG, ControlRegister.ENUMERATOR)); break; } case Dd: { - addParameter(new X86EnumerableParameter(designation, ParameterPlace.MOD_REG, DebugRegister.ENUMERATOR)); + addParameter(new X86EnumerableParameter<>(designation, ParameterPlace.MOD_REG, DebugRegister.ENUMERATOR)); break; } case Eb: { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/ia32/IA32TemplateCreator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/ia32/IA32TemplateCreator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/ia32/IA32TemplateCreator.java Sun Dec 18 05:24:06 2011 +0100 @@ -30,7 +30,7 @@ public class IA32TemplateCreator extends X86TemplateCreator { public IA32TemplateCreator() { - super(IA32Assembly.ASSEMBLY, WordWidth.BITS_32); + super(WordWidth.BITS_32); } @Override diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/FloatingPointOperandCode.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/FloatingPointOperandCode.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/FloatingPointOperandCode.java Sun Dec 18 05:24:06 2011 +0100 @@ -53,6 +53,6 @@ } public TestArgumentExclusion excludeExternalTestArguments(Argument... arguments) { - return new TestArgumentExclusion(AssemblyTestComponent.EXTERNAL_ASSEMBLER, this, new HashSet(Arrays.asList(arguments))); + return new TestArgumentExclusion(AssemblyTestComponent.EXTERNAL_ASSEMBLER, this, new HashSet<>(Arrays.asList(arguments))); } } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/OperandCode.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/OperandCode.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/OperandCode.java Sun Dec 18 05:24:06 2011 +0100 @@ -127,15 +127,15 @@ } public TestArgumentExclusion excludeDisassemblerTestArguments(Argument... arguments) { - return new TestArgumentExclusion(AssemblyTestComponent.DISASSEMBLER, this, new HashSet(Arrays.asList(arguments))); + return new TestArgumentExclusion(AssemblyTestComponent.DISASSEMBLER, this, new HashSet<>(Arrays.asList(arguments))); } public TestArgumentExclusion excludeExternalTestArguments(Argument... arguments) { - return new TestArgumentExclusion(AssemblyTestComponent.EXTERNAL_ASSEMBLER, this, new HashSet(Arrays.asList(arguments))); + return new TestArgumentExclusion(AssemblyTestComponent.EXTERNAL_ASSEMBLER, this, new HashSet<>(Arrays.asList(arguments))); } public TestArgumentExclusion excludeExternalTestArguments(Enumerator... argumentEnumerators) { - final Set arguments = new HashSet(); + final Set arguments = new HashSet<>(); for (Enumerator argumentEnumerator : argumentEnumerators) { for (Object e : argumentEnumerator) { arguments.add((Argument) e); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86AssemblerGenerator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86AssemblerGenerator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86AssemblerGenerator.java Sun Dec 18 05:24:06 2011 +0100 @@ -102,7 +102,8 @@ return argument.getClass().getSimpleName() + "." + argument.name(); } - protected & EnumerableArgument> void printModVariant(IndentWriter writer, final Template_Type template, Argument_Type... arguments) { + @SafeVarargs + protected final & EnumerableArgument> void printModVariant(IndentWriter writer, final Template_Type template, Argument_Type... arguments) { final Class argumentType = arguments[0].getClass(); final X86Parameter parameter = getParameter(template, argumentType); writer.print("if ("); @@ -229,7 +230,8 @@ writer.println(); } - protected & EnumerableArgument> void printSibVariant(IndentWriter writer, Template_Type template, Argument_Type... arguments) { + @SafeVarargs + protected final & EnumerableArgument> void printSibVariant(IndentWriter writer, Template_Type template, Argument_Type... arguments) { final Class argumentType = arguments[0].getClass(); final X86Parameter parameter = getParameter(template, argumentType); writer.print("if ("); @@ -294,7 +296,7 @@ return "assemble" + number; } - private Map subroutineToName = new HashMap(); + private Map subroutineToName = new HashMap<>(); private static final String OPCODE1_VARIABLE_NAME = "opcode1"; private static final String OPCODE2_VARIABLE_NAME = "opcode2"; @@ -416,6 +418,7 @@ } } + @SuppressWarnings("static-method") private String getValidSizesMaskExpression(List labelWidthCases) { final Iterator iterator = labelWidthCases.iterator(); String mask = String.valueOf(iterator.next().width.numberOfBytes); @@ -437,7 +440,7 @@ } // Report the found cases in the order of ascending width: - final List result = new LinkedList(); + final List result = new LinkedList<>(); for (int i = 0; i < array.size(); i++) { final LabelWidthCase labelWidthCase = array.get(i); if (labelWidthCase != null) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86AssemblyTester.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86AssemblyTester.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86AssemblyTester.java Sun Dec 18 05:24:06 2011 +0100 @@ -47,7 +47,7 @@ return Utils.cast(type, super.assembly()); } - private String getSibIndexAndScale(Queue operands, Queue arguments) { + private static String getSibIndexAndScale(Queue operands, Queue arguments) { X86Parameter parameter = (X86Parameter) operands.remove(); assert parameter.place() == ParameterPlace.SIB_INDEX || parameter.place() == ParameterPlace.SIB_INDEX_REXX; final String result = arguments.remove().externalValue() + ","; @@ -56,7 +56,7 @@ return result + arguments.remove().externalValue() + ")"; } - private String getOperand(X86Template template, Queue operands, Queue arguments, String label) { + private static String getOperand(X86Template template, Queue operands, Queue arguments, String label) { final X86Operand operand = operands.remove(); if (operand instanceof ImplicitOperand) { final ImplicitOperand implicitOperand = (ImplicitOperand) operand; @@ -129,8 +129,8 @@ } else { stream.println(".code" + addressWidth().numberOfBits); } - final LinkedList operandQueue = new LinkedList(template.operands()); - final LinkedList argumentQueue = new LinkedList(argumentList); + final LinkedList operandQueue = new LinkedList<>(template.operands()); + final LinkedList argumentQueue = new LinkedList<>(argumentList); String first = ""; if (!operandQueue.isEmpty()) { first = getOperand(template, operandQueue, argumentQueue, label); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86Parameter.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86Parameter.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86Parameter.java Sun Dec 18 05:24:06 2011 +0100 @@ -64,8 +64,8 @@ this.argumentRange = argumentRange; } - private Set excludedDisassemblerTestArguments = new HashSet(); - private Set excludedExternalTestArguments = new HashSet(); + private Set excludedDisassemblerTestArguments = new HashSet<>(); + private Set excludedExternalTestArguments = new HashSet<>(); public void excludeTestArguments(TestArgumentExclusion testArgumentExclusion) { switch (testArgumentExclusion.component()) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86Template.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86Template.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86Template.java Sun Dec 18 05:24:06 2011 +0100 @@ -44,9 +44,9 @@ private HexByte opcode2; private ModRMGroup modRMGroup; private ModRMGroup.Opcode modRMGroupOpcode; - private List operands = new LinkedList(); - private List implicitOperands = new LinkedList(); - private List parameters = new ArrayList(); + private List operands = new LinkedList<>(); + private List implicitOperands = new LinkedList<>(); + private List parameters = new ArrayList<>(); protected boolean isLabelMethodWritten; protected X86Template(X86InstructionDescription instructionDescription, int serial, InstructionAssessment instructionFamily, X86TemplateContext context) { @@ -147,7 +147,7 @@ return result; } - private String format(HexByte parameter) { + private static String format(HexByte parameter) { return parameter == null ? "" : parameter.toString() + ", "; } @@ -239,7 +239,7 @@ protected & EnumerableArgument> X86Parameter addEnumerableParameter(X86Operand.Designation designation, ParameterPlace parameterPlace, final Enumerator enumerator) { - return addParameter(new X86EnumerableParameter(designation, parameterPlace, enumerator)); + return addParameter(new X86EnumerableParameter<>(designation, parameterPlace, enumerator)); } protected void addImplicitOperand(X86ImplicitOperand implicitOperand) { @@ -299,7 +299,7 @@ return operandTypeCode.name(); } - private void checkSuffix(String newSuffix, String oldSuffix) { + private static void checkSuffix(String newSuffix, String oldSuffix) { if (oldSuffix != null) { ProgramError.check(newSuffix.equals(oldSuffix), "conflicting operand type codes specified: " + newSuffix + " vs. " + oldSuffix); } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86TemplateAssembler.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86TemplateAssembler.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86TemplateAssembler.java Sun Dec 18 05:24:06 2011 +0100 @@ -41,8 +41,6 @@ private final byte[] bytes = new byte[MORE_BYTES_THAN_ANY_INSTRUCTION]; private int n; - private int rexByte; - private void emit(byte b) { bytes[n++] = b; } @@ -59,24 +57,24 @@ if (unconditionalRexBit) { return ((int) argument.asLong() & 8) >> (3 - bitIndex); } - int rexByte = 0; + int result = 0; if (argument instanceof AMD64GeneralRegister8) { final AMD64GeneralRegister8 reg8 = (AMD64GeneralRegister8) argument; if (reg8.requiresRexPrefix()) { - rexByte |= basicRexValue(template); + result |= basicRexValue(template); if (argument.asLong() >= 8) { - rexByte |= createRexData(bitIndex, argument.asLong()); + result |= createRexData(bitIndex, argument.asLong()); } } } else { if (argument.asLong() >= 8) { - rexByte |= createRexData(bitIndex, argument.asLong()) + basicRexValue(template); + result |= createRexData(bitIndex, argument.asLong()) + basicRexValue(template); } } - return rexByte; + return result; } - private int createRexData(int bitIndex, long argument) { + private static int createRexData(int bitIndex, long argument) { final byte b = (byte) (argument & 0xffL); if (b == 0) { return 0; @@ -84,7 +82,7 @@ return X86Field.inRexPlace(bitIndex, b); } - private int createFieldData(X86Field field, long argument) { + private static int createFieldData(X86Field field, long argument) { return field.inPlace((byte) (argument & field.mask)); } @@ -115,26 +113,26 @@ return 0; } - private boolean modRMRequiresSib(int modRMByte) { + private static boolean modRMRequiresSib(int modRMByte) { final byte m = (byte) modRMByte; return X86Field.MOD.extract(m) != 3 && X86Field.RM.extract(m) == 4; } - private boolean modRMRequiresImmediate(int modRMByte) { + private static boolean modRMRequiresImmediate(int modRMByte) { final byte m = (byte) modRMByte; return X86Field.MOD.extract(m) == 0 && X86Field.RM.extract(m) == 5; } - private boolean sibRequiresImmediate(int sibRMByte) { + private static boolean sibRequiresImmediate(int sibRMByte) { final byte s = (byte) sibRMByte; return X86Field.BASE.extract(s) == 5; } public byte[] assemble(List arguments) { - int rexByte = 0; + int curRexByte = 0; final boolean unconditionalRexBit = template.operandSizeAttribute() == WordWidth.BITS_64 && template.instructionDescription().defaultOperandSize() != WordWidth.BITS_64; if (unconditionalRexBit) { - rexByte = X86Opcode.REX_MIN.byteValue() | (1 << X86Field.REX_W_BIT_INDEX); + curRexByte = X86Opcode.REX_MIN.byteValue() | (1 << X86Field.REX_W_BIT_INDEX); } int opcode1 = template.opcode1().byteValue() & 0xff; int opcode2 = template.opcode2() == null ? 0 : template.opcode2().byteValue() & 0xff; @@ -146,25 +144,25 @@ final long argument = arguments.get(i).asLong(); switch (parameter.place()) { case MOD_REG_REXR: - rexByte |= createRexData(X86Field.REX_R_BIT_INDEX, arguments.get(i), unconditionalRexBit); + curRexByte |= createRexData(X86Field.REX_R_BIT_INDEX, arguments.get(i), unconditionalRexBit); // fall through... case MOD_REG: modRMByte |= createFieldData(X86Field.REG, argument); break; case MOD_RM_REXB: - rexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); + curRexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); // fall through... case MOD_RM: modRMByte |= createFieldData(X86Field.RM, argument); break; case SIB_BASE_REXB: - rexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); + curRexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); // fall through... case SIB_BASE: sibByte |= createFieldData(X86Field.BASE, argument); break; case SIB_INDEX_REXX: - rexByte |= createRexData(X86Field.REX_X_BIT_INDEX, arguments.get(i), unconditionalRexBit); + curRexByte |= createRexData(X86Field.REX_X_BIT_INDEX, arguments.get(i), unconditionalRexBit); // fall through... case SIB_INDEX: sibByte |= createFieldData(X86Field.INDEX, argument); @@ -198,21 +196,21 @@ } break; case OPCODE1_REXB: - rexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); + curRexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); // fall through... case OPCODE1: opcode1 |= (int) argument & 7; break; case OPCODE2_REXB: - rexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); + curRexByte |= createRexData(X86Field.REX_B_BIT_INDEX, arguments.get(i), unconditionalRexBit); // fall through... case OPCODE2: opcode2 |= (int) argument & 7; break; } } - if (rexByte > 0) { - emit(rexByte); + if (curRexByte > 0) { + emit(curRexByte); } if (template.addressSizeAttribute() != addressWidth) { emit(X86Opcode.ADDRESS_SIZE); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86TemplateCreator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86TemplateCreator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/cisc/x86/X86TemplateCreator.java Sun Dec 18 05:24:06 2011 +0100 @@ -31,31 +31,29 @@ */ public abstract class X86TemplateCreator { - private final Assembly assembly; private final WordWidth addressWidth; private X86InstructionDescription instructionDescription; private InstructionAssessment instructionAssessment; private X86TemplateContext context; private int serial = 1; - protected X86TemplateCreator(Assembly assembly, WordWidth addressWidth) { - this.assembly = assembly; + protected X86TemplateCreator(WordWidth addressWidth) { this.addressWidth = addressWidth; } - private final List templates = new ArrayList(); + private final List templates = new ArrayList<>(); public List templates() { return templates; } - private final Map> internalNameToTemplates = new HashMap>(); + private final Map> internalNameToTemplates = new HashMap<>(); private void addTemplate(Template_Type template) { templates.add(template); List t = internalNameToTemplates.get(template.internalName()); if (t == null) { - t = new LinkedList(); + t = new LinkedList<>(); internalNameToTemplates.put(template.internalName(), t); } t.add(template); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssemblerGenerator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssemblerGenerator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssemblerGenerator.java Sun Dec 18 05:24:06 2011 +0100 @@ -43,7 +43,7 @@ super(assembly, false); } - private String encode(OperandField operandField, String val) { + private static String encode(OperandField operandField, String val) { String value = val; // Convert the argument value to the operand value if (operandField.zeroes() != 0) { @@ -129,7 +129,7 @@ * @param rawOperand * a parameter of {@code rawTemplate} */ - private String getRawOperandReplacement(RiscTemplate syntheticTemplate, RiscTemplate rawTemplate, OperandField rawOperand, boolean forLabelAssemblerMethod) { + private static String getRawOperandReplacement(RiscTemplate syntheticTemplate, RiscTemplate rawTemplate, OperandField rawOperand, boolean forLabelAssemblerMethod) { if (Utils.indexOfIdentical(syntheticTemplate.operandFields(), rawOperand) != -1) { if (rawOperand instanceof OffsetParameter && forLabelAssemblerMethod) { return LABEL.variableName(); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssembly.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssembly.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssembly.java Sun Dec 18 05:24:06 2011 +0100 @@ -41,12 +41,12 @@ private List specificityGroups; private void initialize() { - final IntHashMap> specificityTable = new IntHashMap>(); + final IntHashMap> specificityTable = new IntHashMap<>(); for (RiscTemplate template : templates()) { if (!template.isRedundant()) { IntHashMap opcodeMaskGroups = specificityTable.get(template.specificity()); if (opcodeMaskGroups == null) { - opcodeMaskGroups = new IntHashMap(); + opcodeMaskGroups = new IntHashMap<>(); specificityTable.put(template.specificity(), opcodeMaskGroups); } final int opcodeMask = template.opcodeMask(); @@ -58,7 +58,7 @@ opcodeMaskGroup.add(template); } } - specificityGroups = new LinkedList(); + specificityGroups = new LinkedList<>(); for (int specificity = 33; specificity >= 0; specificity--) { final IntHashMap opcodeGroupTable = specificityTable.get(specificity); if (opcodeGroupTable != null) { diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssemblyTester.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssemblyTester.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscAssemblyTester.java Sun Dec 18 05:24:06 2011 +0100 @@ -49,7 +49,7 @@ @Override protected String disassembleFields(Template_Type template, byte[] assembledInstruction) { - return new RiscFieldDisassembler(template, assembledInstruction).toString(); + return new RiscFieldDisassembler<>(template, assembledInstruction).toString(); } @Override diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscExternalInstruction.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscExternalInstruction.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscExternalInstruction.java Sun Dec 18 05:24:06 2011 +0100 @@ -56,14 +56,14 @@ public RiscExternalInstruction(RiscTemplate template, List arguments) { this.template = template; - this.arguments = new LinkedList(arguments); + this.arguments = new LinkedList<>(arguments); this.address = null; this.addressMapper = null; } public RiscExternalInstruction(RiscTemplate template, List arguments, ImmediateArgument address, AddressMapper addressMapper) { this.template = template; - this.arguments = new LinkedList(arguments); + this.arguments = new LinkedList<>(arguments); this.address = address; this.addressMapper = addressMapper; } diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscInstructionDescriptionCreator.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscInstructionDescriptionCreator.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscInstructionDescriptionCreator.java Sun Dec 18 05:24:06 2011 +0100 @@ -46,7 +46,7 @@ return new RiscInstructionDescription(specifications); } - private int firstStringIndex(List specifications) { + private static int firstStringIndex(List specifications) { for (int i = 0; i < specifications.size(); i++) { if (specifications.get(i) instanceof String) { return i; @@ -55,11 +55,11 @@ throw ProgramError.unexpected("template instruction description without name"); } - private void setFirstString(List specifications, String value) { + private static void setFirstString(List specifications, String value) { specifications.set(firstStringIndex(specifications), value); } - private void eliminateConstraintFor(Parameter parameter, List specifications) { + private static void eliminateConstraintFor(Parameter parameter, List specifications) { for (final Iterator iterator = specifications.iterator(); iterator.hasNext();) { final Object s = iterator.next(); if (s instanceof InstructionConstraint) { @@ -71,7 +71,7 @@ } } - private boolean updateSpecifications(List specifications, Object pattern) { + private static boolean updateSpecifications(List specifications, Object pattern) { for (int i = 0; i < specifications.size(); i++) { final Object specification = specifications.get(i); if (specification.equals(pattern)) { @@ -102,7 +102,7 @@ } private RiscInstructionDescription createSyntheticInstructionDescription(String name, RiscTemplate template, Object[] patterns) { - final List specifications = new ArrayList(template.instructionDescription().specifications()); + final List specifications = new ArrayList<>(template.instructionDescription().specifications()); for (Object pattern : patterns) { if (!updateSpecifications(specifications, pattern)) { // InstructionDescription with the same name, but different specifications, skip it: @@ -125,11 +125,11 @@ * @return the newly created instruction descriptions resulting from the substitution wrapped in a RiscInstructionDescriptionModifier */ protected RiscInstructionDescriptionModifier synthesize(String name, String templateName, Object... patterns) { - final List instructionDescriptions = new ArrayList(); + final List instructionDescriptions = new ArrayList<>(); // Creating a new VariableSequence here prevents iterator comodification below: final List nameTemplates = templateCreator.nameToTemplates(templateName); if (!nameTemplates.isEmpty()) { - final List templates = new ArrayList(nameTemplates); + final List templates = new ArrayList<>(nameTemplates); assert !templates.isEmpty(); for (RiscTemplate template : templates) { final RiscInstructionDescription instructionDescription = createSyntheticInstructionDescription(name, template, patterns); diff -r 04d21be7a24f -r bc8527f3071c graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscTemplate.java --- a/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscTemplate.java Sun Dec 18 05:23:52 2011 +0100 +++ b/graal/com.oracle.max.asmdis/src/com/sun/max/asm/gen/risc/RiscTemplate.java Sun Dec 18 05:24:06 2011 +0100 @@ -32,11 +32,11 @@ */ public class RiscTemplate extends Template implements RiscInstructionDescriptionVisitor { - private final List allFields = new LinkedList(); - private final List operandFields = new LinkedList(); - private final List optionFields = new LinkedList(); - private final List parameters = new ArrayList(); - private final List