hotspot/src/share/vm/opto/callnode.hpp
changeset 10547 ea4a2ec31ae2
parent 10255 bab46e6f7661
child 11191 d54ab5dcba83
equal deleted inserted replaced
10546:e79347eebbc5 10547:ea4a2ec31ae2
     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;