409 case Op_Load8S: return new (C, 3) Load8SNode(ctl, mem, adr, atyp);
410 case Op_Load4S: return new (C, 3) Load4SNode(ctl, mem, adr, atyp);
411 case Op_Load2S: return new (C, 3) Load2SNode(ctl, mem, adr, atyp);
412
413 case Op_Load4I: return new (C, 3) Load4INode(ctl, mem, adr, atyp);
414 case Op_Load2I: return new (C, 3) Load2INode(ctl, mem, adr, atyp);
415
416 case Op_Load2L: return new (C, 3) Load2LNode(ctl, mem, adr, atyp);
417
418 case Op_Load4F: return new (C, 3) Load4FNode(ctl, mem, adr, atyp);
419 case Op_Load2F: return new (C, 3) Load2FNode(ctl, mem, adr, atyp);
420
421 case Op_Load2D: return new (C, 3) Load2DNode(ctl, mem, adr, atyp);
422 }
423 ShouldNotReachHere();
424 return NULL;
425 }
426
427 // Return the vector version of a scalar store node.
428 VectorStoreNode* VectorStoreNode::make(Compile* C, int opc, Node* ctl, Node* mem,
429 Node* adr, const TypePtr* atyp, VectorNode* val,
430 uint vlen) {
431 int vopc = opcode(opc, vlen);
432
433 switch(vopc) {
434 case Op_Store16B: return new (C, 4) Store16BNode(ctl, mem, adr, atyp, val);
435 case Op_Store8B: return new (C, 4) Store8BNode(ctl, mem, adr, atyp, val);
436 case Op_Store4B: return new (C, 4) Store4BNode(ctl, mem, adr, atyp, val);
437
438 case Op_Store8C: return new (C, 4) Store8CNode(ctl, mem, adr, atyp, val);
439 case Op_Store4C: return new (C, 4) Store4CNode(ctl, mem, adr, atyp, val);
440 case Op_Store2C: return new (C, 4) Store2CNode(ctl, mem, adr, atyp, val);
441
442 case Op_Store4I: return new (C, 4) Store4INode(ctl, mem, adr, atyp, val);
443 case Op_Store2I: return new (C, 4) Store2INode(ctl, mem, adr, atyp, val);
444
445 case Op_Store2L: return new (C, 4) Store2LNode(ctl, mem, adr, atyp, val);
446
447 case Op_Store4F: return new (C, 4) Store4FNode(ctl, mem, adr, atyp, val);
448 case Op_Store2F: return new (C, 4) Store2FNode(ctl, mem, adr, atyp, val);
449
|
409 case Op_Load8S: return new (C, 3) Load8SNode(ctl, mem, adr, atyp);
410 case Op_Load4S: return new (C, 3) Load4SNode(ctl, mem, adr, atyp);
411 case Op_Load2S: return new (C, 3) Load2SNode(ctl, mem, adr, atyp);
412
413 case Op_Load4I: return new (C, 3) Load4INode(ctl, mem, adr, atyp);
414 case Op_Load2I: return new (C, 3) Load2INode(ctl, mem, adr, atyp);
415
416 case Op_Load2L: return new (C, 3) Load2LNode(ctl, mem, adr, atyp);
417
418 case Op_Load4F: return new (C, 3) Load4FNode(ctl, mem, adr, atyp);
419 case Op_Load2F: return new (C, 3) Load2FNode(ctl, mem, adr, atyp);
420
421 case Op_Load2D: return new (C, 3) Load2DNode(ctl, mem, adr, atyp);
422 }
423 ShouldNotReachHere();
424 return NULL;
425 }
426
427 // Return the vector version of a scalar store node.
428 VectorStoreNode* VectorStoreNode::make(Compile* C, int opc, Node* ctl, Node* mem,
429 Node* adr, const TypePtr* atyp, Node* val,
430 uint vlen) {
431 int vopc = opcode(opc, vlen);
432
433 switch(vopc) {
434 case Op_Store16B: return new (C, 4) Store16BNode(ctl, mem, adr, atyp, val);
435 case Op_Store8B: return new (C, 4) Store8BNode(ctl, mem, adr, atyp, val);
436 case Op_Store4B: return new (C, 4) Store4BNode(ctl, mem, adr, atyp, val);
437
438 case Op_Store8C: return new (C, 4) Store8CNode(ctl, mem, adr, atyp, val);
439 case Op_Store4C: return new (C, 4) Store4CNode(ctl, mem, adr, atyp, val);
440 case Op_Store2C: return new (C, 4) Store2CNode(ctl, mem, adr, atyp, val);
441
442 case Op_Store4I: return new (C, 4) Store4INode(ctl, mem, adr, atyp, val);
443 case Op_Store2I: return new (C, 4) Store2INode(ctl, mem, adr, atyp, val);
444
445 case Op_Store2L: return new (C, 4) Store2LNode(ctl, mem, adr, atyp, val);
446
447 case Op_Store4F: return new (C, 4) Store4FNode(ctl, mem, adr, atyp, val);
448 case Op_Store2F: return new (C, 4) Store2FNode(ctl, mem, adr, atyp, val);
449
|