equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2011, 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. |
185 // plus GC roots, for all active calls at some call site in this compilation |
185 // plus GC roots, for all active calls at some call site in this compilation |
186 // unit. (If there is no inlining, then the list has exactly one link.) |
186 // unit. (If there is no inlining, then the list has exactly one link.) |
187 // This provides a way to map the optimized program back into the interpreter, |
187 // This provides a way to map the optimized program back into the interpreter, |
188 // or to let the GC mark the stack. |
188 // or to let the GC mark the stack. |
189 class JVMState : public ResourceObj { |
189 class JVMState : public ResourceObj { |
|
190 friend class VMStructs; |
190 public: |
191 public: |
191 typedef enum { |
192 typedef enum { |
192 Reexecute_Undefined = -1, // not defined -- will be translated into false later |
193 Reexecute_Undefined = -1, // not defined -- will be translated into false later |
193 Reexecute_False = 0, // false -- do not reexecute |
194 Reexecute_False = 0, // false -- do not reexecute |
194 Reexecute_True = 1 // true -- reexecute the bytecode |
195 Reexecute_True = 1 // true -- reexecute the bytecode |
498 |
499 |
499 //------------------------------CallNode--------------------------------------- |
500 //------------------------------CallNode--------------------------------------- |
500 // Call nodes now subsume the function of debug nodes at callsites, so they |
501 // Call nodes now subsume the function of debug nodes at callsites, so they |
501 // contain the functionality of a full scope chain of debug nodes. |
502 // contain the functionality of a full scope chain of debug nodes. |
502 class CallNode : public SafePointNode { |
503 class CallNode : public SafePointNode { |
|
504 friend class VMStructs; |
503 public: |
505 public: |
504 const TypeFunc *_tf; // Function type |
506 const TypeFunc *_tf; // Function type |
505 address _entry_point; // Address of method being called |
507 address _entry_point; // Address of method being called |
506 float _cnt; // Estimate of number of times called |
508 float _cnt; // Estimate of number of times called |
507 |
509 |
563 //------------------------------CallJavaNode----------------------------------- |
565 //------------------------------CallJavaNode----------------------------------- |
564 // Make a static or dynamic subroutine call node using Java calling |
566 // Make a static or dynamic subroutine call node using Java calling |
565 // convention. (The "Java" calling convention is the compiler's calling |
567 // convention. (The "Java" calling convention is the compiler's calling |
566 // convention, as opposed to the interpreter's or that of native C.) |
568 // convention, as opposed to the interpreter's or that of native C.) |
567 class CallJavaNode : public CallNode { |
569 class CallJavaNode : public CallNode { |
|
570 friend class VMStructs; |
568 protected: |
571 protected: |
569 virtual uint cmp( const Node &n ) const; |
572 virtual uint cmp( const Node &n ) const; |
570 virtual uint size_of() const; // Size is bigger |
573 virtual uint size_of() const; // Size is bigger |
571 |
574 |
572 bool _optimized_virtual; |
575 bool _optimized_virtual; |