hotspot/src/cpu/aarch64/vm/interpreter_aarch64.cpp
changeset 34651 07b1cc0f6040
parent 33070 54f3f085b165
child 35135 dd2ce9021031
child 35214 d86005e0b4c2
equal deleted inserted replaced
34648:b7ea5d095ef5 34651:07b1cc0f6040
     1 /*
     1 /*
     2  * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
     3  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
     3  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5  *
     5  *
     6  * This code is free software; you can redistribute it and/or modify it
     6  * This code is free software; you can redistribute it and/or modify it
     7  * under the terms of the GNU General Public License version 2 only, as
     7  * under the terms of the GNU General Public License version 2 only, as
    37 #include "oops/oop.inline.hpp"
    37 #include "oops/oop.inline.hpp"
    38 #include "prims/jvmtiExport.hpp"
    38 #include "prims/jvmtiExport.hpp"
    39 #include "prims/jvmtiThreadState.hpp"
    39 #include "prims/jvmtiThreadState.hpp"
    40 #include "prims/methodHandles.hpp"
    40 #include "prims/methodHandles.hpp"
    41 #include "runtime/arguments.hpp"
    41 #include "runtime/arguments.hpp"
    42 #include "runtime/deoptimization.hpp"
       
    43 #include "runtime/frame.inline.hpp"
    42 #include "runtime/frame.inline.hpp"
    44 #include "runtime/sharedRuntime.hpp"
    43 #include "runtime/sharedRuntime.hpp"
    45 #include "runtime/stubRoutines.hpp"
    44 #include "runtime/stubRoutines.hpp"
    46 #include "runtime/synchronizer.hpp"
    45 #include "runtime/synchronizer.hpp"
    47 #include "runtime/timer.hpp"
    46 #include "runtime/timer.hpp"
   257   // the call_VM checks for exception, so we should never return here.
   256   // the call_VM checks for exception, so we should never return here.
   258   __ should_not_reach_here();
   257   __ should_not_reach_here();
   259 
   258 
   260   return entry_point;
   259   return entry_point;
   261 }
   260 }
   262 
       
   263 
       
   264 void Deoptimization::unwind_callee_save_values(frame* f, vframeArray* vframe_array) {
       
   265 
       
   266   // This code is sort of the equivalent of C2IAdapter::setup_stack_frame back in
       
   267   // the days we had adapter frames. When we deoptimize a situation where a
       
   268   // compiled caller calls a compiled caller will have registers it expects
       
   269   // to survive the call to the callee. If we deoptimize the callee the only
       
   270   // way we can restore these registers is to have the oldest interpreter
       
   271   // frame that we create restore these values. That is what this routine
       
   272   // will accomplish.
       
   273 
       
   274   // At the moment we have modified c2 to not have any callee save registers
       
   275   // so this problem does not exist and this routine is just a place holder.
       
   276 
       
   277   assert(f->is_interpreted_frame(), "must be interpreted");
       
   278 }