< 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 >