1.1 --- a/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp Mon Mar 08 04:46:30 2010 -0800 1.2 +++ b/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp Tue Mar 09 20:16:19 2010 +0100 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. 1.6 + * Copyright 1999-2010 Sun Microsystems, Inc. All Rights Reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -317,14 +317,6 @@ 1.11 } 1.12 1.13 1.14 -void C1_MacroAssembler::method_exit(bool restore_frame) { 1.15 - if (restore_frame) { 1.16 - leave(); 1.17 - } 1.18 - ret(0); 1.19 -} 1.20 - 1.21 - 1.22 void C1_MacroAssembler::build_frame(int frame_size_in_bytes) { 1.23 // Make sure there is enough stack space for this method's activation. 1.24 // Note that we do this before doing an enter(). This matches the 1.25 @@ -333,7 +325,7 @@ 1.26 // between the two compilers. 1.27 generate_stack_overflow_check(frame_size_in_bytes); 1.28 1.29 - enter(); 1.30 + push(rbp); 1.31 #ifdef TIERED 1.32 // c2 leaves fpu stack dirty. Clean it on entry 1.33 if (UseSSE < 2 ) { 1.34 @@ -344,6 +336,12 @@ 1.35 } 1.36 1.37 1.38 +void C1_MacroAssembler::remove_frame(int frame_size_in_bytes) { 1.39 + increment(rsp, frame_size_in_bytes); // Does not emit code for frame_size == 0 1.40 + pop(rbp); 1.41 +} 1.42 + 1.43 + 1.44 void C1_MacroAssembler::unverified_entry(Register receiver, Register ic_klass) { 1.45 if (C1Breakpoint) int3(); 1.46 inline_cache_check(receiver, ic_klass);