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,