src/cpu/x86/vm/templateInterpreter_x86_32.cpp

changeset 2438
dd031b2226de
parent 2314
f95d63e2154a
child 2461
b599a4c6c2df
     1.1 --- a/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Mon Jan 10 03:58:07 2011 -0800
     1.2 +++ b/src/cpu/x86/vm/templateInterpreter_x86_32.cpp	Mon Jan 10 18:46:29 2011 -0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. 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 @@ -1367,15 +1367,8 @@
    1.11      if (ProfileInterpreter) {
    1.12        // We have decided to profile this method in the interpreter
    1.13        __ bind(profile_method);
    1.14 -
    1.15 -      __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method), rsi, true);
    1.16 -
    1.17 -      __ movptr(rbx, Address(rbp, method_offset));   // restore methodOop
    1.18 -      __ movptr(rax, Address(rbx, in_bytes(methodOopDesc::method_data_offset())));
    1.19 -      __ movptr(Address(rbp, frame::interpreter_frame_mdx_offset * wordSize), rax);
    1.20 -      __ test_method_data_pointer(rax, profile_method_continue);
    1.21 -      __ addptr(rax, in_bytes(methodDataOopDesc::data_offset()));
    1.22 -      __ movptr(Address(rbp, frame::interpreter_frame_mdx_offset * wordSize), rax);
    1.23 +      __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method));
    1.24 +      __ set_method_data_pointer_for_bcp();
    1.25        __ jmp(profile_method_continue);
    1.26      }
    1.27      // Handle overflow of counter and compile method

mercurial