1 /* |
1 /* |
2 * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
817 void InstructionPrinter::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { |
817 void InstructionPrinter::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { |
818 print_unsafe_object_op(x, "UnsafePrefetchWrite"); |
818 print_unsafe_object_op(x, "UnsafePrefetchWrite"); |
819 output()->put(')'); |
819 output()->put(')'); |
820 } |
820 } |
821 |
821 |
822 |
|
823 void InstructionPrinter::do_ProfileCall(ProfileCall* x) { |
822 void InstructionPrinter::do_ProfileCall(ProfileCall* x) { |
824 output()->print("profile "); |
823 output()->print("profile "); |
825 print_value(x->recv()); |
824 print_value(x->recv()); |
826 output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8()); |
825 output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8()); |
827 if (x->known_holder() != NULL) { |
826 if (x->known_holder() != NULL) { |
829 print_klass(x->known_holder()); |
828 print_klass(x->known_holder()); |
830 } |
829 } |
831 output()->put(')'); |
830 output()->put(')'); |
832 } |
831 } |
833 |
832 |
834 |
833 void InstructionPrinter::do_ProfileInvoke(ProfileInvoke* x) { |
835 void InstructionPrinter::do_ProfileCounter(ProfileCounter* x) { |
834 output()->print("profile_invoke "); |
836 |
835 output()->print(" %s.%s", x->inlinee()->holder()->name()->as_utf8(), x->inlinee()->name()->as_utf8()); |
837 ObjectConstant* oc = x->mdo()->type()->as_ObjectConstant(); |
836 output()->put(')'); |
838 if (oc != NULL && oc->value()->is_method() && |
837 |
839 x->offset() == methodOopDesc::interpreter_invocation_counter_offset_in_bytes()) { |
838 } |
840 print_value(x->mdo()); |
|
841 output()->print(".interpreter_invocation_count += %d", x->increment()); |
|
842 } else { |
|
843 output()->print("counter ["); |
|
844 print_value(x->mdo()); |
|
845 output()->print(" + %d] += %d", x->offset(), x->increment()); |
|
846 } |
|
847 } |
|
848 |
|
849 |
839 |
850 #endif // PRODUCT |
840 #endif // PRODUCT |