diff --git a/sources/zweic/Generator.scala b/sources/zweic/Generator.scala index cacb257..eeabae9 100644 --- a/sources/zweic/Generator.scala +++ b/sources/zweic/Generator.scala @@ -43,6 +43,9 @@ c.name.sym.offset = offset; offset = offset + c.name.sym.asInstanceOf[ClassSymbol].allMethods.length*4; //XXX: no +4 for empty top entry + for ( val m <- c.name.sym.asInstanceOf[ClassSymbol].allMethods ) { + code.emit(ADD, ZERO, ZERO, ZERO, c.name.name + "::" + m.name); + } } genTmp { tmpReg => @@ -111,7 +114,7 @@ code.decFrameSize(oldFrameSize); // fs = 0 code.incFrameSize(params.length*4+4); // fs = params + this - code.emit(PSH, LNK, SP, 4); + code.emit(PSH, LNK, SP, 4, "def "+ method.self+"::"+name); code.incFrameSize(4); // fs = params + this + lnk name.sym.asInstanceOf[MethodSymbol].address = code.pc(); @@ -198,7 +201,7 @@ tree match { case NullLit() => - emitLoadConstant(targetReg, 0) + code.emit(ORIU, targetReg, ZERO, 0, "null"); case IntLit(value) => emitLoadConstant(targetReg, value)