< prev index next >

src/share/vm/opto/type.hpp

Print this page
rev 10504 : value type calling convention

@@ -647,11 +647,11 @@
     _fields[i] = t;
   }
 
   static const TypeTuple *make( uint cnt, const Type **fields );
   static const TypeTuple *make_range(ciSignature *sig);
-  static const TypeTuple *make_domain(ciInstanceKlass* recv, ciSignature *sig);
+  static const TypeTuple *make_domain(ciInstanceKlass* recv, ciSignature *sig, bool is_cc = false);
 
   // Subroutine call type with space allocated for argument types
   // Memory for Control, I_O, Memory, FramePtr, and ReturnAdr is allocated implicitly
   static const Type **fields( uint arg_cnt );
 

@@ -1525,17 +1525,18 @@
 };
 
 //------------------------------TypeFunc---------------------------------------
 // Class of Array Types
 class TypeFunc : public Type {
-  TypeFunc( const TypeTuple *domain, const TypeTuple *range ) : Type(Function),  _domain(domain), _range(range) {}
+  TypeFunc(const TypeTuple *domain_sig, const TypeTuple *domain_cc, const TypeTuple *range) : Type(Function), _domain_sig(domain_sig), _domain_cc(domain_cc), _range(range) {}
   virtual bool eq( const Type *t ) const;
   virtual int  hash() const;             // Type specific hashing
   virtual bool singleton(void) const;    // TRUE if type is a singleton
   virtual bool empty(void) const;        // TRUE if type is vacuous
 
-  const TypeTuple* const _domain;     // Domain of inputs
+  const TypeTuple* const _domain_sig;     // Domain of inputs
+  const TypeTuple* const _domain_cc;  // Domain of inputs
   const TypeTuple* const _range;      // Range of results
 
 public:
   // Constants are shared among ADLC and VM
   enum { Control    = AdlcVMDeps::Control,

@@ -1546,16 +1547,17 @@
          Parms      = AdlcVMDeps::Parms
   };
 
 
   // Accessors:
-  const TypeTuple* domain() const { return _domain; }
+  const TypeTuple* domain_sig() const { return _domain_sig; }
+  const TypeTuple* domain_cc() const { return _domain_cc; }
   const TypeTuple* range()  const { return _range; }
 
   static const TypeFunc *make(ciMethod* method);
   static const TypeFunc *make(ciSignature signature, const Type* extra);
-  static const TypeFunc *make(const TypeTuple* domain, const TypeTuple* range);
+  static const TypeFunc *make(const TypeTuple* domain, const TypeTuple* domain_cc, const TypeTuple* range);
 
   virtual const Type *xmeet( const Type *t ) const;
   virtual const Type *xdual() const;    // Compute dual right now.
 
   BasicType return_type() const;
< prev index next >