Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/vectornode.hpp @ 29:d5fc211aea19
6633953: type2aelembytes{T_ADDRESS} should be 8 bytes in 64 bit VM
Summary: T_ADDRESS size is defined as 'int' size (4 bytes) but C2 use it for raw pointers and as memory type for StoreP and LoadP nodes.
Reviewed-by: jrose
author | kvn |
---|---|
date | Mon, 25 Feb 2008 15:05:44 -0800 |
parents | a61af66fc99e |
children | d1605aabd0a1 |
comparison
equal
deleted
inserted
replaced
28:67914967a4b5 | 29:d5fc211aea19 |
---|---|
46 virtual int Opcode() const; | 46 virtual int Opcode() const; |
47 | 47 |
48 uint length() const { return _length; } // Vector length | 48 uint length() const { return _length; } // Vector length |
49 | 49 |
50 static uint max_vlen(BasicType bt) { // max vector length | 50 static uint max_vlen(BasicType bt) { // max vector length |
51 return (uint)(Matcher::vector_width_in_bytes() / type2aelembytes[bt]); | 51 return (uint)(Matcher::vector_width_in_bytes() / type2aelembytes(bt)); |
52 } | 52 } |
53 | 53 |
54 // Element and vector type | 54 // Element and vector type |
55 const Type* elt_type() const { return Type::get_const_basic_type(elt_basic_type()); } | 55 const Type* elt_type() const { return Type::get_const_basic_type(elt_basic_type()); } |
56 const Type* vect_type() const { return vect_type(elt_basic_type(), length()); } | 56 const Type* vect_type() const { return vect_type(elt_basic_type(), length()); } |
390 const Type* elt_type() const { return Type::get_const_basic_type(elt_basic_type()); } | 390 const Type* elt_type() const { return Type::get_const_basic_type(elt_basic_type()); } |
391 const Type* vect_type() const { return VectorNode::vect_type(elt_basic_type(), length()); } | 391 const Type* vect_type() const { return VectorNode::vect_type(elt_basic_type(), length()); } |
392 | 392 |
393 virtual uint ideal_reg() const { return Matcher::vector_ideal_reg(); } | 393 virtual uint ideal_reg() const { return Matcher::vector_ideal_reg(); } |
394 virtual BasicType memory_type() const { return T_VOID; } | 394 virtual BasicType memory_type() const { return T_VOID; } |
395 virtual int memory_size() const { return length()*type2aelembytes[elt_basic_type()]; } | 395 virtual int memory_size() const { return length()*type2aelembytes(elt_basic_type()); } |
396 | 396 |
397 // Vector opcode from scalar opcode | 397 // Vector opcode from scalar opcode |
398 static int opcode(int sopc, uint vlen); | 398 static int opcode(int sopc, uint vlen); |
399 | 399 |
400 static VectorLoadNode* make(Compile* C, int opc, Node* ctl, Node* mem, | 400 static VectorLoadNode* make(Compile* C, int opc, Node* ctl, Node* mem, |
618 const Type* elt_type() const { return Type::get_const_basic_type(elt_basic_type()); } | 618 const Type* elt_type() const { return Type::get_const_basic_type(elt_basic_type()); } |
619 const Type* vect_type() const { return VectorNode::vect_type(elt_basic_type(), length()); } | 619 const Type* vect_type() const { return VectorNode::vect_type(elt_basic_type(), length()); } |
620 | 620 |
621 virtual uint ideal_reg() const { return Matcher::vector_ideal_reg(); } | 621 virtual uint ideal_reg() const { return Matcher::vector_ideal_reg(); } |
622 virtual BasicType memory_type() const { return T_VOID; } | 622 virtual BasicType memory_type() const { return T_VOID; } |
623 virtual int memory_size() const { return length()*type2aelembytes[elt_basic_type()]; } | 623 virtual int memory_size() const { return length()*type2aelembytes(elt_basic_type()); } |
624 | 624 |
625 // Vector opcode from scalar opcode | 625 // Vector opcode from scalar opcode |
626 static int opcode(int sopc, uint vlen); | 626 static int opcode(int sopc, uint vlen); |
627 | 627 |
628 static VectorStoreNode* make(Compile* C, int opc, Node* ctl, Node* mem, | 628 static VectorStoreNode* make(Compile* C, int opc, Node* ctl, Node* mem, |