mirror of https://github.com/aamine/cbc
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java (StackFrameInfo): shorten code using CodeGenerator constant directly.
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4281 1b9489fe-b721-0410-924e-b54b9192deb8
This commit is contained in:
parent
7d4223ba6a
commit
7c9845ecaa
|
@ -1,3 +1,9 @@
|
||||||
|
Sun Jun 7 13:42:15 2009 Minero Aoki <aamine@loveruby.net>
|
||||||
|
|
||||||
|
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java
|
||||||
|
(StackFrameInfo): shorten code using CodeGenerator constant
|
||||||
|
directly.
|
||||||
|
|
||||||
Sun Jun 7 04:16:39 2009 Minero Aoki <aamine@loveruby.net>
|
Sun Jun 7 04:16:39 2009 Minero Aoki <aamine@loveruby.net>
|
||||||
|
|
||||||
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: refactoring:
|
* net/loveruby/cflat/sysdep/x86/CodeGenerator.java: refactoring:
|
||||||
|
|
|
@ -391,16 +391,11 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator,
|
||||||
|
|
||||||
// #@@range/StackFrameInfo{
|
// #@@range/StackFrameInfo{
|
||||||
class StackFrameInfo {
|
class StackFrameInfo {
|
||||||
final long stackWordSize;
|
|
||||||
List<Register> saveRegs;
|
List<Register> saveRegs;
|
||||||
long lvarSize;
|
long lvarSize;
|
||||||
long tempSize;
|
long tempSize;
|
||||||
|
|
||||||
StackFrameInfo(long stackWordSize) {
|
long saveRegsSize() { return saveRegs.size() * STACK_WORD_SIZE; }
|
||||||
this.stackWordSize = stackWordSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
long saveRegsSize() { return saveRegs.size() * stackWordSize; }
|
|
||||||
long lvarOffset() { return saveRegsSize(); }
|
long lvarOffset() { return saveRegsSize(); }
|
||||||
long tempOffset() { return saveRegsSize() + lvarSize; }
|
long tempOffset() { return saveRegsSize() + lvarSize; }
|
||||||
long frameSize() { return saveRegsSize() + lvarSize + tempSize; }
|
long frameSize() { return saveRegsSize() + lvarSize + tempSize; }
|
||||||
|
@ -409,7 +404,7 @@ public class CodeGenerator implements net.loveruby.cflat.sysdep.CodeGenerator,
|
||||||
|
|
||||||
// #@@range/compileFunctionBody{
|
// #@@range/compileFunctionBody{
|
||||||
private void compileFunctionBody(AssemblyFile file, DefinedFunction func) {
|
private void compileFunctionBody(AssemblyFile file, DefinedFunction func) {
|
||||||
StackFrameInfo frame = new StackFrameInfo(STACK_WORD_SIZE);
|
StackFrameInfo frame = new StackFrameInfo();
|
||||||
locateParameters(func.parameters());
|
locateParameters(func.parameters());
|
||||||
frame.lvarSize = locateLocalVariables(func.lvarScope());
|
frame.lvarSize = locateLocalVariables(func.lvarScope());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue