Mercurial > hg > truffle
diff src/share/vm/runtime/vframeArray.cpp @ 6948:e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 12 Nov 2012 23:14:12 +0100 |
parents | 957c266d8bc5 da91efe96a93 |
children | 5d0bb7d52783 ceb8c5b29419 |
line wrap: on
line diff
--- a/src/share/vm/runtime/vframeArray.cpp Mon Nov 12 18:11:17 2012 +0100 +++ b/src/share/vm/runtime/vframeArray.cpp Mon Nov 12 23:14:12 2012 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,7 +29,7 @@ #include "memory/allocation.inline.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.inline.hpp" -#include "oops/methodDataOop.hpp" +#include "oops/methodData.hpp" #include "oops/oop.inline.hpp" #include "prims/jvmtiThreadState.hpp" #include "runtime/handles.inline.hpp" @@ -302,7 +302,7 @@ } iframe()->interpreter_frame_set_bcx((intptr_t)bcp); // cannot use bcp because frame is not initialized yet if (ProfileInterpreter) { - methodDataOop mdo = method()->method_data(); + MethodData* mdo = method()->method_data(); if (mdo != NULL) { int bci = iframe()->interpreter_frame_bci(); if (use_next_mdp) ++bci; @@ -310,10 +310,6 @@ iframe()->interpreter_frame_set_mdp(mdp); } } - - if (PrintDeoptimizationDetails) { - tty->print_cr("Expressions size: %d", expressions()->size()); - } // Unpack expression stack // If this is an intermediate frame (i.e. not top frame) then this @@ -327,25 +323,9 @@ switch(value->type()) { case T_INT: *addr = value->get_int(); -#ifndef PRODUCT - if (PrintDeoptimizationDetails) { - tty->print_cr("Reconstructed expression %d (INT): %d", i, (int)(*addr)); - } -#endif break; case T_OBJECT: *addr = value->get_int(T_OBJECT); -#ifndef PRODUCT - if (PrintDeoptimizationDetails) { - tty->print("Reconstructed expression %d (OBJECT): ", i); - oop o = (oop)(*addr); - if (o == NULL) { - tty->print_cr("NULL"); - } else { - tty->print_cr(err_msg("%s", o->blueprint()->name()->as_C_string())); - } - } -#endif break; case T_CONFLICT: // A dead stack slot. Initialize to null in case it is an oop. @@ -364,25 +344,9 @@ switch(value->type()) { case T_INT: *addr = value->get_int(); -#ifndef PRODUCT - if (PrintDeoptimizationDetails) { - tty->print_cr("Reconstructed local %d (INT): %d", i, (int)(*addr)); - } -#endif break; case T_OBJECT: *addr = value->get_int(T_OBJECT); -#ifndef PRODUCT - if (PrintDeoptimizationDetails) { - tty->print("Reconstructed local %d (OBJECT): ", i); - oop o = (oop)(*addr); - if (o == NULL) { - tty->print_cr("NULL"); - } else { - tty->print_cr(err_msg("%s", o->blueprint()->name()->as_C_string())); - } - } -#endif break; case T_CONFLICT: // A dead location. If it is an oop then we need a NULL to prevent GC from following it @@ -424,13 +388,18 @@ } #ifndef PRODUCT - if (PrintDeoptimizationDetails) { + if (TraceDeoptimization && Verbose) { ttyLocker ttyl; tty->print_cr("[%d Interpreted Frame]", ++unpack_counter); iframe()->print_on(tty); RegisterMap map(thread); vframe* f = vframe::new_vframe(iframe(), &map, thread); f->print(); + + tty->print_cr("locals size %d", locals()->size()); + tty->print_cr("expression size %d", expressions()->size()); + + method()->print_value(); tty->cr(); // method()->print_codes(); } else if (TraceDeoptimization) {