From: <pi...@us...> - 2008-11-12 21:15:46
|
Revision: 15169 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15169&view=rev Author: pizlo Date: 2008-11-12 21:15:42 +0000 (Wed, 12 Nov 2008) Log Message: ----------- fixed some nasty bugs with some nasty hacks; code is starting to run in BaseBase configs Modified Paths: -------------- rvmroot/branches/RVM-PureNativeThread/workingMergeUp/rvm/src/org/jikesrvm/compilers/baseline/ia32/BaselineCompilerImpl.java Modified: rvmroot/branches/RVM-PureNativeThread/workingMergeUp/rvm/src/org/jikesrvm/compilers/baseline/ia32/BaselineCompilerImpl.java =================================================================== --- rvmroot/branches/RVM-PureNativeThread/workingMergeUp/rvm/src/org/jikesrvm/compilers/baseline/ia32/BaselineCompilerImpl.java 2008-11-12 20:59:14 UTC (rev 15168) +++ rvmroot/branches/RVM-PureNativeThread/workingMergeUp/rvm/src/org/jikesrvm/compilers/baseline/ia32/BaselineCompilerImpl.java 2008-11-12 21:15:42 UTC (rev 15169) @@ -3923,11 +3923,15 @@ asm.emitINT_Imm(0xFF); } else { // normal method - int spaceToRelease = fp2spOffset(NO_SLOT).toInt() - bytesPopped - (3 * WORDSIZE); - adjustStack(spaceToRelease, true); if (method.hasBaselineSaveLSRegistersAnnotation()) { + // NASTY!!!!! + int spaceToRelease = fp2spOffset(NO_SLOT).toInt() - bytesPopped - (4 * WORDSIZE); + adjustStack(spaceToRelease, true); if (VM.VerifyAssertions) VM._assert(EBP_SAVE_OFFSET.toInt() == -(4 * WORDSIZE)); asm.emitPOP_Reg(EBP); // restore nonvolatile EBP register + } else { + int spaceToRelease = fp2spOffset(NO_SLOT).toInt() - bytesPopped - (3 * WORDSIZE); + adjustStack(spaceToRelease, true); } if (VM.VerifyAssertions) VM._assert(EBX_SAVE_OFFSET.toInt() == -(3 * WORDSIZE)); asm.emitPOP_Reg(EBX); // restore non-volatile EBX register This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |