354 //------------------------------LoadVectorNode--------------------------------- |
354 //------------------------------LoadVectorNode--------------------------------- |
355 // Load Vector from memory |
355 // Load Vector from memory |
356 class LoadVectorNode : public LoadNode { |
356 class LoadVectorNode : public LoadNode { |
357 public: |
357 public: |
358 LoadVectorNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const TypeVect* vt) |
358 LoadVectorNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const TypeVect* vt) |
359 : LoadNode(c, mem, adr, at, vt) { |
359 : LoadNode(c, mem, adr, at, vt, MemNode::unordered) { |
360 init_class_id(Class_LoadVector); |
360 init_class_id(Class_LoadVector); |
361 } |
361 } |
362 |
362 |
363 const TypeVect* vect_type() const { return type()->is_vect(); } |
363 const TypeVect* vect_type() const { return type()->is_vect(); } |
364 uint length() const { return vect_type()->length(); } // Vector length |
364 uint length() const { return vect_type()->length(); } // Vector length |
378 //------------------------------StoreVectorNode-------------------------------- |
378 //------------------------------StoreVectorNode-------------------------------- |
379 // Store Vector to memory |
379 // Store Vector to memory |
380 class StoreVectorNode : public StoreNode { |
380 class StoreVectorNode : public StoreNode { |
381 public: |
381 public: |
382 StoreVectorNode(Node* c, Node* mem, Node* adr, const TypePtr* at, Node* val) |
382 StoreVectorNode(Node* c, Node* mem, Node* adr, const TypePtr* at, Node* val) |
383 : StoreNode(c, mem, adr, at, val) { |
383 : StoreNode(c, mem, adr, at, val, MemNode::unordered) { |
384 assert(val->is_Vector() || val->is_LoadVector(), "sanity"); |
384 assert(val->is_Vector() || val->is_LoadVector(), "sanity"); |
385 init_class_id(Class_StoreVector); |
385 init_class_id(Class_StoreVector); |
386 } |
386 } |
387 |
387 |
388 const TypeVect* vect_type() const { return in(MemNode::ValueIn)->bottom_type()->is_vect(); } |
388 const TypeVect* vect_type() const { return in(MemNode::ValueIn)->bottom_type()->is_vect(); } |