diff ppc_patches/0201_C_interpreter-implement_bytecode_profiling.patch @ 4881:edf2bb42e70f

Recent changes to patch queue
author goetz
date Fri, 28 Jun 2013 16:31:09 +0200
parents df79d76c17ab
children 874e94d3b21d
line wrap: on
line diff
--- a/ppc_patches/0201_C_interpreter-implement_bytecode_profiling.patch	Mon Jun 24 17:34:32 2013 +0200
+++ b/ppc_patches/0201_C_interpreter-implement_bytecode_profiling.patch	Fri Jun 28 16:31:09 2013 +0200
@@ -1,10 +1,10 @@
 # HG changeset patch
-# Parent 84fd980e69ee155f80ae36002f29703ea7d16205
+# Parent 738d32552a9693f1f440426756e7b4906b3b7552
 C-interpreter: implement bytecode profiling.
 
-diff -r 84fd980e69ee src/share/vm/interpreter/bytecodeInterpreter.cpp
---- a/src/share/vm/interpreter/bytecodeInterpreter.cpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp	Fri Jun 07 12:51:22 2013 +0200
+diff -r 738d32552a96 src/share/vm/interpreter/bytecodeInterpreter.cpp
+--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp	Fri Jun 28 14:34:21 2013 +0200
 @@ -28,6 +28,7 @@
  #include "interpreter/bytecodeHistogram.hpp"
  #include "interpreter/bytecodeInterpreter.hpp"
@@ -37,11 +37,11 @@
      goto handle_exception;
  
  #ifdef PRODUCT
-@@ -346,7 +348,22 @@
+@@ -341,7 +343,23 @@
        if (UseLoopCounter) {                                                                         \
          bool do_OSR = UseOnStackReplacement;                                                        \
-         INCR_BACKEDGE_COUNT(mcs);                                                                   \
--        if (do_OSR) do_OSR = BACKEDGE_COUNT(mcs)->reached_InvocationLimit();                        \
+         mcs->backedge_counter()->increment();                                                       \
+-        if (do_OSR) do_OSR = mcs->backedge_counter()->reached_InvocationLimit();                    \
 +        if (ProfileInterpreter) {                                                                   \
 +          BI_PROFILE_GET_OR_CREATE_METHOD_DATA(handle_exception);                                   \
 +          /* Check for overflow against MDO count. */                                               \
@@ -56,12 +56,13 @@
 +            && (!(mdo_last_branch_taken_count & 1023));                                             \
 +        } else {                                                                                    \
 +          /* check for overflow of backedge counter */                                              \
-+          do_OSR = do_OSR && INVOCATION_COUNT(mcs)->reached_InvocationLimit(BACKEDGE_COUNT(mcs));   \
++          do_OSR = do_OSR                                                                           \
++            && mcs->invocation_counter()->reached_InvocationLimit(mcs->backedge_counter());         \
 +        }                                                                                           \
          if (do_OSR) {                                                                               \
            nmethod*  osr_nmethod;                                                                    \
            OSR_REQUEST(osr_nmethod, branch_pc);                                                      \
-@@ -359,7 +376,6 @@
+@@ -354,7 +372,6 @@
            }                                                                                         \
          }                                                                                           \
        }  /* UseCompiler ... */                                                                      \
@@ -69,7 +70,7 @@
        SAFEPOINT;                                                                                    \
      }
  
-@@ -392,16 +408,20 @@
+@@ -387,16 +404,20 @@
  #undef CACHE_FRAME
  #define CACHE_FRAME()
  
@@ -94,7 +95,7 @@
      VERIFY_OOP(obj_)
  
  #define VMdoubleConstZero() 0.0
-@@ -636,6 +656,13 @@
+@@ -630,6 +651,13 @@
           topOfStack < istate->stack_base(),
           "Stack top out of range");
  
@@ -108,11 +109,11 @@
    switch (istate->msg()) {
      case initialize: {
        if (initialized++) ShouldNotReachHere(); // Only one initialize call
-@@ -657,15 +684,12 @@
+@@ -651,15 +679,12 @@
            METHOD->increment_interpreter_invocation_count(THREAD);
          }
-         INCR_INVOCATION_COUNT(mcs);
--        if (INVOCATION_COUNT(mcs)->reached_InvocationLimit()) {
+         mcs->invocation_counter()->increment();
+-        if (mcs->invocation_counter()->reached_InvocationLimit()) {
 -            CALL_VM((void)InterpreterRuntime::frequency_counter_overflow(THREAD, NULL), handle_exception);
 -
 -            // We no longer retry on a counter overflow
@@ -120,7 +121,7 @@
 -            // istate->set_msg(retry_method);
 -            // THREAD->clr_do_not_unlock();
 -            // return;
-+        if (INVOCATION_COUNT(mcs)->reached_InvocationLimit(BACKEDGE_COUNT(mcs))) {
++        if (mcs->invocation_counter()->reached_InvocationLimit(mcs->backedge_counter())) {
 +          CALL_VM((void)InterpreterRuntime::frequency_counter_overflow(THREAD, NULL), handle_exception);
 +          // We no longer retry on a counter overflow
          }
@@ -129,7 +130,15 @@
          SAFEPOINT;
        }
  
-@@ -806,9 +830,18 @@
+@@ -681,7 +706,6 @@
+       }
+ #endif // HACK
+ 
+-
+       // lock method if synchronized
+       if (METHOD->is_synchronized()) {
+         // oop rcvr = locals[0].j.r;
+@@ -796,9 +820,18 @@
      case popping_frame: {
        // returned from a java call to pop the frame, restart the call
        // clear the message so we don't confuse ourselves later
@@ -149,7 +158,7 @@
        THREAD->clr_pop_frame_in_process();
        goto run;
      }
-@@ -842,6 +875,11 @@
+@@ -832,6 +865,11 @@
        if (THREAD->has_pending_exception()) goto handle_exception;
        // Update the pc by the saved amount of the invoke bytecode size
        UPDATE_PC(istate->bcp_advance());
@@ -161,7 +170,7 @@
        goto run;
      }
  
-@@ -849,6 +887,11 @@
+@@ -839,6 +877,11 @@
        // Returned from an opcode that will reexecute. Deopt was
        // a result of a PopFrame request.
        //
@@ -173,7 +182,7 @@
        goto run;
      }
  
-@@ -871,6 +914,11 @@
+@@ -861,6 +904,11 @@
        }
        UPDATE_PC(Bytecodes::length_at(METHOD, pc));
        if (THREAD->has_pending_exception()) goto handle_exception;
@@ -185,7 +194,7 @@
        goto run;
      }
      case got_monitors: {
-@@ -1124,6 +1172,11 @@
+@@ -1111,6 +1159,11 @@
            uint16_t reg = Bytes::get_Java_u2(pc + 2);
  
            opcode = pc[1];
@@ -197,7 +206,7 @@
            switch(opcode) {
                case Bytecodes::_aload:
                    VERIFY_OOP(LOCALS_OBJECT(reg));
-@@ -1167,10 +1220,13 @@
+@@ -1154,10 +1207,13 @@
                    UPDATE_PC_AND_CONTINUE(6);
                }
                case Bytecodes::_ret:
@@ -212,7 +221,7 @@
            }
        }
  
-@@ -1251,7 +1307,7 @@
+@@ -1238,7 +1294,7 @@
        CASE(_i##opcname):                                                \
            if (test && (STACK_INT(-1) == 0)) {                           \
                VM_JAVA_ERROR(vmSymbols::java_lang_ArithmeticException(), \
@@ -221,7 +230,7 @@
            }                                                             \
            SET_STACK_INT(VMint##opname(STACK_INT(-2),                    \
                                        STACK_INT(-1)),                   \
-@@ -1263,7 +1319,7 @@
+@@ -1250,7 +1306,7 @@
              jlong l1 = STACK_LONG(-1);                                  \
              if (VMlongEqz(l1)) {                                        \
                VM_JAVA_ERROR(vmSymbols::java_lang_ArithmeticException(), \
@@ -230,7 +239,7 @@
              }                                                           \
            }                                                             \
            /* First long at (-1,-2) next long at (-3,-4) */              \
-@@ -1476,17 +1532,23 @@
+@@ -1463,17 +1519,23 @@
  
  #define COMPARISON_OP(name, comparison)                                      \
        CASE(_if_icmp##name): {                                                \
@@ -256,7 +265,7 @@
            UPDATE_PC_AND_TOS(skip, -1);                                       \
            DO_BACKEDGE_CHECKS(skip, branch_pc);                               \
            CONTINUE;                                                          \
-@@ -1495,9 +1557,12 @@
+@@ -1482,9 +1544,12 @@
  #define COMPARISON_OP2(name, comparison)                                     \
        COMPARISON_OP(name, comparison)                                        \
        CASE(_if_acmp##name): {                                                \
@@ -270,7 +279,7 @@
            UPDATE_PC_AND_TOS(skip, -2);                                       \
            DO_BACKEDGE_CHECKS(skip, branch_pc);                               \
            CONTINUE;                                                          \
-@@ -1505,9 +1570,12 @@
+@@ -1492,9 +1557,12 @@
  
  #define NULL_COMPARISON_NOT_OP(name)                                         \
        CASE(_if##name): {                                                     \
@@ -284,7 +293,7 @@
            UPDATE_PC_AND_TOS(skip, -1);                                       \
            DO_BACKEDGE_CHECKS(skip, branch_pc);                               \
            CONTINUE;                                                          \
-@@ -1515,9 +1583,12 @@
+@@ -1502,9 +1570,12 @@
  
  #define NULL_COMPARISON_OP(name)                                             \
        CASE(_if##name): {                                                     \
@@ -298,7 +307,7 @@
            UPDATE_PC_AND_TOS(skip, -1);                                       \
            DO_BACKEDGE_CHECKS(skip, branch_pc);                               \
            CONTINUE;                                                          \
-@@ -1540,9 +1611,14 @@
+@@ -1527,9 +1598,14 @@
            int32_t  high = Bytes::get_Java_u4((address)&lpc[2]);
            int32_t  skip;
            key -= low;
@@ -316,7 +325,7 @@
            // Does this really need a full backedge check (osr?)
            address branch_pc = pc;
            UPDATE_PC_AND_TOS(skip, -1);
-@@ -1556,14 +1632,21 @@
+@@ -1543,14 +1619,21 @@
            jint* lpc  = (jint*)VMalignWordUp(pc+1);
            int32_t  key  = STACK_INT(-1);
            int32_t  skip = Bytes::get_Java_u4((address) lpc); /* default amount */
@@ -343,7 +352,7 @@
            address branch_pc = pc;
            UPDATE_PC_AND_TOS(skip, -1);
            DO_BACKEDGE_CHECKS(skip, branch_pc);
-@@ -1648,7 +1731,7 @@
+@@ -1635,7 +1718,7 @@
        if ((uint32_t)index >= (uint32_t)arrObj->length()) {                     \
            sprintf(message, "%d", index);                                       \
            VM_JAVA_ERROR(vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), \
@@ -352,7 +361,7 @@
        }
  
        /* 32-bit loads. These handle conversion from < 32-bit types */
-@@ -1729,15 +1812,22 @@
+@@ -1716,15 +1799,22 @@
            // arrObj, index are set
            if (rhsObject != NULL) {
              /* Check assignability of rhsObject into arrObj */
@@ -379,7 +388,7 @@
            }
            // G1GC port. Use accessor instead of storing manually.
            // Takes care of write barriers internally and replaces the code above.
-@@ -2139,10 +2229,14 @@
+@@ -2124,10 +2214,14 @@
              if (UseTLAB) {
                result = (oop) THREAD->tlab().allocate(obj_size);
              }
@@ -395,7 +404,7 @@
                HeapWord* compare_to = *Universe::heap()->top_addr();
                HeapWord* new_top = compare_to + obj_size;
                if (new_top <= *Universe::heap()->end_addr()) {
-@@ -2152,6 +2246,7 @@
+@@ -2137,6 +2231,7 @@
                  result = (oop) compare_to;
                }
              }
@@ -403,7 +412,7 @@
              if (result != NULL) {
                // Initialize object (if nonzero size and need) and then the header
                if (need_zero ) {
-@@ -2207,42 +2302,40 @@
+@@ -2192,42 +2287,40 @@
            if (STACK_OBJECT(-1) != NULL) {
              VERIFY_OOP(STACK_OBJECT(-1));
              u2 index = Bytes::get_Java_u2(pc+1);
@@ -458,7 +467,7 @@
            } else {
              VERIFY_OOP(STACK_OBJECT(-1));
              u2 index = Bytes::get_Java_u2(pc+1);
-@@ -2252,16 +2345,20 @@
+@@ -2237,16 +2330,20 @@
                CALL_VM(InterpreterRuntime::quicken_io_cc(THREAD), handle_exception);
              }
              Klass* klassOf = (Klass*) METHOD->constants()->slot_at(index).get_klass();
@@ -481,7 +490,7 @@
            }
            UPDATE_PC_AND_CONTINUE(3);
  
-@@ -2404,6 +2501,9 @@
+@@ -2389,6 +2486,9 @@
          istate->set_callee_entry_point(method->from_interpreted_entry());
          istate->set_bcp_advance(5);
  
@@ -491,7 +500,7 @@
          UPDATE_PC_AND_RETURN(0); // I'll be back...
        }
  
-@@ -2437,6 +2537,9 @@
+@@ -2421,6 +2521,9 @@
          istate->set_callee_entry_point(method->from_interpreted_entry());
          istate->set_bcp_advance(3);
  
@@ -501,7 +510,7 @@
          UPDATE_PC_AND_RETURN(0); // I'll be back...
        }
  
-@@ -2464,14 +2567,18 @@
+@@ -2448,14 +2551,18 @@
            CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
            if (cache->is_vfinal()) {
              callee = cache->f2_as_vfinal_method();
@@ -523,7 +532,7 @@
            }
            istate->set_callee(callee);
            istate->set_callee_entry_point(callee->from_interpreted_entry());
-@@ -2502,15 +2609,18 @@
+@@ -2486,15 +2593,18 @@
          // interface.  The link resolver checks this but only for the first
          // time this interface is called.
          if (i == int2->itable_length()) {
@@ -544,7 +553,7 @@
          istate->set_callee(callee);
          istate->set_callee_entry_point(callee->from_interpreted_entry());
  #ifdef VM_JVMTI
-@@ -2542,8 +2652,11 @@
+@@ -2526,8 +2636,11 @@
            Method* callee;
            if ((Bytecodes::Code)opcode == Bytecodes::_invokevirtual) {
              CHECK_NULL(STACK_OBJECT(-(cache->parameter_size())));
@@ -558,7 +567,7 @@
                // get receiver
                int parms = cache->parameter_size();
                // this works but needs a resourcemark and seems to create a vtable on every call:
-@@ -2552,8 +2665,9 @@
+@@ -2536,8 +2649,9 @@
                // this fails with an assert
                // InstanceKlass* rcvrKlass = InstanceKlass::cast(STACK_OBJECT(-parms)->klass());
                // but this works
@@ -570,7 +579,7 @@
                /*
                  Executing this code in java.lang.String:
                      public String(char value[]) {
-@@ -2571,12 +2685,17 @@
+@@ -2555,12 +2669,17 @@
  
                */
                callee = (Method*) rcvrKlass->start_of_vtable()[ cache->f2_as_index()];
@@ -588,7 +597,7 @@
            }
  
            istate->set_callee(callee);
-@@ -2628,6 +2747,8 @@
+@@ -2612,6 +2731,8 @@
        CASE(_goto):
        {
            int16_t offset = (int16_t)Bytes::get_Java_u2(pc + 1);
@@ -597,7 +606,7 @@
            address branch_pc = pc;
            UPDATE_PC(offset);
            DO_BACKEDGE_CHECKS(offset, branch_pc);
-@@ -2644,6 +2765,8 @@
+@@ -2628,6 +2749,8 @@
        CASE(_goto_w):
        {
            int32_t offset = Bytes::get_Java_u4(pc + 1);
@@ -606,7 +615,7 @@
            address branch_pc = pc;
            UPDATE_PC(offset);
            DO_BACKEDGE_CHECKS(offset, branch_pc);
-@@ -2653,6 +2776,9 @@
+@@ -2637,6 +2760,9 @@
        /* return from a jsr or jsr_w */
  
        CASE(_ret): {
@@ -616,7 +625,7 @@
            pc = istate->method()->code_base() + (intptr_t)(LOCALS_ADDR(pc[1]));
            UPDATE_PC_AND_CONTINUE(0);
        }
-@@ -2734,6 +2860,9 @@
+@@ -2718,6 +2844,9 @@
        }
        // for AbortVMOnException flag
        NOT_PRODUCT(Exceptions::debug_check_abort(except_oop));
@@ -626,7 +635,7 @@
        goto run;
      }
      if (TraceExceptions) {
-@@ -2936,7 +3065,7 @@
+@@ -2920,7 +3049,7 @@
            oop rcvr = base->obj();
            if (rcvr == NULL) {
              if (!suppress_error) {
@@ -635,7 +644,7 @@
                illegal_state_oop = THREAD->pending_exception();
                THREAD->clear_pending_exception();
              }
-@@ -3014,7 +3143,7 @@
+@@ -3008,7 +3137,7 @@
      // A pending exception that was pending prior to a possible popping frame
      // overrides the popping frame.
      //
@@ -644,10 +653,10 @@
      if (illegal_state_oop() != NULL || original_exception() != NULL) {
        // inform the frame manager we have no result
        istate->set_msg(throwing_exception);
-diff -r 84fd980e69ee src/share/vm/interpreter/bytecodeInterpreterProfiling.hpp
+diff -r 738d32552a96 src/share/vm/interpreter/bytecodeInterpreterProfiling.hpp
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/share/vm/interpreter/bytecodeInterpreterProfiling.hpp	Fri Jun 07 12:51:22 2013 +0200
-@@ -0,0 +1,307 @@
++++ b/src/share/vm/interpreter/bytecodeInterpreterProfiling.hpp	Fri Jun 28 14:34:21 2013 +0200
+@@ -0,0 +1,308 @@
 +/*
 + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
 + * Copyright 2012 SAP AG. All rights reserved.
@@ -785,7 +794,8 @@
 +      GET_METHOD_COUNTERS(mcs);                                                \
 +      /* The profiling method data doesn't exist for this method, */           \
 +      /* create it if the counters have overflowed. */                         \
-+      if (INVOCATION_COUNT(mcs)->reached_ProfileLimit(BACKEDGE_COUNT(mcs))) {  \
++      if (mcs->invocation_counter()                                            \
++                         ->reached_ProfileLimit(mcs->backedge_counter())) {    \
 +        /* Must use CALL_VM, because an async exception may be pending. */     \
 +        CALL_VM((InterpreterRuntime::profile_method(THREAD)),                  \
 +                exception_handler);                                            \
@@ -955,9 +965,9 @@
 +#endif // CC_INTERP
 +
 +#endif // SHARE_VM_INTERPRETER_BYTECODECINTERPRETERPROFILING_HPP
-diff -r 84fd980e69ee src/share/vm/interpreter/interpreterRuntime.cpp
---- a/src/share/vm/interpreter/interpreterRuntime.cpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/interpreter/interpreterRuntime.cpp	Fri Jun 07 12:51:22 2013 +0200
+diff -r 738d32552a96 src/share/vm/interpreter/interpreterRuntime.cpp
+--- a/src/share/vm/interpreter/interpreterRuntime.cpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/interpreter/interpreterRuntime.cpp	Fri Jun 28 14:34:21 2013 +0200
 @@ -267,6 +267,49 @@
    }
  }
@@ -1008,9 +1018,9 @@
  static Handle get_preinitialized_exception(Klass* k, TRAPS) {
    // get klass
    InstanceKlass* klass = InstanceKlass::cast(k);
-diff -r 84fd980e69ee src/share/vm/interpreter/interpreterRuntime.hpp
---- a/src/share/vm/interpreter/interpreterRuntime.hpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/interpreter/interpreterRuntime.hpp	Fri Jun 07 12:51:22 2013 +0200
+diff -r 738d32552a96 src/share/vm/interpreter/interpreterRuntime.hpp
+--- a/src/share/vm/interpreter/interpreterRuntime.hpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/interpreter/interpreterRuntime.hpp	Fri Jun 28 14:34:21 2013 +0200
 @@ -67,6 +67,10 @@
    static ConstantPoolCacheEntry* cache_entry_at(JavaThread *thread, int i)  { return method(thread)->constants()->cache()->entry_at(i); }
    static ConstantPoolCacheEntry* cache_entry(JavaThread *thread)            { return cache_entry_at(thread, Bytes::get_native_u2(bcp(thread) + 1)); }
@@ -1040,9 +1050,9 @@
    // Statics & fields
    static void    resolve_get_put(JavaThread* thread, Bytecodes::Code bytecode);
  
-diff -r 84fd980e69ee src/share/vm/interpreter/invocationCounter.hpp
---- a/src/share/vm/interpreter/invocationCounter.hpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/interpreter/invocationCounter.hpp	Fri Jun 07 12:51:22 2013 +0200
+diff -r 738d32552a96 src/share/vm/interpreter/invocationCounter.hpp
+--- a/src/share/vm/interpreter/invocationCounter.hpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/interpreter/invocationCounter.hpp	Fri Jun 28 14:34:21 2013 +0200
 @@ -101,13 +101,17 @@
  
    // Test counter using scaled limits like the asm interpreter would do rather than doing
@@ -1066,9 +1076,9 @@
    }
  
    void increment()                               { _counter += count_increment; }
-diff -r 84fd980e69ee src/share/vm/oops/methodData.cpp
---- a/src/share/vm/oops/methodData.cpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/oops/methodData.cpp	Fri Jun 07 12:51:22 2013 +0200
+diff -r 738d32552a96 src/share/vm/oops/methodData.cpp
+--- a/src/share/vm/oops/methodData.cpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/oops/methodData.cpp	Fri Jun 28 14:34:21 2013 +0200
 @@ -244,6 +244,11 @@
    return mdp;
  }
@@ -1081,9 +1091,9 @@
  
  #ifndef PRODUCT
  void RetData::print_data_on(outputStream* st) {
-diff -r 84fd980e69ee src/share/vm/oops/methodData.hpp
---- a/src/share/vm/oops/methodData.hpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/oops/methodData.hpp	Fri Jun 07 12:51:22 2013 +0200
+diff -r 738d32552a96 src/share/vm/oops/methodData.hpp
+--- a/src/share/vm/oops/methodData.hpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/oops/methodData.hpp	Fri Jun 28 14:34:21 2013 +0200
 @@ -225,6 +225,11 @@
    static ByteSize cell_offset(int index) {
      return byte_offset_of(DataLayout, _cells) + in_ByteSize(index * cell_size);
@@ -1361,9 +1371,9 @@
  private:
    friend class ProfileData;
  
-diff -r 84fd980e69ee src/share/vm/runtime/arguments.cpp
---- a/src/share/vm/runtime/arguments.cpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/runtime/arguments.cpp	Fri Jun 07 12:51:22 2013 +0200
+diff -r 738d32552a96 src/share/vm/runtime/arguments.cpp
+--- a/src/share/vm/runtime/arguments.cpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/runtime/arguments.cpp	Fri Jun 28 14:34:21 2013 +0200
 @@ -3578,10 +3578,10 @@
    // Clear flags not supported by the C++ interpreter
  #if !defined(PPC64)
@@ -1376,10 +1386,10 @@
  #endif // CC_INTERP
  
  #ifdef COMPILER2
-diff -r 84fd980e69ee src/share/vm/runtime/globals.hpp
---- a/src/share/vm/runtime/globals.hpp	Fri Jun 07 12:50:21 2013 +0200
-+++ b/src/share/vm/runtime/globals.hpp	Fri Jun 07 12:51:22 2013 +0200
-@@ -2708,6 +2708,9 @@
+diff -r 738d32552a96 src/share/vm/runtime/globals.hpp
+--- a/src/share/vm/runtime/globals.hpp	Fri Jun 28 14:17:32 2013 +0200
++++ b/src/share/vm/runtime/globals.hpp	Fri Jun 28 14:34:21 2013 +0200
+@@ -2712,6 +2712,9 @@
    product_pd(bool, ProfileInterpreter,                                      \
             "Profile at the bytecode level during interpretation")           \
                                                                              \