src/cpu/x86/vm/c1_MacroAssembler_x86.cpp

changeset 1730
3cf667df43ef
parent 1279
bd02caa94611
child 1907
c18cbe5936b8
     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);

mercurial