Mercurial > hg > truffle
diff graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java @ 18123:3c7e73362d6a
Encapsulate FrameMap.registerConfig & FrameMap.target.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 20 Oct 2014 12:12:52 +0200 |
parents | e3f3233ec6cd |
children | 9147ad23314b |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java Mon Oct 20 11:10:15 2014 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java Mon Oct 20 12:12:52 2014 +0200 @@ -40,8 +40,8 @@ */ public abstract class FrameMap { - public final TargetDescription target; - public final RegisterConfig registerConfig; + private final TargetDescription target; + private final RegisterConfig registerConfig; /** * The final frame size, not including the size of the @@ -95,12 +95,20 @@ this.objectStackSlots = new ArrayList<>(); } + public RegisterConfig getRegisterConfig() { + return registerConfig; + } + + public TargetDescription getTarget() { + return target; + } + protected int returnAddressSize() { - return target.arch.getReturnAddressSize(); + return getTarget().arch.getReturnAddressSize(); } protected int calleeSaveAreaSize() { - CalleeSaveLayout csl = registerConfig.getCalleeSaveLayout(); + CalleeSaveLayout csl = getRegisterConfig().getCalleeSaveLayout(); return csl != null ? csl.size : 0; } @@ -118,7 +126,7 @@ * @return stack slot size */ public int stackSlotSize() { - return target.wordSize; + return getTarget().wordSize; } /** @@ -180,7 +188,7 @@ // Without this, frameNeedsAllocating() would never return true. int total = 0; for (StackSlot s : freedSlots) { - total += target.getSizeInBytes(s.getKind()); + total += getTarget().getSizeInBytes(s.getKind()); } if (total == spillSize - initialSpillSize) { // reset spill area size @@ -189,8 +197,8 @@ freedSlots = null; } frameSize = currentFrameSize(); - if (frameSize > registerConfig.getMaximumFrameSize()) { - throw new BailoutException("Frame size (%d) exceeded maximum allowed frame size (%d).", frameSize, registerConfig.getMaximumFrameSize()); + if (frameSize > getRegisterConfig().getMaximumFrameSize()) { + throw new BailoutException("Frame size (%d) exceeded maximum allowed frame size (%d).", frameSize, getRegisterConfig().getMaximumFrameSize()); } } @@ -273,7 +281,7 @@ * @return the size in bytes */ public int spillSlotSize(LIRKind kind) { - return target.getSizeInBytes(kind.getPlatformKind()); + return getTarget().getSizeInBytes(kind.getPlatformKind()); } /** @@ -352,7 +360,7 @@ if (objectSlot != null) { result = objectSlot; } else { - result = allocateNewSpillSlot(LIRKind.value(target.wordKind), 0); + result = allocateNewSpillSlot(LIRKind.value(getTarget().wordKind), 0); } } } @@ -360,12 +368,12 @@ return result; } else { - return allocateNewSpillSlot(LIRKind.value(target.wordKind), 0); + return allocateNewSpillSlot(LIRKind.value(getTarget().wordKind), 0); } } public ReferenceMap initReferenceMap(boolean hasRegisters) { - ReferenceMap refMap = target.createReferenceMap(hasRegisters, frameSize() / stackSlotSize()); + ReferenceMap refMap = getTarget().createReferenceMap(hasRegisters, frameSize() / stackSlotSize()); for (StackSlot slot : objectStackSlots) { setReference(slot, refMap); }