--- old/src/cpu/x86/vm/x86_32.ad 2015-10-13 12:25:20.568637630 +0200 +++ new/src/cpu/x86/vm/x86_32.ad 2015-10-13 12:25:20.436637624 +0200 @@ -580,7 +580,11 @@ st->print("MOV [ESP + #%d], EBP\t# Save EBP",framesize); if (PreserveFramePointer) { st->print("\n\t"); - st->print("MOV EBP, [ESP + #%d]\t# Save the caller's SP into EBP", (framesize + wordSize)); + st->print("MOV EBP, ESP\t# Save the caller's SP into EBP"); + if (framesize > 0) { + st->print("\n\t"); + st->print("ADD EBP, #%d", framesize); + } } }