diff --git a/net/loveruby/cflat/sysdep/x86/CodeGenerator.java b/net/loveruby/cflat/sysdep/x86/CodeGenerator.java index b5d2aae..8a249da 100644 --- a/net/loveruby/cflat/sysdep/x86/CodeGenerator.java +++ b/net/loveruby/cflat/sysdep/x86/CodeGenerator.java @@ -586,17 +586,22 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator, } private long locateLocalVariables(LocalScope scope, long parentStackLen) { + // #@@range/locateLocalVariables_loc{ long len = parentStackLen; for (DefinedVariable var : scope.localVariables()) { len = alignStack(len + var.allocSize()); var.setMemref(relocatableMem(-len, bp())); } + // #@@} + + // #@@range/locateLocalVariables_child{ long maxLen = len; for (LocalScope s : scope.children()) { long childLen = locateLocalVariables(s, len); maxLen = Math.max(maxLen, childLen); } return maxLen; + // #@@} } // #@@} diff --git a/net/loveruby/cflat/utils/AsmUtils.java b/net/loveruby/cflat/utils/AsmUtils.java index ab7d493..f77d839 100644 --- a/net/loveruby/cflat/utils/AsmUtils.java +++ b/net/loveruby/cflat/utils/AsmUtils.java @@ -1,7 +1,11 @@ package net.loveruby.cflat.utils; -public abstract class AsmUtils { +public final class AsmUtils { + private AsmUtils() {} + + // #@@range/align{ static public long align(long n, long alignment) { return (n + alignment - 1) / alignment * alignment; } + // #@@} }